Имея дело с системами координат в 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)
ОСГЕО:
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!
Тем не менее, я заметил, что обе библиотеки позволяют легко определять crs по его коду EPSG, но в них обеих отсутствует обратная функция (экспорт crs как кода ESPG).
Ближайший к мне код EPSG:
srs.AutoIdentifyEPSG()
epsg = srs.GetAuthorityCode(None)
но это не кажется таким надежным, как и другие предлагаемые решения, похоже, включают в себя большое количество настроек или, по крайней мере, зависимость веб-службы.
ВОПРОСЫ:
Может ли кто-нибудь показать мне простой и понятный способ экспорта CRS в виде кода EPSG на Python? Что-то вроде
to_epsg()
вFiona
илиExportToEPSG()
вosgeo
?Может ли кто-нибудь объяснить теоретические основы такой нехватки возможностей экспорта EPSG в Интернете, особенно по сравнению с простотой импорта с помощью кода EPSG. Разве весь смысл кодов EPSG не в том, чтобы упростить идентификацию и использование систем координат для людей, не обладающих передовыми знаниями в области геопространственной информации? Разве он не должен служить идентификатором CRS и, следовательно, быть легко доступным?