{"id":7041,"date":"2018-01-18T07:30:21","date_gmt":"2018-01-18T10:30:21","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/?p=7041"},"modified":"2018-01-19T07:52:06","modified_gmt":"2018-01-19T10:52:06","slug":"testando-softwares-para-big-data-spatial-parte-4","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2018\/01\/18\/testando-softwares-para-big-data-spatial-parte-4\/","title":{"rendered":"Testando softwares para Big Data Spatial &#8211; Parte 4"},"content":{"rendered":"<p>Neste post iremos falar um pouco sobre o GeoServer e sua integra\u00e7\u00e3o com o GeoWave. Apesar de quem acompanha o Blog j\u00e1 conhecer bastante o GeoServer, farei um breve descritivo.<\/p>\n<p><strong>1. GeoServer<\/strong><\/p>\n<p>O GeoServer \u00e9 um servidor de c\u00f3digo aberto para compartilhar dados geoespaciais. Projetado para interoperabilidade, ele publica dados de qualquer fonte de dados espaciais usando padr\u00f5es abertos. O GeoServer \u00e9 uma implementa\u00e7\u00e3o compat\u00edvel com o <a href=\"http:\/\/www.opengeospatial.org\/\" rel=\"noopener\" target=\"_blank\">Cons\u00f3rcio Geoespacial Aberto (OGC)<\/a> de uma s\u00e9rie de padr\u00f5es abertos, tais como WFS (Web Feature Service), WMS (Web Map Service) e Web Coverage Service (WCS).<\/p>\n<p>Formatos adicionais e op\u00e7\u00f5es de publica\u00e7\u00e3o est\u00e3o dispon\u00edveis, incluindo Web Map Tile Service (WMTS) e extens\u00f5es para Service Catalog (CSW) e Web Processing Service (WPS).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver-1024x504.png\" alt=\"\" width=\"676\" height=\"333\" class=\"aligncenter size-large wp-image-7042\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver-1024x504.png 1024w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver-300x148.png 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver-768x378.png 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver-945x465.png 945w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver-600x295.png 600w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver.png 1436w\" sizes=\"auto, (max-width: 676px) 100vw, 676px\" \/><\/p>\n<p>Usamos o GeoServer para ler Layers carregados com o GeoWave, o plugin que acabamos de adicionar ao nosso GeoServer nos permitir\u00e1 nos conectar a esses dados. Podemos us\u00e1-lo como qualquer outro tipo de Layer! \ud83d\ude42<\/p>\n<p>Para configurar o acesso a store de dados distribu\u00eddos, podemos usar duas op\u00e7\u00f5es:<\/p>\n<p> &#8211; Usando o painel de administra\u00e7\u00e3o do GeoServer como de costume:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver_admin.jpg\" alt=\"\" width=\"947\" height=\"929\" class=\"aligncenter size-full wp-image-7043\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver_admin.jpg 947w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver_admin-300x294.jpg 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver_admin-768x753.jpg 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver_admin-945x927.jpg 945w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver_admin-600x589.jpg 600w\" sizes=\"auto, (max-width: 947px) 100vw, 947px\" \/><\/p>\n<p>  &#8211; Usando o comando &#8220;gs&#8221; do GeoWave para registrar as stores e camadas em uma inst\u00e2ncia do GeoServer.<\/p>\n<p>Como estamos testando coisas, vamos usar a segunda op\u00e7\u00e3o. O primeiro passo requer indicar ao GeoWave a inst\u00e2ncia do GeoServer que queremos configurar.<\/p>\n<pre>\r\n> %geowave% config geoserver \r\n  -ws geowave -u admin -p geoserver http:\/\/localhost:8080\/geoserver\r\n<\/pre>\n<p>Semelhante ao que far\u00edamos na interface administrativa do GeoServer, n\u00f3s executamos dois comandos para adicionar, respectivamente, o Store e o Layer desejado.<\/p>\n<pre>\r\n> %geowave% gs addds -ds geowave_eea -ws geowave eea-store\r\n> %geowave% gs addfl -ds geowave_eea -ws geowave NO2-measures\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver_layer-616x1024.png\" alt=\"\" width=\"616\" height=\"1024\" class=\"aligncenter size-large wp-image-7045\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver_layer-616x1024.png 616w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver_layer-180x300.png 180w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver_layer-768x1277.png 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver_layer-945x1571.png 945w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver_layer-600x998.png 600w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/geoserver_layer.png 1162w\" sizes=\"auto, (max-width: 616px) 100vw, 616px\" \/><\/p>\n<p>Como voc\u00ea pode notar, o sistema de refer\u00eancia espacial da camada \u00e9 o <a href=\"http:\/\/spatialreference.org\/ref\/epsg\/4326\/\" rel=\"noopener\" target=\"_blank\">EPSG:4326<\/a>. Se visualizarmos o mapa com o cliente OpenLayers do GeoServer&#8230;<\/p>\n<p><a href=\"http:\/\/vimeo.com\/238172796\" rel=\"noopener\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/openlayers_red_point.png\" alt=\"\" width=\"949\" height=\"782\" class=\"aligncenter size-full wp-image-7046\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/openlayers_red_point.png 949w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/openlayers_red_point-300x247.png 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/openlayers_red_point-768x633.png 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/openlayers_red_point-945x779.png 945w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/openlayers_red_point-600x494.png 600w\" sizes=\"auto, (max-width: 949px) 100vw, 949px\" \/><\/a><\/p>\n<p>A performance \u00e9 quety decent (Clique na imagem acima para ver o v\u00eddeo), tendo em conta que estou executando um PC &#8220;n\u00e3o muito poderoso&#8221;, com o Hadoop trabalhando em &#8220;modo \u00fanico&#8221; e desenhando todas as medi\u00e7\u00f5es de NO2 de todos as datas dispon\u00edveis (~ 5 milh\u00f5es de registros). O \u00edndice espacial funciona direito, como o zoom inferior como resposta mais r\u00e1pida. Al\u00e9m disso, se n\u00f3s executamos um filtro WFS com um crit\u00e9rio temporal, verificamos que o \u00edndice temporal executa corretamente, por\u00e9m o GeoServer n\u00e3o verifica todos os registros da camada.<\/p>\n<p>O guia do usu\u00e1rio do GeoWave nos fala sobre um estilo especial chamado &#8220;subsamplepoints&#8221; (Ele usa um processo WPS chamado &#8220;geowave:Subsample&#8221; e que o plugin GeoWave implementa). Ao desenhar um mapa, esse estilo realiza subamostras espaciais para acelerar o processo de renderiza\u00e7\u00e3o. Com ele \u00e9 verificado um \u00f3timo ganho de desempenho, eu recomendo que voc\u00ea utilize ele para camadas do tipo ponto.<\/p>\n<p>Testei tamb\u00e9m para carregar uma camada de tipo de pol\u00edgono de um Shapefile, sem problemas, as requisi\u00e7\u00f5es WMS GetMap e WFS GetFeature foram bem executadas. Apenas uma nota, a ferramenta de carregamento GeoWave transforma automaticamente geometrias do sistema de refer\u00eancia espacial original ( <a href=\"http:\/\/spatialreference.org\/ref\/epsg\/25830\/\" rel=\"noopener\" target=\"_blank\">EPSG:25830<\/a> no meu caso) para EPSG:4326 em coordenadas geogr\u00e1ficas.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/openlayers_grey_polygon.png\" alt=\"\" width=\"918\" height=\"774\" class=\"aligncenter size-full wp-image-7048\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/openlayers_grey_polygon.png 918w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/openlayers_grey_polygon-300x253.png 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/openlayers_grey_polygon-768x648.png 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/01\/openlayers_grey_polygon-600x506.png 600w\" sizes=\"auto, (max-width: 918px) 100vw, 918px\" \/><\/p>\n<p>Neste ponto, verificamos que tudo se encaixa, podemos parar por aqui, j\u00e1 que a explora\u00e7\u00e3o desses dados j\u00e1 pode ser feita com bibliotecas de Mapeamento Web ( <a href=\"http:\/\/leafletjs.com\/\" rel=\"noopener\" target=\"_blank\">Leaflet<\/a>, <a href=\"http:\/\/www.openlayers.org\" rel=\"noopener\" target=\"_blank\">OpenLayers<\/a>, <a href=\"http:\/\/www.i3geo.com.br\" rel=\"noopener\" target=\"_blank\">i3Geo<\/a>&#8230; ) ou quaisquer aplicativo de desktop GIS (<a href=\"http:\/\/www.qgis.org\" rel=\"noopener\" target=\"_blank\">QGIS<\/a>, <a href=\"http:\/\/www.gvsig.com\" rel=\"noopener\" target=\"_blank\">gvSIG<\/a>, etc&#8230;).<\/p>\n<p>Voc\u00ea gostaria de continuar? Ent\u00e3o n\u00e3o perca a <a href=\"http:\/\/www.fernandoquadro.com.br\/html\/2018\/01\/19\/testando-softwares-para-big-data-spatial-parte-5\/\" rel=\"noopener\" target=\"_blank\">\u00faltima parte deste artigo<\/a>, onde falaremos sobre WebMaps.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste post iremos falar um pouco sobre o GeoServer e sua integra\u00e7\u00e3o com o GeoWave. Apesar de quem acompanha o Blog j\u00e1 conhecer bastante o GeoServer, farei um breve descritivo. 1. GeoServer O GeoServer \u00e9 um servidor de c\u00f3digo aberto&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2018\/01\/18\/testando-softwares-para-big-data-spatial-parte-4\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":7051,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[311,208,314,313],"class_list":["post-7041","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis","tag-big-data","tag-geoserver","tag-geowave","tag-hadoop"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/7041","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/users\/275"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/comments?post=7041"}],"version-history":[{"count":6,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/7041\/revisions"}],"predecessor-version":[{"id":7078,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/7041\/revisions\/7078"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/7051"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=7041"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=7041"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=7041"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}