[英]Geopandas .to_crs only converts one coordinate of Point object
[英]Specifying desired crs format of Geopandas object
我使用geopandas
的to_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.