JAVA에서 GDAL 사용법

소프트웨어 개발/JAVA|2016. 4. 28. 15:52

GDAL 은 JAVA로 아주 잘 바인딩 되었지만 문서가 아주아주 제한적입니다. API 문서는 파이썬의 문서보다는 훨 나은 편이만 단순한 예제를 실행하는 방법을 찾기도 매우 어렵습니다.

설치(Ubuntu)

Ubuntu 배포판에는 GDAL 패키지이지만 JAVA 바인딩은 포함되지 않습니다. 따라서 그것을 가지고 라이브러리를 컴파일할 필요가 있습니다.

이미 패키지로부터 설치된 GDAL 라이브러리를 가지고 있는 경우 그것들을 제거할 필요가 없습니다. 컴파일하기전에 swig, libgeos-dev 그리고 proj4 패키지가 설치되어 있는지를 확인합니다.

그리고 실행하시요:


/gdal의 경로/swig/java 디렉터리로 이동하고 java.opt 파일을 열어 정확한 JAVA_HOME 변수로 설정하도록 수정합니다. (기본값으로 Windows 설치본?으로 설정되어있음)

make를 타이핑 합니다.

gdal.jar 파일이 /gdal의 경로/swig/java 디렉터리에 생성됩니다.

GDAL Java 바인딩 설치를 위한 공식 문서는 여기: http://trac.osgeo.org/gdal/wiki/GdalOgrInJavaBuildInstructionsUnix

클래스(.class) 실행하기

GDAL Java 바인딩은 네이티브 GDAL 설치본을 사용합니다. 그리고 그건 JNI를 사용하여 만들었죠. JAVA 가상머신은 반드시 GDAL 바이너리를 찾아야만 합니다. 따라서 실행하려면 환경변수가 반드시 설정이 되어야하죠. 리눅스에서의 커멘드라인에서는 다음과 같이 입력하시면 됩니다.

여기에서 path_to 는 당신이 컴파일한 경로입니다.

만약 코드에서 어떠한 좌표 변환을 사용한다면, GDAL은 반드시 gcs.csv라는 이름의 파일을 찾게되어있습니다.

실행할 때 이 파일이 어디있는지 찾을 수 있게 지정하려면:


환경변수로서 지정을 하려면:


또는 직접 실행 할 수도 있습니다:


classpath에 gdal.jar파일을 include시키는것을 잊지 않으면 이 클래스는 제대로 실행될 겁니다.


JAVA에서 코드를 IDE에서 사용하는 것이 더 쉽습니다. 다음 두 섹션에서 설명합니다.

Eclipse에서 실행하기

Eclipse IDE를 사용하여  configuration 화면에서 환경변수를 설정할 수 있습니다. 그것을 하려면 play 버튼의 옆에 있는 작은 화살표를 클릭하고 Run Configurations...를 선택합니다.


일단 그곳에서 Environment 탭을 선택하고 New 버튼을 사용하여 GDAL_DATA와 LD_LIBRARY_PATH를 추가합니다.



NetBeans에서 실행하기

필자는 NetBeans에서 LD_LIBRARY_PATH GDAL_DATA 를 설정하는 그래픽적인 해결책을 찾지 못했습니다.

다음의 환경 변수를 설정하려면 netbeans.conf 파일(필자의 경우, /usr/local/netbeans-7.0.1/etc/  경로에 위치하였음)을 열어서 파일의 마지막 부근에 다음 라인들을 추가하세요.

Apache Tomcat에서 실행하기

만약 당신이 Apache Tomcat을 사용하여 GDAL과 함께 GIS 파일을 읽어서 웹페이지를 서비스하려 한다면 좋은 아이디어입니다.

다른사례와 같이 이 환경변수들을 반스시 설정해 주어야합니다.

/tomcat의 경로/bin/catalina.sh (당신의 설치 경로에 따라 바뀔수도 있음)를 열어서 NetBeans와 같이 다음 라인을 추가하세요.

라이브러리는 반드시 shared libraries 로서 설치되어 있어야하며 두개의 인스턴스를 생성하는 경우 충돌합니다. (a java.lang.UnsatisfiedLinkError will be launched).

  • 디렉터리를 생성: $CATALINA_HOME/shared/lib
  • (gdal.jar파일을 포함하는) gdal_home/swig/java의 내용들을 이 경로로 복사
  • catalina.properties를 편집하여 shared.loader 변수를 다음과 같이 변경

shared.loader=${catalina.home}/shared/lib/gdal.jar

Maven 사용

(적어도 필자가 아는 한) gdal.jar 는 Maven repositories에 없다. 따라서 반드시 수동적으로 추가를 해줘아햔다. gdal이 특정경로의 Tomcat에서 사용되는  maven의 것과는 다른.

따라서 pom.xml 파일은 gdal 섹션이 다음과 같이 수정되어어야 한다:




클래스 예제

GDAL 자바클래스를 실행하는 방법을 확인하려는 경우, 이 예제를 사용할 수 있습니다.

이 클래스는 매개변수로 전달된 GIS파일의 밴드의 개수를 출력합니다:


----

원본: http://geoexamples.blogspot.kr/2012/05/running-gdal-java.html

번역: kladess

댓글()