繁体   English   中英

指定所需的Geopandas对象的crs格式

[英]Specifying desired crs format of Geopandas object

我使用geopandasto_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]]

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

{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属性的不同格式之间进行切换?

不知道我是否在这里遗漏了什么,但是您是否尝试过在像to_file()之前在数据帧中设置crs,如下所示:

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

gdf.crs = {'init' :'epsg:4326'} # or whatever

有什么方法可以指定所需的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输入的相等性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM