gpt4 book ai didi

python - 将坐标系导出为 ESPG 代码 : to_epsg() or ExportToEPSG()

转载 作者:行者123 更新时间:2023-12-03 14:50:17 24 4
gpt4 key购买 nike

在 Python 中使用 fiona 处理坐标系时和 osgeo ,似乎有很多方法可以通过导入/导出不同的 crs 格式来定义坐标系,例如:

菲奥娜:

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)

但它似乎并不那么可靠,还有其他建议 solutions似乎包括大量的调整或至少 web service依赖性。

问题 :
  • 有人可以向我展示一种简单、直接的方法来将 CRS 导出为 Python 中的 EPSG 代码吗?类似 to_epsg()FionaExportToEPSG()osgeo ?
  • 有人能解释一下整个互联网上 EPSG 导出可能性如此短缺的理论背景,尤其是与 EPSG 代码导入的便利性相比。 EPSG 代码的全部意义难道不是让没有高级地理空间专业知识的人易于识别和使用坐标系统吗?它不应该像 CRS 的 ID 一样使用,因此很容易检索吗?
  • 最佳答案

    可以试试 pyproj CRS:https://pyproj4.github.io/pyproj/stable/examples.html#converting-crs-to-a-different-format

    from pyproj import CRS
    from fiona.crs import to_string, from_epsg

    fiona_crs = from_epsg(28356)
    proj4_crs = CRS.from_proj4(to_string(fiona_crs))
    srid = proj4_crs.to_epsg()

    虽然由于某种原因这不适用于 EPSG 4326,但对我来说,不幸的是(在这种情况下 to_epsg 返回 None),不知道为什么。

    关于python - 将坐标系导出为 ESPG 代码 : to_epsg() or ExportToEPSG(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42208034/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com