오픈 소스 웹 GIS에서 래스터 맵 대수를 수행합니까?


9

ArcGIS Raster Calculator (또는 QGIS)를 사용하면 래스터에 대한 대수를 쉽게 매핑 할 수 있습니다. GeoServer 및 MapServer와 같은 웹 GIS 서버와 OpenLayers 등에서도 이것이 쉬울 것이라고 생각했습니다. 내가 달성하고자하는 것은 두 개의 이미지를 나누고 웹 페이지에 표시 할 세 번째 비율의 이미지를 생성하는 것과 같은 간단한 일을하는 것입니다. 나는 해결책을 찾기 위해 몇 주를 보냈고 그것은 꽤 어렵다 (나를 위해).

나는 다음을 포함하여 몇 가지를 시도했다.

  1. PostGIS 래스터. 래스터 대수는 여기서 문제가되지 않는다고 생각합니다.

    그러나 PostGIS 래스터는 GeoServer에로드하기가 매우 어렵습니다. GeoServer에서 pgraster를로드하는 방법에 대해 여러 가지 질문이 반복적으로 제기됩니다. postGIS를 통해 GeoTIFF를 GeoServer로 가져 오는 방법을 참조하십시오 . ? , /gis/86006/publish-rasters-stored-in-postgresql-with-geoserver ? 등이 있습니다. GIS.SE 또는 GeoServer 공식 웹 사이트의 단일 답변은 여기에서 작동하기 위해 수행 할 수있는 전체 단계 목록을 제공합니다. pgraster를 MapServer에로드하는 것이 성공을보고했지만 성능이 매우 느립니다. 둘 다 약간의 타일링이 필요하고 래스터를 어느 서버로 가져 오는 한 줄 명령이 문제가 아닌 것 같습니다.

  2. 지오 티프

    GeoTIFF는 GeoServer 및 MapServer에 쉽게로드 할 수 있습니다. 그러나 우리는 그것으로 무엇을 할 수 있습니까? SQL과 같은 PostGIS가 없으면 WCS를 사용하여 대수 맵을 간단히 검색했지만 많이 찾지 못했습니다. 현재 서버에서 WCS가 실행 가능한 경로입니까?

  3. 어려운 방법으로 프로그래밍

    어떻게 든 AJAX를 사용하여 PostGIS로 이미지를 가져오고 맵 대수를 수행 한 다음 결과 pgraster를 GeoServer / MapServer에 쉽게로드하고 표시 할 수있는 형식 (예 : GeoTIFF)으로 변환하기 위해 GeoServer를 사용하여 PHP 페이지를 호출하거나 WPS를 작성합니다.

  4. 물론 GeoTIFF를 직접 읽는 코드를 작성하고 GIS 지원없이지도 대수를 수행 할 수 있습니다.

데스크탑 GIS에서 동일한 대수를 쉽게 수행 할 수 있다는 점을 고려할 때 위의 어느 것도 쉬운 일이 아닙니다.

웹 GIS 환경에서 누군가가 Map Algebra를 수행 한 경험이 있고 실행 가능한 경로를 제안 할 수 있는지 궁금합니다.

조직 내부의 정치적 이유로 오픈 소스 솔루션에 관심이 있습니다. ArcGIS Server는 ArcGIS의 Python 코드를 호출 할 수 있지만 라이센스가 없으며 여기에서 환경을 구입하는 데 유리하지 않습니다.


"합리적인 방법이 있는가?"는 질문 제목을 넣는 정말 간결한 문구입니다 (예 : "How to ..."가 제대로 작동하는 경우). 내가 제안한 것보다 당신의 질문 은 그렇게하십시오. 또한 "소프트웨어"라는 단어 는 GDAL과 같은 프로그래밍 API 및 라이브러리 를 포함 하는 것으로 간주 되므로 이러한 해석을 통해 편집 한 내용을 되돌릴 필요가 없었을 것입니다. 그러나 질문이 명확하다고 생각되면 원하는 것을하십시오.
blah238

@ blah238 편집 해 주셔서 감사합니다 :). 아마도 장황한 것 같지만 분명히 방법이 있다고 생각합니다. ESRI / Desktop 세계와 비교할 때 부당한 노력으로 보입니다. 또한 "소프트웨어"에는 API가 포함될 수 있습니다. 지도 대수를 달성하기에 합리적으로 쉬운 다른 것이 없다면 처음부터 코딩하는 것이 옵션이라는 것을 강조하고 싶습니다.
tinlyx

답변:


4

오픈 소스 소프트웨어 만 사용하면 프로그래밍을 직접 수행해야합니다. GDAL사실상 오픈 소스 래스터 I / O 라이브러리이므로 라이브러리 또는 여러 래퍼 중 하나를 사용하게 될 것입니다. Python (예 : rasterio + numpy / scipy ) 또는 node.js (예 : node-gdal )를 사용할 수 있습니다 ( 현재는 동기식 / 차단 임). 실제로 웹 서비스로 구현하는 경우 가장 좋은 방법은 무엇인지 모르겠지만 여기에 관련 질문이 있습니다. 다른 오픈 소스 GIS 서버 비교?

프로그래밍이 마음에 들지 않으면 FME Server를 살펴보십시오 . 상용 제품이지만 ArcGIS Server보다 실질적으로 저렴하며 모든 종류의 래스터 계산 변환기 가 있으므로 필요한 작업을 수행하지 못하면 매우 놀랄 것입니다. 거의 모든 래스터 파일 형식 에서 읽을 수 있으므로 래스터를 데이터베이스에로드 할 필요가 없습니다 .

서버 부분을 사용하면 서버에서 변환 (FME 작업 영역)을 실행하고 FME 서버 REST API 와 같은 API를 사용하여 해당 변환을 시작하고 결과에 액세스 할 수 있습니다.

주요 이점은 서비스를 시작하고 실행하기위한 프로그래밍, API와 함께 작동하는 약간의 프론트 엔드 코딩만으로도 많은 일을 할 필요가 없다는 것입니다.


+1 감사합니다. 나는 또한 rasdaman에 대해 생각하고 있었다. 프로그래밍 할 수는 있지만지도 대수 이후 몇 년 동안 그것을 올바르게 코딩한다고 느끼지 않습니다.
tinlyx

+1 python + gdal을 지원합니다. numpy로 래스터 대수를하는 것은 바람입니다. 또한 .asc 파일과 같은 텍스트 기반 래스터로 작업하는 경우 numpy.loadtxt (헤더 행 건너 뛰기, 공백을 구분 기호로 사용), etc)
user1269942

rasdaman을 사용하면 WCPS를 사용하여 서버에서 처리를 수행 할 수 있지만 WCPS 구문을 직접 작성하려면 약간의 스크립팅이 필요할 수 있습니다.
nmtoken

2

당신이 찾고있는 것은 이미지 서버입니다. ArcGIS for Server의 확장명은 다음과 같습니다.

서버용 ArcGIS 이미지 확장

나는 오픈 소스에 해당하는 것을 모른다.


1
OP는 ArcGIS 확장이 아닌 웹 컨텍스트에서이를 수행하는 방법을 요구하고 있습니다.
John Powell

2
@ JohnBarça는 ArcGIS for Server에 대한 확장을 제안하므로 웹 컨텍스트에서 사용됩니다.
PolyGeo

@Pau 오픈 소스 GIS를 사용하는 데 제약이 있다고 말하는 것을 잊었습니다. 그러나 제안에 감사드립니다. 도움이됩니다.
tinlyx

1
@TingL 당신은 arcgis 이미지 서버 오픈 소스 대안을 찾기 시작할 수 있습니다
Pau

1

WebGL 이 있는 브라우저 에서이 작업을 수행 할 수 있습니다 .

http://www.html5rocks.com/en/tutorials/webgl/webgl_fundamentals/

그러나 일부 프로그래밍과 WebGL 호환 브라우저가 필요합니다. 그러나 대부분의 경우 GPU를 사용하므로 속도가 빠릅니다.


1
고마워 WebGL에서 GeoTIFF와 같은 GIS 데이터를 처리하는 방법에 대한 참조가 있습니까?
tinlyx
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.