{"id":6070,"date":"2016-07-19T07:30:34","date_gmt":"2016-07-19T10:30:34","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/?p=6070"},"modified":"2016-08-12T14:50:21","modified_gmt":"2016-08-12T17:50:21","slug":"analise-e-visualizacao-de-dados-lidar-parte-4","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2016\/07\/19\/analise-e-visualizacao-de-dados-lidar-parte-4\/","title":{"rendered":"An\u00e1lise e visualiza\u00e7\u00e3o de dados LiDAR \u2013 Parte 4"},"content":{"rendered":"<p>Agora vamos adicionar ao mapa uma camada de edif\u00edcios. Para isso descompacte o arquivo BuildingFootprints.zip que baixado anteriormente.<\/p>\n<p>N\u00f3s vamos carregar os edif\u00edcios no banco de dados como uma tabela espacial, mas antes disso, n\u00f3s temos de descobrir o qual o &#8220;SRID&#8221; usar.<\/p>\n<p>Para descobrir o SRID basta abrir o arquivo BuildingFootprints.prj, veja:<\/p>\n<pre>PROJCS&nbsp;[&nbsp;\"NAD_1983_StatePlane_Oregon_South_FIPS_3602_Feet_Intl\"&nbsp;,&nbsp;\r\n&nbsp;&nbsp;GEOGCS&nbsp;[&nbsp;\"GCS_North_American_1983\"&nbsp;,&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;DATUM&nbsp;[&nbsp;\"D_North_American_1983\"&nbsp;,&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPHEROID&nbsp;[&nbsp;\"GRS_1980\"&nbsp;,&nbsp;6378137.0&nbsp;,&nbsp;298.257222101&nbsp;]],&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;PRIMEM&nbsp;[&nbsp;\"Greenwich\"&nbsp;,&nbsp;0.0&nbsp;],&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;UNIT&nbsp;[&nbsp;\"Degree\"&nbsp;,&nbsp;0.0174532925199433&nbsp;]],&nbsp;\r\n&nbsp;&nbsp;PROJECTION&nbsp;[&nbsp;\"Lambert_Conformal_Conic\"&nbsp;],&nbsp;\r\n&nbsp;&nbsp;PARAMETER&nbsp;[&nbsp;\"False_Easting\"&nbsp;,&nbsp;4921259.842519685&nbsp;],&nbsp;\r\n&nbsp;&nbsp;PARAMETER&nbsp;[&nbsp;\"False_Northing\"&nbsp;,&nbsp;0.0&nbsp;],&nbsp;\r\n&nbsp;&nbsp;PARAMETER&nbsp;[&nbsp;\"Central_Meridian\"&nbsp;,&nbsp;-&nbsp;120.5&nbsp;],&nbsp;\r\n&nbsp;&nbsp;PARAMETER&nbsp;[&nbsp;\"Standard_Parallel_1\"&nbsp;,&nbsp;42.33333333333334&nbsp;],&nbsp;\r\n&nbsp;&nbsp;PARAMETER&nbsp;[&nbsp;\"Standard_Parallel_2\"&nbsp;,&nbsp;44.0&nbsp;],&nbsp;\r\n&nbsp;&nbsp;PARAMETER&nbsp;[&nbsp;\"Latitude_Of_Origin\"&nbsp;,&nbsp;41.66666666666666&nbsp;],&nbsp;\r\n&nbsp;&nbsp;UNIT&nbsp;[&nbsp;\"Foot\"&nbsp;,&nbsp;0.3048&nbsp;]]<\/pre>\n<p>\u00c9 muito claro que a informa\u00e7\u00e3o que estamos procurando \u00e9 esta &#8220;NAD_1983_StatePlane_Oregon_South_FIPS_3602_Feet_Intl&#8221;, mas qual n\u00famero &#8220;SRID&#8221; devemos usar?<\/p>\n<p>Para descobrir basta ir para ao site Prj2EPSG (<a href=\"http:\/\/prj2epsg.org\" target=\"_blank\">http:\/\/prj2epsg.org<\/a>), e procurar pela informa\u00e7\u00e3o acima, e voc\u00ea vai obter a resposta que \u00e9 2270.<\/p>\n<p>Agora, usando o shp2pgsql podemos carregar os dados em uma tabela chamada <em>buildings<\/em>:<\/p>\n<pre>shp2pgsql -s 2270 -D BuildingFootprints.shp buildings | psql -d lidar<\/pre>\n<p>Os nossos dados LIDAR est\u00e3o todos em coordenadas geogr\u00e1ficas (EPSG: 4326) e n\u00f3s vamos ter de integr\u00e1-los com a camada buildings (EPSG:2270) para envitar problemas, sendo assim vamos utilizar a fun\u00e7\u00e3o ST_Transform do PostGIS pra isso:<\/p>\n<pre>--&nbsp;Update&nbsp;SRID&nbsp;and&nbsp;transform&nbsp;all&nbsp;geoms\r\nALTER&nbsp;TABLE&nbsp;buildings\r\nALTER&nbsp;COLUMN&nbsp;geom\r\nTYPE&nbsp;geometry(MultiPolygon,4326)\r\nUSING&nbsp;ST_Transform(geom,&nbsp;4326);\r\n--&nbsp;Rename&nbsp;to&nbsp;area&nbsp;column&nbsp;to&nbsp;area\r\nALTER&nbsp;TABLE&nbsp;buildings\r\nRENAME&nbsp;COLUMN&nbsp;shape_st_1\r\nTO&nbsp;shape_area;\r\n--&nbsp;Index&nbsp;the&nbsp;table\r\nCREATE&nbsp;INDEX&nbsp;buildings_gix&nbsp;ON&nbsp;buildings&nbsp;USING&nbsp;GIST&nbsp;(geom);<\/pre>\n<p>Para agilizar a nossa an\u00e1lise, vamos eliminar todos os edif\u00edcios que n\u00e3o est\u00e3o contidos na \u00e1rea do nosso dado LiDAR.<\/p>\n<pre>--&nbsp;Find&nbsp;the&nbsp;LIDAR&nbsp;extent\r\nSELECT&nbsp;st_extent(pa::geometry)&nbsp;FROM&nbsp;medford;\r\n--&nbsp;BOX(-122.8874999&nbsp;42.3125,-122.8749998&nbsp;42.325)\r\n--&nbsp;Delete&nbsp;unneeded&nbsp;building&nbsp;polygons\r\nDELETE&nbsp;FROM&nbsp;buildings\r\nWHERE&nbsp;NOT&nbsp;ST_Contains(\r\n&nbsp;&nbsp;ST_MakeEnvelope(-122.8874999,&nbsp;42.3125,&nbsp;-122.8749998,&nbsp;42.325,&nbsp;4326),\r\n&nbsp;&nbsp;geom);<\/pre>\n<p>Agora, \u00e9 publicar esta camada no GeoServer. Fa\u00e7a a publica\u00e7\u00e3o da forma tradicional, apenas na aba Cache desmarque a op\u00e7\u00e3o &#8220;Criar camada de cache para esta camada&#8221; e na aba Publishing altere as informa\u00e7\u00f5es das propriedade do KML confirme a figura abaixo:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/07\/gs_kmlconfig.jpg\" alt=\"gs_kmlconfig\" width=\"347\" height=\"184\" class=\"aligncenter size-full wp-image-6075\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/07\/gs_kmlconfig.jpg 347w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/07\/gs_kmlconfig-300x159.jpg 300w\" sizes=\"auto, (max-width: 347px) 100vw, 347px\" \/><\/p>\n<p>Salve, e ent\u00e3o temos agora uma camada vis\u00edvel! Voc\u00ea pode visualiz\u00e1-la no Google Earth usando o <a href=\"http:\/\/docs.geoserver.org\/2.3.3\/user\/googleearth\/features\/kmlreflector.html\" target=\"_blank\">KML reflector do GeoServer<\/a>.<\/p>\n<p><a href=\"http:\/\/localhost:8080\/geoserver\/wms\/kml?layers=opengeo:buildings&#038;format_options=lookatbbox:bbox=-122.8808,42.3311,-122.8806,42.3313&#038;mode=refresh&#038;kmscore=50\" target=\"_blank\">http:\/\/localhost:8080\/geoserver\/wms\/kml?layers=opengeo:buildings&#038;format_options=lookatbbox:bbox=-122.8808,42.3311,-122.8806,42.3313&#038;mode=refresh&#038;kmscore=50<\/a><\/p>\n<p>Quando voc\u00ea ampliar a imagem no Google Earth, vai notar algo estranho sobre nossos edif\u00edcios: eles s\u00e3o &#8220;lisos&#8221;! Queremos edif\u00edcios em 3D, como podemos obt\u00ea-los? \u00c9 isso que iremos ver nos pr\u00f3ximos posts.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Agora vamos adicionar ao mapa uma camada de edif\u00edcios. Para isso descompacte o arquivo BuildingFootprints.zip que baixado anteriormente. N\u00f3s vamos carregar os edif\u00edcios no banco de dados como uma tabela espacial, mas antes disso, n\u00f3s temos de descobrir o qual&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2016\/07\/19\/analise-e-visualizacao-de-dados-lidar-parte-4\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":6072,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[268],"class_list":["post-6070","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis","tag-lidar"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/6070","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=6070"}],"version-history":[{"count":9,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/6070\/revisions"}],"predecessor-version":[{"id":6205,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/6070\/revisions\/6205"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/6072"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=6070"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=6070"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=6070"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}