Виконання алгебри растрових карт у веб-ГІС з відкритим кодом?


9

Відображати алгебру для растрових легко за допомогою ArcGIS Raster Calculator (або QGIS). Я думав, що це буде легко і з веб-сервісами GIS, такими як GeoServer і MapServer плюс OpenLayers тощо. Я хочу досягти таких простих речей, як поділ двох зображень та генерування третього, пропорційного зображення для відображення на веб-сторінці. Я витратив тижні, щоб знайти рішення, і це виявляється досить важко (для мене).

Я спробував кілька речей, зокрема:

  1. PostGIS растр. Я думаю, що растрова алгебра тут не проблема.

    Але растр PostGIS досить важко завантажити в GeoServer. Неодноразово задається багато питань про те, як завантажити pgraster в GeoServer. Див. Наприклад, Як імпортувати GeoTIFF через postGIS в GeoServer? ? , /gis/86006/publish-rasters-stored-in-postgresql-with-geoserver ?, серед інших. Тут немає жодної відповіді на GIS.SE або на офіційному веб-сайті GeoServer, що не дає повного переліку кроків, які можна виконати для роботи. Завантаження пграстера в MapServer повідомило про успіх, але з дуже повільною продуктивністю. Здається, що для обох потрібна певна плитка, і команда з одним рядком для імпорту растра на будь-який сервер, здається, не виникає сумніву.

  2. GeoTIFF

    GeoTIFF легко завантажувати в GeoServer та MapServer. Але що ми можемо з цим зробити? Без такого PostGIS, як SQL, я звернувся і коротко шукав, використовуючи WCS, щоб зробити алгебру карти, але не знайшов багато. Чи WCS є життєздатним шляхом для цього з поточними серверами?

  3. Програмуйте це важким шляхом

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

  4. Звичайно, можна написати код, щоб прочитати безпосередньо GeoTIFF та зробити алгебру карти без підтримки ГІС.

Жодне з перерахованого вище не здається мені простим або розумним, враховуючи простоту, з якою можна зробити ту саму алгебру в Desktop GIS.

Мені було цікаво, чи має хто-небудь досвід роботи з алгеброю Map у веб-середовищі ГІС, і чи можна запропонувати життєздатний шлях?

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


"Чи є розумний спосіб ..." - це дійсно багатослівна фраза (де, наприклад, "Як ..." працює чудово), щоб поставити назву питання, тож якщо ви можете придумати кращий спосіб заявити Ваше питання, ніж те, що я запропонував, будь ласка, зробіть це. Крім того, я вважаю, що слово "програмне забезпечення" включає API програмування та бібліотеки, такі як GDAL, тому завдяки цій інтерпретації ваше повернення моєї редакції було, мабуть, непотрібним. Однак робіть те, що хочете, якщо ви думаєте, що це пояснює ваше запитання.
blah238

@ blah238 Дякую за зміни :). Я, напевно, був багатослівним, але, думаю, очевидно, що існують способи ... просто вони виявляються необгрунтованими зусиллями порівняно зі світом ESRI / Desktop. Також ви праві, що "програмне забезпечення" може включати API. Я просто хочу наголосити, що кодування з нуля - це варіант, якщо немає нічого іншого, що досить легко досягти алгебри карти.
тинлікс

Відповіді:


4

Використовуючи лише програмне забезпечення з відкритим кодом, вам майже напевно потрібно буде самостійно виконати програмування. GDAL - це фактично растрова бібліотека вводу-виводу з відкритим кодом, тому ви, ймовірно, будете користуватися нею або однією з багатьох її обгортків. Ви можете використовувати Python (наприклад, rasterio + numpy / scipy ) або node.js, наприклад node-gdal (хоча будьте обережні, він наразі синхронний / блокуючий). Що стосується фактичної його реалізації як веб-сервісу, я не впевнений, що було б найкращим підходом, але тут виникає пов'язане питання: Порівняння різних GIS-серверів з відкритим кодом?

Якщо програмування - це не ваша річ, ви можете подивитися на FME Server . Це комерційний продукт, але, ймовірно, значно дешевший, ніж ArcGIS Server, і він має всілякі растрові підрахунки трансформаторів , тому я був би дуже здивований, якби вони не змогли виконати те, що потрібно зробити. Вам не потрібно буде завантажувати растри в базу даних, оскільки вона може читати з будь-якого формату растрових файлів .

Серверна частина дозволить вам запустити перетворення (робочі простори FME) на сервері та використовувати API, наприклад, API REST API FME Server , щоб ініціювати ці перетворення та отримати доступ до результатів.

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


+1 спасибі Я також думав про роздаман. Я можу програмувати, але просто не відчуваю правильного кодування через ці багато років після алгебри карти.
бляшанка

+1 На підтримку python + gdal. Робити растрову алгебру з нумером - це вітер. Крім того, якщо ви працюєте з текстовими растрами (наприклад, файли .asc), вам навіть не потрібен gdal (який може бути болем для встановлення залежно), використовуючи numpy.loadtxt (пропускайте рядки заголовка, простір як роздільник, тощо)
user1269942

У Rasdaman у вас є можливість використовувати WCPS для обробки на сервері, хоча, ймовірно, вам доведеться виконати деякі сценарії, щоб створити синтаксис WCPS, оскільки це робити вручну.
nmtoken

2

Що ви шукаєте, це сервер зображень. ArcGIS for Server має таке розширення:

Розширення зображення ArcGIS для сервера

я не знаю жодних еквівалентів з відкритим кодом.


1
ОП запитує, як це зробити у веб-контексті, а не для розширення ArcGIS.
Джон Пауелл

2
@ JohnBarça пропоноване розширення призначене для ArcGIS for Server, і тому воно використовується у веб-контексті.
PolyGeo

@Pau Я забув сказати, що я настільки обмежений у використанні ГІС з відкритим кодом. Але дякую за пропозицію. Це корисно.
бляшанка

1
@TingL ви можете почати шукати альтернативи з відкритим вихідним кодом сервера зображень arcgis
Pau

1

Можливо, ви можете зробити це в браузері за допомогою WebGL:

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

але це потребує певного програмування та браузера, сумісного з WebGL. Але це повинно бути швидким, оскільки це використовує GPU у більшості випадків.


1
Дуже дякую. Чи є у вас посилання на те, як обробляти дані ГІС, такі як GeoTIFF в WebGL?
тинлікс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.