x, y 열이있는 Excel 파일을 점 shapefile로 변환하려면 어떻게해야합니까?
shapefile을 올바르게 작성하는 것 외에도 다소 선택적 요구 사항이 있습니다.
- 열 형식 (Excel 형식 지정자에 따라)을 유지해야합니다 (특히 날짜 형식)
- 열 이름은 헤더에서 가져와야합니다.
- 나는 것 같은 명령 줄에서이 작업을 수행
- 세 번째 열의 포인트에 대해 이기종 공간 참조를 포함시킬 수 있다면 매우 기쁠 것입니다. :)
x, y 열이있는 Excel 파일을 점 shapefile로 변환하려면 어떻게해야합니까?
shapefile을 올바르게 작성하는 것 외에도 다소 선택적 요구 사항이 있습니다.
답변:
GDAL 라이브러리의 일부인 OGR / GDAL을 사용하는 것이 좋습니다 . OGR은 XML 파일을 통해 사양을 지정할 수 있는 가상 형식 을 지원 합니다. Excel 워크 시트를 CSV로 변환하면 VRT를 생성하여 데이터에 액세스 할 수 있습니다.
다음과 같은 것이 있다고 가정합니다 example.csv
.
Lat,Long,Year,Name
34.0,-120.0,2010-05-01,Off Santa Rosa Island
example.vrt
다음과 같이 VRT 를 만들 수 있습니다 .
<OGRVRTDataSource>
<OGRVRTLayer name="example">
<SrcDataSource>example.csv</SrcDataSource>
<GeometryType>wkbPoint</GeometryType>
<LayerSRS>WGS84</LayerSRS>
<GeometryField encoding="PointFromColumns" x="Long" y="Lat"/>
</OGRVRTLayer>
</OGRVRTDataSource>
GDAL 1.7부터 다음과 같이 <Field>
내부 요소를 사용하여 속성 필드의 데이터 유형을 추가로 지정할 수 있습니다 <OGRVRTLayer>
.
<Field name="date" src="Year" type="Date" />
shapefile은 DBASE IV 형식으로 특성을 저장 하므로 Excel보다 데이터 형식의 유연성이 떨어집니다. VRT 파일을 지정하면 일반 OGR 툴체인을 사용하여 데이터를 Shapefile로 변환 할 수 있습니다.
ogr2ogr -f "ESRI Shapefile" example.shp example.vrt
불행히도 # 4는 불가능합니다. shapefile 사양은 단일 투영을 허용합니다 ( example.prj
마지막 단계 이후에 여기에서 볼 수 있음 ).
<Field>
태그 를 작성하기 위해 프로그래밍 방식으로 열의 데이터 유형을 파악해야한다는 것 입니다. 나는 그것을 스스로 알아낼 것 같다 :)
명령 행이 아니지만 ArcGIS App 내에서이를 수행 할 수 있습니다. 9.3.1부터 XLS를 ArcMap에 직접 추가하기 만하면됩니다. XLS에서 XY 이벤트 레이어 만들기 (예 : X, Y 열 선택 및 공간 참조 설정)이 XY 이벤트 레이어를 새 .shp로 내 보냅니다. 간단한 Python / VBA 스크립트 또는 modelbuilder의 모델로 쉽게 자동화 할 수 있습니다. . 추가 정보가 필요한 경우이 기본 워크 플로우에 대해 기꺼이 도와 드리겠습니다.
웹 도움말에서 XY 데이터 표시에 대한 도움말 페이지를 찾았지만 찾을 수 없지만 프로세스는 간단합니다.
이 작업을 수행하려면 ArcView (기본) 라이센스 수준의 ArcGIS (for) Desktop 만 필요합니다.
항상 모험적인 옵션이 있습니다. 모양 파일을 직접 작성할 수 있습니다. ESRI는 shapefile에 대한 사양을 게시하며 여기에서 읽을 수 있습니다.
http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf
또한 DBF 파일을 작성해야합니다. 형식에 대해 읽을 수 있습니다 :
http://www.clicketyclick.dk/databases/xbase/format/dbf.html#DBF_STRUCT
의심 할 여지없이 과잉이지만 전체 프로세스를 제어 할 수 있다는 이점이 있습니다.
필자는 개인적으로 XY 값에서 점을 플롯 할 수있을뿐만 아니라 플롯하기 전에 한 투영에서 다른 투영으로 좌표를 변환 할 수있는 유연성을 제공하는 Safe Software (http://www.safe.com)의 FME를 선호합니다. 구분 기호 유형, 시작 라인 (텍스트 파일에 헤더 정보가있는 경우), 텍스트 파일에 X, Y, 포인트 데이터에 대한 속성 정보가있는 경우 속성을 첨부하십시오. 이 데이터를 Google 어스에서 시각화하려는 경우 KML 포인트 스타일도 지정하면서 KML 형식으로 쓸 수 있습니다. ~ SRG
x, y 데이터에 대해 다른 처리를 수행하려면 데이터를 postgres에로드하고 연결과 함께 geomfromtext를 사용하여 형상 데이터 유형을 만든 다음 pgsql2shp를 사용하여 모양으로 내보낼 수 있습니다. 이 방법을 사용하면 다른 열에 이기종 공간 참조 시스템 데이터를 유지할 수 있습니다. 그런 다음 모양으로 내보내기 전에 모든 포인트를 db 내에서 공통 참조 시스템으로 변환하는 데 사용할 수 있습니다. 나는 이것이 ogr / gdal보다 더 많은 단계를 포함한다는 것을 알고 있지만 훨씬 더 많은 유연성을 제공 할 것입니다.
CSV 파일을 공간 라이트로로드 한 다음 OGR 또는 QGIS를 사용하여 shapefile로 내보내는 것은 어떻습니까?
http://www.gaia-gis.it/spatialite-2.2/index.html
공간적 공간에서 모양 파일로 직접 내보낼 수도 있습니다.
http://www.gaia-gis.it/spatialite-2.2/spatialite-2.2_tutorial.html#t3.1