当在Python中用 fiona 和 osgeo例如,似乎有很多方法可以通过导入导出不同的CRS格式来定义坐标系。
FIONA:from fiona.crs import from_epsg,from_string,to_string
# Import crs from different formats:
wgs = from_epsg(4326)
wgs = from_string("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ")
# Export crs as proj4 string
wgs_proj4_string = to_string(wgs)
OSGEO。from osgeo import osr
srs = osr.SpatialReference()
srs.ImportFromESRI(['GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]'])
srs.ImportFromProj4("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
srs.ImportFromEPSG(4326)
#the import options are very rich
# Export to different formats
srs.ExportToProj4()
srs.ExportToWkt()
srs.ExportToXML()
#... many export options!
然而,我注意到,这两个库都允许通过其EPSG代码轻松定义CRS,但它们都缺乏一个逆向功能(将一个CRS导出为ESPG代码)。
我最接近的是通过EPSG代码。srs.AutoIdentifyEPSG()
epsg = srs.GetAuthorityCode(None)
但它似乎并不那么可靠,而且其他建议的 解决方案 似乎包括大量的调整,或者至少是 网络服务 依赖性。
问题:谁能告诉我一个简单、直接的方法,在python中把CRS导出为EPSG代码?类似于 to_epsg() 在 Fiona 或 ExportToEPSG() 在 osgeo?
谁能解释一下整个互联网上EPSG导出可能性如此短缺的理论背景,特别是与EPSG代码导入的便利性相比。EPSG代码的意义不就在于让没有高级地理空间专业知识的人容易识别和使用坐标系吗?它不应该像CRS的ID一样,因此很容易检索吗?