オープンソースのWeb GISでラスターマップ代数演算を実行していますか?


9

ラスターのマップ代数は、ArcGIS Raster Calculator(またはQGIS)を使用すると簡単です。これは、GeoServerやMapServerなどのWeb GISサーバーとOpenLayersなどでも簡単だと思っていました。私が達成したいのは、2つの画像を分割してWebページに表示する3つ目の比率の画像を生成するなどの簡単なことです。解決策を見つけるのに何週間も費やしましたが、結局のところ(私にとって)かなり難しいことがわかりました。

私はいくつかのことを試しました:

  1. PostGISラスター。ここではラスター代数は問題ではないと思います。

    ただし、PostGISラスターをGeoServerにロードするのはかなり困難です。GeoServerにpgrasterをロードする方法について繰り返し尋ねられる多くの質問があります。たとえば、postGISを介してGeoTIFFをGeoServerにインポートする方法を参照してください?、特に/gis/86006/publish-rasters-stored-in-postgresql-with-geoserver?など。ここでGIS.SEまたはGeoServerの公式Webサイトの単一の回答ではなく、機能するために実行できる手順の完全なリストが示されています。pgrasterをMapServerにロードすると成功したと報告されていますが、パフォーマンスは非常に遅くなっています。どちらもいくつかのタイリングを必要とするようで、どちらかのサーバーにラスターをインポートするワンライナーコマンドは問題外のようです。

  2. GeoTIFF

    GeoTIFFは、GeoServerおよびMapServerに簡単にロードできます。しかし、それで何ができるでしょうか?SQLのようなPostGISがないので、WCSを使用して簡単にマップ代数を検索しましたが、あまり見つかりませんでした。WCSは、現在のサーバーでこれを実行する方法ですか?

  3. 難しい方法でプログラムする

    どういうわけか、AJAXを使用してPHPページを呼び出すか、GeoServerを使用して画像をPostGISにインポートし、マップ代数を実行して、結果のグラフをGeoServer / MapServerに簡単にロードして表示できる形式(GeoTIFFなど)に変換します。

  4. もちろん、GeoTIFFを直接読み取るコードを記述して、GISサポートなしでマップ代数演算を行うことができます。

上記のどれも、デスクトップGISで同じ代数を簡単に実行できることを考えると、簡単でも合理的でもないようです。

誰かがWeb GIS環境でマップ代数演算を行った経験があり、実行可能なパスを提案できるかどうか疑問に思っていましたか?

オープンソースソリューションに興味があります(組織内の政治的な理由から)。ArcGISServerがArcGISのPythonコードを呼び出すことができることは承知していますが、ライセンスがないため、ここでの環境はライセンスを取得するのに適していません。


「...への合理的な方法はありますか」は、質問のタイトルを入力するための非常に冗長なフレーズ(たとえば、「方法...」はうまく機能します)です。私が提案したものよりあなたの質問はそうしてください。また、「ソフトウェア」という言葉には、プログラミングAPIやGDALなどのライブラリーが含まれると考えるので、その解釈により、私の編集を元に戻すことはおそらく不要でした。ただし、質問が明確になると思われる場合は、希望どおりに操作してください。
blah238 2014年

@ blah238編集ありがとうございます。私はおそらく冗長でしたが、明らかに方法はあると思います... ESRI /デスクトップの世界と比較して、それらは不当な努力であるように見えるだけです。また、「ソフトウェア」にAPIを含めることができるのは当然です。マップ代数を実現するのが合理的に簡単なものが他にない場合は、それを最初からコーディングすることがオプションであることを強調したいだけです。
tinlyx 2014年

回答:


4

オープンソースのソフトウェアのみを使用すると、ほぼ間違いなく自分でプログラミングを行う必要があります。GDAL事実上のオープンソースラスタI / Oライブラリであるため、おそらくGDALまたはその多くのラッパーの1つを使用します。Python(例えばrasterio + numpy / scipy)やnode.js、例えばnode-gdalを使用できます(ただし現在同期/ブロックしていることに注意してください)。実際にそれをWebサービスとして実装することについては、どのアプローチが最適かはわかりませんが、関連する質問があります。さまざまなオープンソースGISサーバーを比較しますか?

プログラミングが気に入らない場合は、FMEサーバーご覧ください。これは商用製品ですが、おそらくArcGIS Serverよりもかなり安価であり、あらゆる種類のラスター計算トランスフォーマーを備えているので、必要なことを達成できなかったとしたら、私は非常に驚きます。ほぼすべてのラスターファイル形式から読み取ることができるため、データベースにラスターを読み込む必要はありません。

サーバー部分を使用すると、サーバーで変換(FMEワークスペース)を実行し、FMEサーバーREST APIなどのAPIを使用してこれらの変換を開始し、結果にアクセスできます。

主な利点は、サービスを起動して実行するためのプログラミングを行う必要がなく、APIと連携するためのほんの少しのフロントエンドコーディングだけで済むことです。


+1ありがとうございます。ラスダマンについても考えていました。私はプログラムできますが、マップ代数の後の何年もの間、それを正しくコーディングする気がありません。
tinlyx 2014年

+1 python + gdalをサポートします。numpyでラスター代数を実行するのは簡単です。また、テキストベースのラスター(.ascファイルなど)を使用している場合は、numpy.loadtxtを使用してgdal(インストールするのが面倒な場合があります)も必要ありません(ヘッダー行をスキップし、区切り文字としてスペースを使用します)。など)
user1269942

rasdamanを使用すると、WCPSを使用してサーバー上で処理を実行できますが、WCPS構文を手動で作成するのは難しい場合があるため、スクリプトを作成する必要がある可能性があります。
nmtoken

2

あなたが探しているのは画像サーバーです。ArcGIS for Serverには次の拡張子があります。

ArcGIS Image Extension for Server

私は同等のオープンソースのことを知りません。


1
OPは、ArcGISエクステンションではなく、Webコンテキストでこれを行う方法を求めています。
John Powell

2
@JohnBarça推奨される拡張はArcGIS for Serverに対するものであり、Webコンテキストで使用されます。
PolyGeo

@PauオープンソースのGISを使用するように制限されていることを忘れていました。しかし、提案をありがとう。参考になります。
tinlyx 2014年

1
@TingLは、arcgis画像サーバーのオープンソースの代替案を探し始めることができます
Pau

1

おそらくWebGLを使用てブラウザーでこれ行うことができます。

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

ただし、プログラミングとWebGLに準拠したブラウザが必要です。ただし、ほとんどの場合GPUを使用するため、高速である必要があります。


1
どうもありがとう。WebGLでGeoTIFFなどのGISデータを処理する方法についての参照はありますか?
tinlyx 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.