Alternativa de código aberto ao conceito de serviço de geoprocessamento do ArcGIS?
15
Estou procurando por exemplos de implementação de uma lógica que a Esri construiu com serviços de geoprocessamento. Você cria uma ferramenta personalizada ou pode ser uma ferramenta do sistema >> publica-a expondo essa funcionalidade como um serviço da web >> consome o serviço da web com um cliente.
Um exemplo simples e clássico: o usuário pode clicar no mapa para criar um ponto> as coordenadas são enviadas ao servidor> a operação de buffer está sendo executada no back-end> o recurso da zona de buffer (ou apenas uma imagem) é enviado de volta ao cliente e mostrado na tela do mapa. Desenvolvo os serviços Esri GP nos últimos 3 anos e foi uma experiência agradável especificamente desde a versão 10.1.
Existem exemplos do sistema / solução de código aberto que se poderia usar para criar uma lógica semelhante?
Pesquisei no Google e encontrei sextante gis, mas não havia nada específico sobre como isso funciona e quanto de lógica disponível na Esri está disponível. 52North também parece estar trabalhando nisso, mas novamente estou perdendo a explicação clara do conceito.
Há toda uma descrição / tutorial sobre serviços de processamento da web (WPS) encontrados aqui . A maior parte disso será feita usando solicitações HTTP enviadas para um servidor como o GeoServer que está hospedando esse processo. O link GeoServer descreverá o processo geral de hospedagem e chamada de um WPS usando seu software. A extensão WPS do GeoServer vem com os processos do JTS Topology Suite, que é uma biblioteca de funções espaciais comuns, como operações de buffer e interseção. Aqui está o exemplo deles na execução de uma operação de buffer usando a biblioteca JTS.
Outras maneiras
Existem outras maneiras de fazer isso. Nossa equipe da web usa consultas no banco de dados PostGRE / PostGIS para fazer análises simples, mas não estou familiarizado com isso completamente.
Uma idéia que comecei a pesquisar envolve o uso de scripts python de código aberto, como PySal / GDAL, para fazer análise espacial. Você precisaria usar algum JavaScript / AJAX (ou qualquer linguagem do lado do servidor) para executar esses scripts no servidor e cuspir novamente os resultados. Seria uma opção complicada, mas acredito que daria a você melhores opções de personalização, em oposição à ESRI.
Eu acho que você deve ser capaz de dividir os recursos em uma string GeoJSON para passar como parâmetro para os scripts python. A partir daí, você precisaria converter esse resultado novamente em uma sequência GeoJSON para retornar ao cliente para exibição. Pacotes Python como Shapely podem interpretar uma sequência GeoJSON. Outros podem precisar de alguma solução alternativa escrita para utilizar o GeoJSON, ou pode haver uma opção melhor que eu não tenha pensado em usar.
Outra opção seria usar o GeoTools para escrever um aplicativo da web Java que faria análise espacial. Isso também suporta seqüências de caracteres GeoJSON e possui algumas funções de análise espacial integradas. Eles têm algumas capturas de tela mostrando seus vários aplicativos.
É possível criar seu próprio WPS ou executar um script do lado do servidor. Não será tão fácil quanto a ESRI faz, mas seria gratuito se você estiver usando código-fonte aberto.
Seja qual for o caminho que você decidir, atualize-o aqui, pois é um ótimo tópico!
muito obrigado, ótima resposta. Você citou uma das alternativas que eu tinha em mente: acionar arquivos .py do Python da página JS armazenando os dados enviados pelos usuários, alimentando esses dados com as funções do Python e, em seguida, retornando os resultados da saída ao navegador da web. A questão aqui é que você precisaria escrever a maioria das ferramentas GP do zero. O link do GeoTools que você compartilhou parece interessante. Seria muito legal ver qualquer exemplo ao vivo de uma operação GP executada no back-end pelo GeoServer!
Alex Tereshenkov
2
O plugin OpenGeo para Qgis pode usar os serviços wps hospedados no servidor geográfico. Funciona da mesma maneira que o arcgis usa sua caixa de ferramentas, exigirá que o serviço wps esteja ativado e o processo esteja disponível. Você também deve verificar pyWPS
você poderia elaborar um plugin QGIS? Será apenas um cliente de desktop que pode consumir serviços WPS? Estou interessado em criar serviços WPS e, em seguida, em um fluxo de trabalho semelhante ao da Esri (ou próximo a isso com mais configuração e programação aceitável). Talvez você possa compartilhar informações sobre o desenvolvimento do serviço wps de qualquer GIS de mesa para GeoServer ou outra plataforma de servidor GIS?
O plugin OpenGeo para Qgis pode usar os serviços wps hospedados no servidor geográfico. Funciona da mesma maneira que o arcgis usa sua caixa de ferramentas, exigirá que o serviço wps esteja ativado e o processo esteja disponível. Você também deve verificar pyWPS
fonte