GDAL / Python : SpatialReference에서 좌표계 이름을 얻는 방법은 무엇입니까?


18

파이썬에서 GDAL을 사용하여 다음과 같이 래스터의 투영을 WKT 문자열로 추출했습니다.

wkt = dataset.GetProjection()
# wkt is 'PROJCS["GDA_1994_Transverse_Mercator",GEOGCS["GDA_1994",DATUM["GDA_1994",SPHEROID["GRS_1980",6378137,298.2572221010002],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],UNIT["Meter",1]]'

WKT 문자열을 사용하여 다음과 같이 SpatialReference 인스턴스를 만들 수 있습니다.

src = osr.SpatialReference()
src.ImportFromWkt(wkt)

쉬워요. srcUTM 영역 등에서 투영의 여러 매개 변수를 쉽게 충분히 추출 할 수 있습니다 . 그러나 투영 이름과 같은 것을 추출하는 방법을 알 수 없습니다 "GDA_1994_Transverse_Mercator". 이것은 반드시 가능하지만 Python API 문서는 모든 용도에 대해 존재하지 않을 수도 있습니다.

투영 이름과 지리 좌표계를 어떻게 추출합니까?

답변:


46

OGR Projections 튜토리얼OGRSpatialReference 클래스를 참조하십시오 . 특히 GetAttrValue 메서드입니다.

다음은 작동하는 예입니다.

from osgeo import gdal,osr
ds=gdal.Open(r'SOMERASTER.TIF')
prj=ds.GetProjection()
print prj

srs=osr.SpatialReference(wkt=prj)
if srs.IsProjected:
    print srs.GetAttrValue('projcs')
print srs.GetAttrValue('geogcs')

내 래스터의 경우 다음과 같이 인쇄됩니다.

PROJCS["WGS 84 / UTM zone 55N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","32655"]]
'WGS 84 / UTM zone 55N'
'WGS 84'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.