Shapely / PyProj区域计算与Google Earth Engine或Geojson.io不匹配

时间:2019-06-04 19:14:18

标签: python gis shapely pyproj

在计算多边形的面积时,与Google Earth引擎或geojson.io相比,使用shapely / pyproj的结果截然不同。我认为这与投影有关,在研究投影时,我发现了示例(How do I get the area of a GeoJSON polygon with Python),这些示例建议使用Alders Equal Area投影,但在PyProj 2.1.3版本中似乎不可行。 。我还想知道google Earth engine和geojson.io是否有一种自动方法,可以根据多边形的区域选择适合区域的区域投影,但是我不确定它们将如何选择这些区域。

例如:

coords = [(-97.59238135821987, 43.47456565304017),
 (-97.59244690469288, 43.47962399877412),
 (-97.59191951546768, 43.47962728271748),
 (-97.59185396090983, 43.47456565304017),
 (-97.59238135821987, 43.47456565304017)]

projection = partial(pyproj.transform, pyproj.Proj(init='epsg:4326'), pyproj.Proj(init='epsg:3857'))
shapely.ops.transform(projection, shapely.geometry.Polygon(sample_coords)).area

返回45573.993884405005 m ^ 2的面积。

Google Earth Engine返回23944.14737277293,Geojson.io返回23997.77

1 个答案:

答案 0 :(得分:0)

我发现了问题,并用匀称的https://github.com/Toblerity/Shapely/issues/726

做出了相应的github问题。

简而言之,shapely使用的是另一种方法,其起源尚不清楚,而其他方法则使用了JPL论文中描述的方法。