5

我使用geopandas'sto_file()方法将 shapefile 读入 geopandas 对象。shapefile 有一个.prj带有 ESRI WKT 样式投影信息的有效文件:

PROJCS["Slovenia_1996_Slovene_National_Grid",GEOGCS["GCS_Slovenia 1996",DATUM["D_Slovenia_Geodetic_Datum_1996",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",-5000000],UNIT["Meter",1]]

这样,创建的地理数据框将 crs 属性设置为字典,与 proj4 字符串或 epsg 代码相比,我发现它很难使用:

{u'lon_0': 15, u'k': 0.9999, u'ellps': u'GRS80', u'y_0': -5000000, u'no_defs': True, u'proj': u'tmerc', u'x_0': 500000, u'units': u'm', u'lat_0': 0}

Geopandas投影文档清楚地表明该.crs方法接受许多不同形式的 crs 信息(epsg 代码、字典、proj4 字符串……),但在将 geopandas 写入 shapefile 时似乎无法控制所需的格式。

问题: 有没有办法指定所需的 crs 格式或任何内置方法来在 crs 属性的不同格式之间切换?

4

2 回答 2

0

有没有办法指定所需的 crs 格式

shapefile prj 文件必须为 WKT 格式。请参阅: https ://gis.stackexchange.com/questions/114835/is-there-a-standard-for-the-specification-of-prj-files#114851

任何内置方法可以在 crs 属性的不同格式之间切换?

Geopandas 使用 pyproj 作为依赖项。如果您使用 pyproj 2+,则可以使用pyproj.CRS该类转换格式。见: https ://pyproj4.github.io/pyproj/stable/examples.html

此外,您可以pyproj.CRS直接使用该类来检查不同 CRS 输入的相等性。

于 2019-07-28T16:20:04.297 回答
0

不确定我是否在这里遗漏了一些东西,但是您是否尝试过在数据框中设置 crs,然后再执行to_file()以下操作:

gdf = geopandas.GeoDataFrame(df, geometry='geometry')

gdf.crs = {'init' :'epsg:4326'} # or whatever
于 2019-04-10T06:23:05.390 回答