2013-11-10 605 views
0

我有一个坐标系4.3,50.8,4.4,50.9,我想将该框中的点转换为4800X4800像素的框。 Python语言中是否有任何可以帮助完成这些转换的东西,还是我必须自己写数学?在Python中转换坐标

+1

首先:你的原始坐标系是什么:'4.3,50.8,4.4,50.9'是什么意思?那些'x'和'y'尺寸?他们是什么? – jrd1

+0

它们是已经变平的lat和lon坐标 –

回答

0

如果我明白你需要什么,然后我会建议numpy的这个:http://www.numpy.org/

这里有方法,我会用:

y = numpy.linspace(50.8,50.9,4800) 
x = numpy.linspace(4.3,4.4,4800) 
x,y = numpy.meshgrid(x,y) 

在这种情况下,linspace将生成4800个值,对于y分别在50.8和50.9之间进行线性内插,对于x分别为4.3和4.4。然后使用网格将这些1D坐标数组形成两个2D坐标数组(两者的尺寸均为4800×4800像素),用于x和y值。

0

你可以写这样的事情:

def remap_coords(x, y, x_min=4.3, y_min=50.8, 
       x_max=4.4, y_max=50.9, width=4800, height=4800): 
    new_x = (x - x_min)/(x_max - x_min) * width 
    new_y = (y - y_min)/(y_max - y_min) * height 
    return (int(round(new_x)), int(round(new_y)))