2017-05-19 31 views
1

ESRI 도구를 사용하여 생성 된 ESRI ASC 그리드 데이터 파일을 제공하는 사람이 많습니다. 이 작업을 수행 할 때 PRJ 파일에는 다음 유형의 정보가 들어 있습니다. 만약 투영에 따라 다르다면, 예를 들어. UTM, ALBERS 등.ESRI 프로젝션 정보를 분석하여 CoordinateReferenceSystem 생성

GeoTools에는이 투영 정의 형식에서 CoordinateReferenceSystem을 생성 할 수있는 파서가 있습니까?

Projection ALBERS 
Datum   NAD83 
Spheroid  GRS80 
Units   METERS 
Zunits  NO 
Xshift  0.0 
Yshift  0.0 
Parameters 
    29 30 0.0 /* 1st standard parallel 
    45 30 0.0 /* 2nd standard parallel 
-96 0 0.0 /* central meridian 
    23 0 0.0 /* latitude of projection's origin 
0.0 /* false easting (meters) 
0.0 /* false northing (meters) 

답변

0

직접적으로 그렇지 않으므로 standard (or ESRI variant) WKT projection file 인 것 같습니다. 그러나 거기에 을 작성하는 데 충분한 정보가 있습니다 (here).

MathTransformFactory mtFactory = ReferencingFactoryFinder.getMathTransformFactory(null); 
    CRSFactory crsFactory = ReferencingFactoryFinder.getCRSFactory(null); 

    GeographicCRS geoCRS = org.geotools.referencing.crs.DefaultGeographicCRS.WGS84; 
    CartesianCS cartCS = org.geotools.referencing.cs.DefaultCartesianCS.GENERIC_2D; 

    ParameterValueGroup parameters = mtFactory.getDefaultParameters("Transverse_Mercator"); 
    parameters.parameter("central_meridian").setValue(-111.0); 
    parameters.parameter("latitude_of_origin").setValue(0.0); 
    parameters.parameter("scale_factor").setValue(0.9996); 
    parameters.parameter("false_easting").setValue(500000.0); 
    parameters.parameter("false_northing").setValue(0.0); 
    Conversion conversion = new DefiningConversion("Transverse_Mercator", parameters); 

    Map<String, ?> properties = Collections.singletonMap("name", "WGS 84/UTM Zone 12N"); 
    ProjectedCRS projCRS = crsFactory.createProjectedCRS(properties, geoCRS, conversion, cartCS); 
+0

오른쪽. 그럴 수 있다는 것을 알았지 만 Albers, UTM, Lambert, 수많은 국가 평면 시스템 등이 그렇게 많이 변할 수 있음을 알고있었습니다. 표준 WKT를 파싱하는 것처럼 이미 루틴이있을 것입니다. 많은 사람들이 저뿐만 아니라 그들을 사용할 수 있습니다. –

+0

TBH 나는 ESRI가 그것을 쓰는 또 다른 방법을 고안하기 전에 그 형식의 투영법을 본 적이 없으며 심지어 들어 본 적이 없다. Dp는 파일을 생성 한 도구를 알고 있습니다. –