GDAL / Python: Làm cách nào để có được tên hệ thống tọa độ từ SpatialReference?


18

Trong Python, sử dụng GDAL, tôi đã trích xuất phép chiếu của raster dưới dạng chuỗi WKT như sau:

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]]'

Sử dụng chuỗi WKT, tôi có thể tạo một cá thể SpatialReference như sau:

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

Điều này là dễ dàng. Tôi có thể trích xuất một số tham số của phép chiếu từ srcvùng UTM, v.v., đủ dễ dàng. Nhưng tôi không thể tìm ra làm thế nào để trích xuất một cái gì đó như tên của phép chiếu, tức là "GDA_1994_Transverse_Mercator". Điều này chắc chắn là có thể, nhưng tài liệu API Python cũng có thể không tồn tại cho tất cả các mục đích sử dụng.

Làm cách nào để trích xuất tên của phép chiếu và hệ tọa độ địa lý?

Câu trả lời:


46

Xem hướng dẫn Dự đoán OGR và lớp OGRSpatialReference . Đặc biệt, phương thức GetAttrValue .

Đây là một ví dụ hoạt động.

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')

Đối với raster của tôi bản in này:

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'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.