Açık kaynaklı web CBS'de raster harita cebiri gerçekleştiriliyor mu?


9

Raster için harita cebri ArcGIS Raster Hesap Makinesi (veya QGIS) ile kolaydır. Bunun GeoServer ve MapServer artı OpenLayers gibi web CBS sunucuları ile de kolay olacağını düşünmüştüm. Ne elde etmek istiyorum iki görüntü bölme ve web sayfasında görüntülenecek bir üçüncü oran görüntü oluşturmak gibi basit şeyler yapmaktır. Bir çözüm bulmak için haftalar geçirdim ve bu benim için oldukça zor çıkıyor.

Ben de dahil olmak üzere birkaç şey denedim:

  1. PostGIS raster. Bence raster cebiri burada bir sorun değil.

    Ancak PostGIS rasterinin GeoServer'a yüklenmesi oldukça zordur. GeoServer'da pgraster'ın nasıl yükleneceği hakkında tekrar tekrar sorulan birçok soru var. Bakınız örn. GeoTIFF'i postGIS aracılığıyla GeoServer'a nasıl aktarabilirim? ? , /gis/86006/publish-rasters-stored-in-postgresql-with-geoserver ?, diğerleri arasında. Burada GIS.SE veya GeoServer resmi web sitesinde tek bir cevap bile işe yaramayacak adımların tam bir listesini verir. Pgraster'ı MapServer'a yüklemeniz başarılı olduğunu ancak çok yavaş performans gösterdi. Her ikisi de biraz döşeme gerektiriyor gibi görünüyor ve her iki sunucuya bir raster almak için tek satırlık bir komut söz konusu değil.

  2. GeoTIFF

    GeoTIFF'in GeoServer ve MapServer'a yüklenmesi kolaydır. Ama bununla ne yapabiliriz? SQL gibi bir PostGIS olmadan, harita cebiri yapmak için WCS kullanarak döndüm ve kısaca aradım, ancak fazla bir şey bulamadım. Mevcut sunucularda WCS bunun için geçerli bir yol mu?

  3. Zor yoldan programlayın

    Bir şekilde AJAX'ı kullanarak bir PHP sayfasını çağırmak veya görüntüleri PostGIS'e aktarmak için GeoServer kullanarak bir WPS yazmak, harita cebirini yapmak ve ardından sonuç hızlandırıcıyı GeoServer / MapServer'da kolayca yüklenip görüntülenebilecek bir formata dönüştürmek (örn. GeoTIFF).

  4. Tabii ki, GeoTIFF'leri doğrudan okumak için kod yazabilir ve CBS desteği olmadan harita cebiri yapılabilir.

Yukarıdakilerin hiçbiri, aynı cebirin Masaüstü CBS'de yapılabilme kolaylığı göz önüne alındığında benim için kolay veya makul görünmüyor.

Birisinin bir web CBS ortamında Harita Cebiri yapma konusunda herhangi bir deneyimi olup olmadığını merak ediyordum ve uygun bir yol önerebilir miyim?

Açık Kaynak çözümleriyle ilgileniyorum (kuruluşumdaki siyasi nedenlerden dolayı) ArcGIS Server'ın ArcGIS'in python kodunu çağırabileceğinin farkındayım, ancak lisansımız yok ve buradaki ortam bir tane almak için uygun değil.


"Makul bir yol var mı?", Gerçekten başlıklı bir kelime koymak için gerçekten garip bir ifade (nerede, örneğin, "Nasıl ..." iyi çalışıyor), yani eğer daha iyi bir yol düşünebilirseniz Sorunuz önerdiğimden daha lütfen. Ayrıca, "yazılım" kelimesinin GDAL gibi programlama API'lerini ve kitaplıklarını içerdiğini düşünüyorum , bu nedenle bu yorumla, düzenlememi geri çevirmeniz muhtemelen gereksizdi. Ancak, sorunuzu netleştirdiğini düşünüyorsanız, istediğinizi yapın.
blah238

@ blah238 Düzenlemeler için teşekkürler :). Muhtemelen ayrıntılı bir şeydim, ama bence kesinlikle ... ESRI / Masaüstü dünyasına kıyasla mantıksız bir çaba gibi görünüyorlar. Ayrıca, "yazılım" ın API'ları içerebileceğini de haklısınız. Sadece harita cebirine ulaşmak için oldukça kolay başka bir şey yoksa sıfırdan kodlamanın bir seçenek olduğunu vurgulamak istiyorum.
tinlyx

Yanıtlar:


4

Sadece açık kaynaklı yazılımlar kullanarak, kesinlikle kendiniz programlama yapmanız gerekecektir. GDAL ise fiilen muhtemelen onu ya da çok sayıda sarmalayıcıların birini kullanarak olacak, böylece G / Ç kütüphanesinde tarama açık kaynak. Sen Python (örn kullanabilirsiniz rasterio + numpy / scipy ) veya node.js, örneğin düğüm-GDAL (gerçi şu anda senkron / engelliyor dikkat). Aslında bir web hizmeti olarak uygulamak gelince, en iyi yaklaşım ne olacağını emin değilim, ama burada ilgili bir soru var: Farklı açık kaynak GIS sunucuları karşılaştırmak?

Programlama sizin işiniz değilse, FME Sunucusuna bir göz atabilirsiniz . Ticari bir ürün ama muhtemelen ArcGIS Server'dan daha ucuz ve her türlü raster hesaplama transformatörüne sahip , bu yüzden yapmanız gerekeni başaramazlarsa oldukça şaşırırdım. Hemen hemen herhangi bir raster dosyası biçiminden okuyabileceğinden, rasterleri bir veritabanına yüklemeniz gerekmez .

Sunucu bölümü, bir sunucuda dönüşümleri (FME çalışma alanları) çalıştırmanıza ve bu dönüşümleri başlatmak ve sonuçlara erişmek için bir API, örneğin FME Server REST API kullanmanıza izin verir.

En büyük yararı, hizmetleri çalıştırmak ve çalıştırmak için herhangi bir programlama yapmanıza gerek yoktur, sadece API ile çalışmak için küçük bir ön uç kodlaması.


+1 teşekkürler. Rasdaman'ı da düşünüyordum. Programlayabilirim, ama harita cebirinden yıllar sonra kodlamayı doğru hissetmiyorum.
tinlyx

+1 Python + gdal desteği. Raster cebiri numpy ile yapmak bir esinti. Ayrıca, metin tabanlı rasterlerle (.asc dosyaları gibi) çalışıyorsanız, numpy.loadtxt (başlık satırlarını atla, ayırıcı olarak boşluk, vb.)
user1269942

Rasdaman ile WCPS'yi sunucuda işlem yapmak için kullanma olanağına sahipsiniz, ancak elle yapmak zor olabileceğinden muhtemelen WCPS sözdizimini oluşturmak için bazı komut dosyaları yapmanız gerekecektir.
nmtoken

2

Aradığın şey bir görüntü sunucusudur. ArcGIS for Server şu uzantıya sahiptir:

Sunucu için ArcGIS Görüntü Uzantısı

açık kaynak eşdeğeri bilmiyorum.


1
OP bunu bir ArcGIS uzantısı için değil, bir web bağlamında nasıl yapacağınızı soruyor.
John Powell

2
@ JohnBarça önerilen uzantı ArcGIS for Server'a aittir ve bu nedenle web bağlamında kullanılır.
PolyGeo

@Pau Açık kaynak CBS kullanmakla sınırlı olduğumu söylemeyi unuttum. Ama öneri için teşekkürler. Yararlı.
tinlyx

1
@TingL arcgis görüntü sunucusu açık kaynak alternatifleri aramaya başlayabilirsiniz
Pau

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.