2017-07-24 37 views
0

我试图将坐标从经度/纬度转换为像素,但在此过程中我失去了点。将坐标转换为失去点的像素

,我正在使用的代码如下:

from matplotlib import pyplot as plt 
import numpy as np 
import pandas as pd 

df=pd.read_csv('cords.csv') 
cords=df.as_matrix(columns=['x','y']) 
gt=[7.6445503225, 5.4065168747250134e-06, 0.0, 45.07436634583334, 0.0, -5.406516856707135e-06] 

index=np.zeros(cords.shape) 
index[:,1]=((cords[:,1] - gt[3])/gt[5]).round() 
index[:,0]=((cords[:,0] - gt[0])/gt[1]).round() 
index=index.astype(int) 
index[:,0]=index[:,0]-min(index[:,0])+1 
index[:,1]=index[:,1]-min(index[:,1])+1 
row=max(index[:,1]) 
col=max(index[:,0]) 
image=np.zeros([row+1,col+1]) 
for i in range(0,len(index)): 
    image[index[i,1],index[i,0]]=255 

如果我绘制的坐标或索引点,我得到这个: enter image description here

如果我绘制我得到这个图片: enter image description here

正如你所看到的,在将纬度/经度转换为像素数字时有一些缺失点。黄色是255值,紫色是0值。 这怎么解决?

在这里,你会发现我使用cords.csv

这里你可以找到与需要被设置到每个像素的值的坐标的坐标。 cords_valus.csv

+0

什么是'gt'在做什么? –

+0

它是从经纬度到轴坐标的转换向量。使用GDAL获得。 –

回答

0

当你的小数点坐标被四舍五入为图像的整数索引时,在舍入过程中似乎有一个奇怪的...可能在底层坐标中有一些周期性。无论如何,我会提供以下解决方案,使您的图像看起来不错,即使它不能解决问题的根源。在scipy.ndimage模块中使用image moropholgy。

import scipy.ndimage as spim 
from skimage.morphology import square 

im = spim.binary_closing(input=image, structure=square(3)) 
+0

谢谢,但不是看起来不错的问题。我需要在那里放置正确的值,那不会是255,它们会被用作另一个矢量。如果你需要我可以给你正确的价值观。无论如何Tnx的建议。 –

+0

当然,向我发送矢量数据,我会看看。我的电子邮件地址是我在Gmail上的SO用户名。 – 2cynykyl

+0

我已经添加一个链接到文件的问题! TNX –

0

我不是非常自豪,因为它感觉有点kludgey以这种方式使用字典键,但它似乎工作:

import scipy as sp 
import pandas as pd 
import matplotlib.pyplot as plt 

a = pd.DataFrame.from_csv('cords_value.csv') 

x = sp.array(a['x']) 
y = sp.array(a['y']) 
v = sp.array(a['value']) 

xdict = {x_: i for x_, i in zip(sp.unique(x), range(len(sp.unique(x))))} 
ydict = {y_: i for y_, i in zip(sp.unique(y), range(len(sp.unique(y))))} 

im = sp.zeros([list(xdict.values())[-1]+1, list(ydict.values())[-1]+1]) 
for i in range(len(v)): 
    im[xdict[x[i]], ydict[y[i]]] = v[i] 

plt.imshow(im, cmap=plt.cm.spectral) 

我想不出其他以浮点数(x和y)作为索引的方式,将它们映射到整数列表(用于将值映射到图像上)。结果看起来不错,我认为:

enter image description here

相关问题