我有 2 个文件,每个文件有 3 列 - 纬度、经度和值。这两个文件包含的坐标可能非常接近,但不完全相等,因此无法进行一对一的比较。因此,根据我的理解,理想的方法应该是针对每个坐标(例如 10 x 10m)创建一个虚拟矩形或多边形边界,并比较其他文件中位于该边界内的所有坐标的值。
我不需要在地图或图表上显示任何内容。我只需要简单的表格比较。
我尝试做下面的事情。这会将坐标分组到 1 个文件中,并且可以对第二个文件执行相同的操作,但同样,分组的值不相同,因此我无法使用此方法比较这两个文件。
step = 0.0002
to_bin = lambda x: np.floor(x / step) * step
df_temp["latBin"] = to_bin(df_temp.Latitude)
df_temp["lonBin"] = to_bin(df_temp.Longitude)
groups = df.groupby(["latBin", "lonBin"])
` 然后我尝试了下面的方法,从坐标转换为 x,y 系统,但仍然是同样的问题。
def apply_fun (raw):
x,y,_,_ = utm.from_latlon(raw['Latitude'],raw['Longitude'])
return str(np.round(x/20))+"|"+str(np.round(y/20))
x = df_temp.apply(lambda row : apply_fun(row),axis=1)
df_temp.insert(3,'Group',x)
gdf = df_temp.groupby(['Group']).agg({"Latitude":["mean"],"Longitude":["mean","count"],"thp": ["mean"]})
gdf = gdf.reset_index().drop(columns=['Group'],level=0)
gdf.columns = [' '.join(col) for col in gdf.columns]`
我的目标基本上是对文件 1 中位于 10x10 米边界内的所有坐标进行分组,并将文件 2 中位于该边界内的坐标与文件 1 的每个坐标进行比较。
希望我清楚需要什么。
这里需要您的指导和支持,谢谢