2016-10-04 12 views
1

gml 파일에서 투영을 얻으려고합니다.gml 파일에서 투영을 얻는 방법

<?xml version="1.0" encoding="UTF-8"?> <eop:Mask xmlns:eop="http://www.opengis.net/eop/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml/3.2" gml:id="S2A_OPER_MSK_CLOUDS_SGS__20160914T145755_A006426_T31UCT_B00_MSIL1C"> <gml:name>MSK_CLOUDS pixels mask from data-strip S2A_OPER_MSK_CLOUDS_SGS__20160914T145755_A006426_T31UCT_B00_MSIL1C</gml:name> <gml:boundedBy> 
    <gml:Envelope srsName="urn:ogc:def:crs:EPSG:8.7:32631"> 
     <gml:lowerCorner>300000 5690220</gml:lowerCorner> 
     <gml:upperCorner>368340 5777580</gml:upperCorner> 
    </gml:Envelope> </gml:boundedBy> <eop:maskMembers> 
    <eop:MaskFeature gml:id="OPAQUE.0"> 
     <eop:maskType codeSpace="urn:gs2:S2PDGS:maskType">OPAQUE</eop:maskType> 
     <eop:extentOf> 
     <gml:Polygon gml:id="OPAQUE.0_Polygon"> 
      <gml:exterior> 
      <gml:LinearRing> 
       <gml:posList srsDimension="2">320340 5776020 320520 5776020 320520 5775960 320700 5775960 320700 5775900 320760 5775900 320760 5775840 320820 5775840 320820 5775660 320760 5775660 320760 5775600 320700 5775600 320700 5775540 320340 5775540 320340 5775600 320280 5775600 320280 5775660 320220 5775660 320220 5775900 320280 5775900 320280 5775960 320340 5775960 320340 5776020</gml:posList> 
      </gml:LinearRing> 
      </gml:exterior> 
     </gml:Polygon> 
     </eop:extentOf> 
    </eop:MaskFeature> 
... 

내가 https://pcjericks.github.io/py-gdalogr-cookbook/projection.html에서 코드를 사용하여 시도 :이 파일의 선두입니다

from osgeo import ogr, osr 
driver = ogr.GetDriverByName('ESRI Shapefile') 
dataset = driver.Open(r'c:\data\yourshpfile.shp') 

# from Layer 
layer = dataset.GetLayer() 
spatialRef = layer.GetSpatialRef() 
# from Geometry 
feature = layer.GetNextFeature() 
geom = feature.GetGeometryRef() 
spatialRef = geom.GetSpatialReference() 

을하지만 spatialRef의 두 버전은 아무도 없습니다.

파일에서 경계 상자에 투영이 나타남을 확인할 수 있습니다 (첫 번째 줄의 맨 끝에서 두 번째 줄에 EPSG 코드가있는 봉투가 나타납니다) (It doesn ' 파일의 다른 곳에서는 'crs'또는 'EPSG'라고 말하십시오).

투사 정보에 ​​액세스하는 방법을 알 수있는 사람은 누구입니까?

어떻게 든 경계 상자로 이동 한 다음 영사를 가져올 수 있습니까?

답변

0

일반적으로 과립이 제공하는 JPEG 2000 파일에서 프로젝션 정보를 찾을 수 있습니다.

그것이 GDAL 사용 :

gdalinfo * .jp2

당신에게 제공합니다

PROJCS["WGS 84/UTM zone 21N", 
GEOGCS["WGS 84", 
    DATUM["WGS_1984", 
     SPHEROID["WGS 84",6378137,298.257223563, 
      AUTHORITY["EPSG","7030"]], 
     AUTHORITY["EPSG","6326"]], 
    PRIMEM["Greenwich",0, 
     AUTHORITY["EPSG","8901"]], 
    UNIT["degree",0.0174532925199433, 
     AUTHORITY["EPSG","9122"]], 
    AXIS["Latitude",NORTH], 
    AXIS["Longitude",EAST], 
    AUTHORITY["EPSG","4326"]], 
PROJECTION["Transverse_Mercator"], 
PARAMETER["latitude_of_origin",0], 
PARAMETER["central_meridian",-57], 
PARAMETER["scale_factor",0.9996], 
PARAMETER["false_easting",500000], 
PARAMETER["false_northing",0], 
.... 

그게 전부 내가