Выполнение алгебры растровых карт в веб-ГИС с открытым исходным кодом?

9

Алгебра карт для растра проста с помощью ArcGIS Raster Calculator (или QGIS). Я думал, что это будет легко с веб-ГИС-серверами, такими как GeoServer и MapServer плюс OpenLayers и т. Д. Чего я хочу добиться, так это сделать простые вещи, такие как разделение двух изображений и создать третье изображение с соотношением сторон, которое будет отображаться на веб-странице. Я потратил недели, чтобы найти решение, и оно оказалось довольно сложным (для меня).

Я пробовал несколько вещей, в том числе:

  1. ПостГИС растр. Я думаю, что растровая алгебра здесь не проблема.

    Но растр PostGIS довольно сложно загрузить в GeoServer. Много раз задавалось много вопросов о том, как загрузить pgraster в GeoServer. Смотрите, например, Как импортировать GeoTIFF через postGIS в GeoServer? ? , Https://gis.stackexchange.com/questions/86006/publish-rasters-stored-in-postgresql-with-geoserver ?, Среди других. Ни один ответ здесь, в GIS.SE или на официальном сайте GeoServer, не дает полного списка шагов, которые можно выполнить для работы. Загрузка pgraster в MapServer сообщила об успехе, но с очень низкой производительностью. Кажется, что оба требуют некоторого разбиения на листы, и однострочная команда для импорта растра на любой сервер, кажется, не может быть и речи.

  2. GeoTIFF

    GeoTIFF легко загружается в GeoServer и MapServer. Но что мы можем с этим сделать? Без PostGIS, подобного SQL, я обратился к WCS для краткого поиска по алгебре карт, но ничего не нашел. WCS жизнеспособный путь для этого с текущими серверами?

  3. Запрограммируйте это трудным способом

    Каким-то образом используйте AJAX для вызова страницы PHP или напишите WPS, используя GeoServer для импорта изображений в PostGIS, выполнив алгебру карты, а затем преобразовав результат pgraster в формат (например, GeoTIFF), который можно легко загрузить и отобразить в GeoServer / MapServer.

  4. Конечно, можно написать код для непосредственного чтения GeoTIFF и выполнения алгебры карт без поддержки ГИС.

Ничто из вышеперечисленного не кажется мне легким или разумным, учитывая легкость, с которой такая же алгебра может быть реализована в настольной ГИС.

Мне было интересно, имел ли кто-то опыт работы над алгеброй карт в среде веб-ГИС, и может ли предложить жизнеспособный путь?

Мне интересны решения с открытым исходным кодом (по политическим причинам внутри моей организации.) Я знаю, что ArcGIS Server может вызывать код Python ArcGIS, но у нас нет лицензии, и среда здесь не благоприятна для ее приобретения.

tinlyx
источник
«Есть ли разумный способ ...» - это действительно многословная фраза (где, например, «Как…» работает отлично), чтобы вставить заголовок вопроса, так что, если вы можете придумать лучший способ сформулировать Ваш вопрос, чем то, что я предложил, пожалуйста, сделайте это. Кроме того, я считаю, что слово «программное обеспечение» включает в себя API-интерфейсы и библиотеки программирования, такие как GDAL, поэтому, по этой интерпретации, ваше изменение моего редактирования, вероятно, было ненужным. Тем не менее, делайте что хотите, если считаете, что это проясняет ваш вопрос.
blah238
@ blah238 Спасибо за правки :). Возможно, я был многословен, но я думаю, что, очевидно, есть способы ... просто они кажутся необоснованными усилиями по сравнению с миром ESRI / Desktop. Кроме того, вы правы, что «программное обеспечение» может включать в себя API. Я просто хочу подчеркнуть, что кодирование с нуля - это вариант, если нет ничего более простого для достижения алгебры карт.
tinlyx

Ответы:

4

Используя только программное обеспечение с открытым исходным кодом, вам почти наверняка придется заняться программированием самостоятельно. GDAL - это де-факто библиотека ввода-вывода с открытым исходным кодом, поэтому вы, вероятно, будете использовать ее или одну из ее многочисленных оболочек. Вы можете использовать Python (например, rasterio + numpy / scipy ) или node.js, например, node-gdal (хотя будьте осторожны, он в настоящее время является синхронным / блокирующим). Что касается фактической реализации его в качестве веб-службы, я не уверен, что будет лучшим подходом, но здесь есть связанный вопрос: сравнение различных ГИС-серверов с открытым исходным кодом?

Если программирование не ваша вещь, вы можете взглянуть на сервер FME . Это коммерческий продукт, но, вероятно, значительно дешевле, чем ArcGIS Server, и в нем есть все виды растровых расчетных преобразователей , поэтому я был бы весьма удивлен, если бы они не смогли выполнить то, что вам нужно. Вам не нужно загружать растры в базу данных, поскольку она может читать практически из любого формата растрового файла .

Серверная часть позволит вам запускать преобразования (рабочие пространства FME) на сервере и использовать API, например API-интерфейс REST FME Server, для запуска этих преобразований и доступа к результатам.

Основным преимуществом является то, что вам не нужно много делать, если какое-либо программирование для запуска и запуска сервисов, просто немного внешнего интерфейса для работы с API.

blah238
источник
+1 спасибо. Я также думал о rasdaman. Я могу программировать, но просто не чувствую правильного кодирования этого много лет спустя после алгебры карт.
tinlyx
+1 в поддержку питона + гдал. Делать растровую алгебру с помощью NumPy очень просто. Кроме того, если вы работаете с текстовыми растрами (такими как файлы .asc), то вам даже не нужен gdal (что может быть затруднительно для установки, в зависимости от) с использованием numpy.loadtxt (пропустите строки заголовка, пробел как разделитель, и т.д.)
user1269942
С rasdaman у вас есть возможность использовать WCPS для выполнения обработки на сервере, хотя вам, вероятно, понадобится выполнить некоторые сценарии для создания синтаксиса WCPS, так как выполнение вручную может быть сложной задачей.
nmtoken
2

То, что вы ищете, это сервер изображений. ArcGIS for Server имеет это расширение:

Расширение ArcGIS Image для сервера

я не знаю ни одного эквивалента с открытым исходным кодом.

Pau
источник
1
OP спрашивает, как это сделать в веб-контексте, а не для расширения ArcGIS.
Джон Пауэлл
2
@ JohnBarça расширение предлагается для ArcGIS for Server и используется в веб-контексте.
PolyGeo
@Pau Я забыл сказать, что я вынужден использовать ГИС с открытым исходным кодом. Но спасибо за предложение. Это полезно
tinlyx
1
@TingL вы можете начать искать альтернативы ArcGIS Server изображений с открытым исходным кодом
Пау
1

Вы можете сделать это в браузере с помощью WebGL:

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

но это потребовало бы некоторого программирования и WebGL-совместимого браузера. Но это должно быть быстро, так как в большинстве случаев он будет использовать GPU.

Spacedman
источник
1
Большое спасибо. Есть ли у вас какие-либо рекомендации по обработке данных ГИС, таких как GeoTIFF в WebGL?
tinlyx