<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1045007745501753278</id><updated>2012-02-16T13:16:20.329-08:00</updated><category term='GIS'/><category term='raster'/><category term='pydev'/><category term='memoriais'/><category term='qt3'/><category term='Sistemas de Coordenadas'/><category term='postgis'/><category term='gdal'/><category term='wktraster'/><category term='SIG'/><category term='mingw'/><category term='android'/><category term='terralib'/><category term='plugin'/><category term='qgis'/><category term='python'/><category term='remote sensing'/><category term='TRMM'/><category term='qt4'/><category term='fme'/><category term='Córrego Alegre'/><category term='transformação de coordenadas'/><category term='eclipse'/><category term='c++'/><category term='azimutes'/><category term='cross compile'/><category term='distâncias'/><title type='text'>Mapeando o Brasil</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-1258562336856893380</id><published>2012-01-13T07:17:00.000-08:00</published><updated>2012-01-13T07:18:37.831-08:00</updated><title type='text'>WktRaster Plugin para Quantum GIS no GeoInfo</title><content type='html'>O &lt;a href="http://www.geoinfo.info/"&gt;GeoInfo&lt;/a&gt; é o Simpósio Brasileiro de GeoInformática, que ocorre anualmente. Nele foram apresentados diversos temas que abrangeram diversos tópicos desde bancos de dados espaço-temporais até classificação orientada a objeto. Uma característica interessante do simpósio é que os artigos apresentados ficam disponíveis na &lt;a href="http://www.geoinfo.info/proceedings/proceedings_geoinfo2011.pdf"&gt;página do evento&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Este ano o WktRaster Plugin amadureceu bastante e o PostGIS 2.0 também. Portanto um dos artigos é uma apresentação rápida do plugin mostrando seus objetivos, o que desejamos que ele seja capaz de cumprir e o que ele já consegue proporcionar ao usuário. &lt;br /&gt;&lt;br /&gt;Para aqueles que querem ver alguns exemplos de &lt;i&gt;queries&lt;/i&gt; envolvendo imagens e vetores, deixo aqui disponibilizada a &lt;a href="https://docs.google.com/open?id=0B3179jWpaUHpODJlYTQ1ODctM2VmMi00NGY2LTk3MzItMDRjZDUwNDMwNGJm"&gt;apresentação em PDF&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-1258562336856893380?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/1258562336856893380/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2012/01/wktraster-plugin-para-quantum-gis-no.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/1258562336856893380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/1258562336856893380'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2012/01/wktraster-plugin-para-quantum-gis-no.html' title='WktRaster Plugin para Quantum GIS no GeoInfo'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-839374725973110650</id><published>2011-12-14T05:07:00.000-08:00</published><updated>2011-12-14T05:07:43.687-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TRMM'/><category scheme='http://www.blogger.com/atom/ns#' term='gdal'/><title type='text'>Dados de prescipitação TRMM em TIF usando GDAL</title><content type='html'>Os dados de prescipitação &lt;a href="http://trmm.gsfc.nasa.gov/"&gt;TRMM&lt;/a&gt; podem ser convertidos de hdf para tif utilizando o gdal_translate. Este processo facilita o uso em aplicativos de SIG.&lt;br /&gt;&lt;br /&gt;Para isso podemos utilizar o "gdal_translate". Esta ferramenta vem disponível nos pacotes quem incluem a &lt;a href="http://www.gdal.org/"&gt;GDAL &lt;/a&gt;, como por exemplo,&lt;a href="http://www.qgis.org/"&gt;QuantumGIS&lt;/a&gt;, &lt;a href="http://fwtools.maptools.org/"&gt;FWTools&lt;/a&gt; e &lt;a href="http://osgeo4w.osgeo.org/"&gt;OSGeo4W&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Apesar do QuantumGIS possuir uma interface gráfica para efetuar este processo, ela não permite que sejam definidos novas coordenadas de canto da imagem. Portanto, é necessária a utilização de linha de comando.&lt;br /&gt;&lt;br /&gt;Em um terminal (ou OSGeo4W Shell no Windows) digite:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: shell" name="code"&gt;gdal_translate HDF4_SDS:UNKNOWN:NomeDoArquivo.hdf:0 saida.tif -a_ullr -180 50 180 -50 -a_srs EPSG:4326&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Durante a conversão estamos definindo o sistema de coordenadas (WGS 84 Coordenadas geográficas) e a região ocupada pela imagem (-180 a 180 em longitude, -50 a 50 em latitude). Caso estes parâmetros não fossem passados, a ferramenta converteria apenas a matriz, sem georreferenciamento.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para executar este comando em todos os arquivos de uma pasta (em lote) em sistemas operacionais Linux (com BASH) pode-se utilizar:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: shell" name="code"&gt;for f in *.hdf&lt;br /&gt;do&lt;br /&gt;gdal_translate HDF4_SDS:UNKNOWN:${f}:0 ${f}.tif \&lt;br /&gt;-a_ullr -180 50 180 -50 -a_srs EPSG:4326&lt;br /&gt;done&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-839374725973110650?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/839374725973110650/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/12/dados-de-prescipitacao-trmm-em-tif.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/839374725973110650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/839374725973110650'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/12/dados-de-prescipitacao-trmm-em-tif.html' title='Dados de prescipitação TRMM em TIF usando GDAL'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-4748702489246284318</id><published>2011-10-03T12:20:00.000-07:00</published><updated>2011-10-03T14:12:26.253-07:00</updated><title type='text'>Visualizar camadas do Postgis do TerraView em outros aplicativos</title><content type='html'>O TerraView 4 foi desenvolvido utilizando a TerraLib 4. Esta biblioteca tem uma organização de banco de dados pouco usual, pois separa as representações vetoriais de uma tabela das informações tabulares da mesma.&lt;br /&gt;&lt;br /&gt;Apesar disso, o TerraView pode armazenar os dados geográficos utilizando os objetos nativos do PostGIS. Isto permite que os usuários vejam as geometrias em outros softwares, mas não dá acesso aos atributos. &lt;br /&gt;&lt;br /&gt;Para visualizar todas as informações numa única tabela, pode-se fazer uso do conceito de &lt;a href="http://www.postgresql.org/docs/8.2/interactive/sql-createview.html"&gt;"views" do PostgreSQL&lt;/a&gt;. Uma "view" é uma tabela dinâmica, produzida à partir de uma consulta. Neste caso, utilizaremos a "view" para juntar as tabelas de geometria e atributos.&lt;br /&gt;&lt;br /&gt;Primeiramente, precisamos descobrir em que tabelas cada parte está armazenada. O TerraLib não dá nenhum nome intuitivo às tabelas de geometria, portanto seria difícil adivinhar qual é a tabela correta. Desta forma, pode-se utilizar o comando SQL a seguir para listar todos os relacionamentos entre geometrias e tabelas que o TerraView conhece.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: sql" name="code"&gt;select l.layer_id, l.name, r.geom_table, t.attr_table, t.attr_link&amp;nbsp; &lt;br /&gt;from te_layer as l, te_representation as r, te_layer_table as t &lt;br /&gt;where (l.layer_id=t.layer_id) and (l.layer_id=r.layer_id)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;A coluna "t.attr_link" é o nome da coluna da tabela de atributos que serve de ligação ao "object_id" da tabela de geometrias.&lt;br /&gt;&lt;br /&gt;De posse do nome das duas tabelas onde estão nossos dados e das colunas que os ligam, pode-se criar a "view" que materializa a ligação:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: sql" name="code"&gt;CREATE VIEW pg_rio AS &lt;br /&gt;SELECT *&amp;nbsp; FROM polygons6 as g, rio&amp;lt; as t&lt;br /&gt;WHERE t.object_id_6 = g.object_id;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Esta "view" já pode ser visualizada em aplicativos como GvSIG, QGIS e MapServer.&lt;br /&gt;&lt;br /&gt;Como resultado secundário deste post, produzi um plugin simples para o Quantum GIS que permite carregar as camadas do TerraLib+PostGIS. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-tfw8P2jzpkM/ToolKGMpwxI/AAAAAAAAAFk/xd9Y3TXyYz0/s1600/terralib_qgis.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="135" src="http://2.bp.blogspot.com/-tfw8P2jzpkM/ToolKGMpwxI/AAAAAAAAAFk/xd9Y3TXyYz0/s400/terralib_qgis.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-4748702489246284318?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/4748702489246284318/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/10/visualizar-camadas-do-postgis-do.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/4748702489246284318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/4748702489246284318'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/10/visualizar-camadas-do-postgis-do.html' title='Visualizar camadas do Postgis do TerraView em outros aplicativos'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-tfw8P2jzpkM/ToolKGMpwxI/AAAAAAAAAFk/xd9Y3TXyYz0/s72-c/terralib_qgis.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-8148476202715330541</id><published>2011-09-26T14:07:00.000-07:00</published><updated>2011-09-26T14:07:00.601-07:00</updated><title type='text'>C45IDL - classificador por árvores de decisão</title><content type='html'>Como trabalho da disciplina de Reconhecimento de Padrões e Aprendizado Computacional, implementei um classificador supervisionado que utiliza árvores de decisão binárias.&lt;br /&gt;&lt;br /&gt;Disponibilizei o código-fonte e os executáveis no site do projeto &lt;a href="http://code.google.com/p/c45idl/"&gt;C45IDL.&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;A linguagem escolhida foi IDL, que é uma linguagem proprietária. Todos os usuários do ENVI tem todos os requisitos para utilizar o programa. Para os usuários linux existe ainda a possibilidade de utilizá-lo com o GnuDataLanguage (implementação aberta do IDL).&lt;br /&gt;&lt;br /&gt;O objetivo do programa é encontrar as melhores decisões para separar as classes que foram apresentadas para ele através de dados de treinamento. No site do projeto tem uma descrição breve de &lt;a href="http://code.google.com/p/c45idl/wiki/Tips"&gt;como utilizar o ENVI para produzir o arquivo de ROI&lt;/a&gt; no formato que o aplicativo lê. Basicamente deve-se exportar as ROI para ASCII, guardando no arquivo apenas o identificador das amostras e o valor das bandas.&lt;br /&gt;&lt;br /&gt;A figura a seguir apresenta a interface do programa. Este algoritmo divide o conjunto de amostras em treinamento em validação. Portanto o "0.7" significa que 70% das amostras será utilizada como treinamento e 30% como validação.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ud8k4hzFSTY/ToDmXnQc_mI/AAAAAAAAAFU/58AB6xDDDmo/s1600/winUI.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="266" src="http://2.bp.blogspot.com/-ud8k4hzFSTY/ToDmXnQc_mI/AAAAAAAAAFU/58AB6xDDDmo/s320/winUI.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Os parâmetros "Minimum samples per node" e "Maximum percentual error in a node" são critérios para para decidir quando a árvore deve parar de crescer. O "mínimo de amostras por nó" significa que quando o programa chegar a 25 amostras ele não tentará mais diferenciar as classes de treinamento. É um parâmetro necessário mas pouco eficiente.&lt;br /&gt;&lt;br /&gt;Já a "proporção máxima de erro" pode ser utilizada para aceitar ruído nos dados de treinamento. Isso significa que ele considera o nó pronto quando chegar a menos de 1% de ruído. Em imagens menos ruidosas o usuário pode querer diminuir isso para 0% ou aumentar no caso de imagens mais ruidosas.&lt;br /&gt;&lt;br /&gt;A figura a seguir apresenta o resultado de uma árvore construída com uma imagem Landsat com os parâmetros inalterados.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-3drnlVbHE1k/ToDpCVpto5I/AAAAAAAAAFc/q5uZI6JaRb0/s1600/landsatTree.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-3drnlVbHE1k/ToDpCVpto5I/AAAAAAAAAFc/q5uZI6JaRb0/s320/landsatTree.png" width="181" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-U_kNmmJy4vM/ToDoXURJTHI/AAAAAAAAAFY/Sr5sercB-IM/s1600/envitree.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;Caso o usuário forneça os dados de treinamento mas não os de validação, o programa irá apenas tentar gerar a árvore de decisão no formato que o ENVI lê. Caso seja passada também uma imagem a classificar, ele irá gerar uma imagem classificada como saída.&lt;br /&gt;&lt;br /&gt;Como de costume, agradeço a todos que puderem testar e contribuir para o aperfeiçoamento do programa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-8148476202715330541?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/8148476202715330541/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/09/c45idl-classificador-por-arvores-de.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/8148476202715330541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/8148476202715330541'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/09/c45idl-classificador-por-arvores-de.html' title='C45IDL - classificador por árvores de decisão'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-ud8k4hzFSTY/ToDmXnQc_mI/AAAAAAAAAFU/58AB6xDDDmo/s72-c/winUI.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-3735698678477093019</id><published>2011-08-26T16:12:00.000-07:00</published><updated>2011-08-26T16:12:13.572-07:00</updated><title type='text'>Nova página do projeto QGIS WktRaster</title><content type='html'>O Quantum GIS agora tem um novo sistema de controle de defeitos nos plugins. Portanto, diversos plugins estão migrando para o novo site de forma a permitir aos usuários que reportem problemas e compartilhem experiência de uso.&lt;br /&gt;&lt;br /&gt;O projeto WktRaster Plugin for Quantum GIS já está hospedado no endereço:&lt;br /&gt;&lt;a href="http://hub.qgis.org/projects/wktraster"&gt;http://hub.qgis.org/projects/wktraster&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Agradeço a todos que possam relatar possíveis problemas com o plugin. Software Livre cresce exatamente por esse relacionamento agradável entre usuários e desenvolvedores.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-3735698678477093019?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/3735698678477093019/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/08/nova-pagina-do-projeto-qgis-wktraster.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/3735698678477093019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/3735698678477093019'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/08/nova-pagina-do-projeto-qgis-wktraster.html' title='Nova página do projeto QGIS WktRaster'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-3929934341787579643</id><published>2011-08-08T12:21:00.000-07:00</published><updated>2011-08-08T12:49:23.728-07:00</updated><title type='text'>Referências Bibliográficas perfeitas no OpenOffice e Word</title><content type='html'>Os usuários do Firefox podem contar com um grande auxílio na hora de buscar referências bibliográficas para suas pesquisas.&lt;br /&gt;&lt;br /&gt;O &lt;a href="http://www.zotero.org/"&gt;plugin Zotero do Firefox&lt;/a&gt; permite que o usuário crie uma conta para armazenar suas referências no servidor do Zotero. Isso significa que em qualquer máquina que tenha o plugin instalado você terá acesso à todas as suas pastas com referências bibliográficas organizadas e formatadas.&lt;br /&gt;&lt;br /&gt;Para a parte de pesquisa, o Zotero permite que durante a busca em sites como o Google Scholar sejam baixados os arquivos de referência no formato EndNote. Isso permite que durante a navegação o usuário armazene as referências diretamente dos sites de buscas. Além disso é mantigo o link para do artigo original, permitindo a sua leitura quando necessário.&lt;br /&gt;&lt;br /&gt;Para a formatação no texto, o Zotero tem plugins para Microsoft Word e para o OpenOffice Writer. Ambos funcionam com a definição de estilos, que estão disponibilizados no próprio site do Zotero. Ficamos gratos aos desenvolvedores do estilo ABNT para o Zotero por facilitar muito nossas vidas.&lt;br /&gt;&lt;br /&gt;Com isso o Zotero se mostra uma plataforma amigável para gestão de referências com software livre, tornando o OpenOffice um verdadeiro concorrente do Latex para produção científica.&lt;br /&gt;&lt;br /&gt;Deixo publicado aqui também um &lt;a href="https://docs.google.com/leaf?id=0B3179jWpaUHpYTk2YWVjMDgtNTQ5ZS00MTM2LTllZjAtNDM0MWI4YzY1NWUw&amp;amp;hl=en_US"&gt;modelo que deve atender aos padrões da Sociedade Brasileira de Computação&lt;/a&gt;. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-3929934341787579643?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/3929934341787579643/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/08/referencias-bibliograficas-perfeitas-no.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/3929934341787579643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/3929934341787579643'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/08/referencias-bibliograficas-perfeitas-no.html' title='Referências Bibliográficas perfeitas no OpenOffice e Word'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-7937845987471030523</id><published>2011-08-01T19:04:00.000-07:00</published><updated>2011-08-01T19:04:17.751-07:00</updated><title type='text'>wktraster plugin for Quantum GIS 0.5</title><content type='html'>Tenho o prazer de comunicar que estou lançando a versão 0.5 do &lt;a href="http://code.google.com/p/wktrasterplugin"&gt;plugin wktraster&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Nesta versão os principais avanços foram:&lt;br /&gt;- a possibilidade de carregar apenas uma linha da tabela (permitindo ler tabelas onde cada linha é uma imagem pertencente a um mosaico).&lt;br /&gt;- Listagem melhorada de tabelas raster, permitindo carregar tabelas oriundas de processamentos.&lt;br /&gt;- Carregamento de raster melhorado, permitindo cancelar durante o processo e mostrando as etapas da criação das overviews.&lt;br /&gt;- Possibilidade de carregar os retângulos envolventes que compõe as matrizes da tabela.&lt;br /&gt;&lt;br /&gt;Além disso a versão sofreu uma forte correção de bugs. Solicito a todos que encontrarem bugs que me enviem e-mail ou o reportem no &lt;a href="http://code.google.com/p/wktrasterplugin/issues/list"&gt;site do projeto&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Carregamento de uma imagem com opções de overviews:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-DxYuuQz0RjA/TjdavwXrYdI/AAAAAAAAADk/qSlM5tVq81I/s1600/rasterLoaderUI.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="390" src="http://4.bp.blogspot.com/-DxYuuQz0RjA/TjdavwXrYdI/AAAAAAAAADk/qSlM5tVq81I/s400/rasterLoaderUI.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Lendo apenas uma linha da tabela&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-hXVyYQAxkY0/TjdaB2QrcWI/AAAAAAAAADM/etj1w2fZ_jQ/s1600/loadLayerUI1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="366" src="http://4.bp.blogspot.com/-hXVyYQAxkY0/TjdaB2QrcWI/AAAAAAAAADM/etj1w2fZ_jQ/s400/loadLayerUI1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Lendo a representação vetorial da tabela&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jyd3UI40CWA/TjdaG0ofAZI/AAAAAAAAADU/9tjS_gVuJS4/s1600/loadLayerUI2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="342" src="http://4.bp.blogspot.com/-jyd3UI40CWA/TjdaG0ofAZI/AAAAAAAAADU/9tjS_gVuJS4/s400/loadLayerUI2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-iXNBNCWBF-0/TjdaSSOZcRI/AAAAAAAAADc/AIqPQ6H8BAU/s1600/loadLayerUI3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="210" src="http://4.bp.blogspot.com/-iXNBNCWBF-0/TjdaSSOZcRI/AAAAAAAAADc/AIqPQ6H8BAU/s400/loadLayerUI3.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-7937845987471030523?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/7937845987471030523/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/08/wktraster-plugin-for-quantum-gis-05.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/7937845987471030523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/7937845987471030523'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/08/wktraster-plugin-for-quantum-gis-05.html' title='wktraster plugin for Quantum GIS 0.5'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-DxYuuQz0RjA/TjdavwXrYdI/AAAAAAAAADk/qSlM5tVq81I/s72-c/rasterLoaderUI.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-4308663900779954816</id><published>2011-07-19T06:31:00.000-07:00</published><updated>2011-07-19T06:34:04.243-07:00</updated><title type='text'>OpenStreetMaps do Brasil</title><content type='html'>Com o passar do tempo o &lt;a href="http://wiki.openstreetmap.org"&gt;OpenStreetMaps&lt;/a&gt; está se tornando uma fonte de dados completa. Os grandes centros urbanos do país já possuem informação detalhada. Esta informação, disposta em um banco contínuo pode servir como camada de ruas de todo o país. &lt;br /&gt;&lt;br /&gt;Para quem não conhece, o &lt;a href="http://wiki.openstreetmap.org"&gt;OpenStreetMaps&lt;/a&gt; é uma base contribuída cuja precisão é compatível com GPS de navegação. Ou seja, os erros dentro da base devem estar entre 3 a 15 metros.&lt;br /&gt;&lt;br /&gt;&lt;div id="demoMap"&gt;&lt;/div&gt;&lt;script src="http://www.openlayers.org/api/OpenLayers.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;script&gt;    map = new OpenLayers.Map("demoMap");    map.addLayer(new OpenLayers.Layer.OSM());    map.zoomToMaxExtent();&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;Na wiki do OpenStreetMaps existem recomendações de &lt;a href="http://wiki.openstreetmap.org/wiki/Planet.osm"&gt;como obter o mundo inteiro no formato OSM&lt;/a&gt;. Tentando proceder desta forma&lt;br /&gt;existem dois problemas:&lt;br /&gt;1- É necessário converter para o seu banco de dados.&lt;br /&gt;2- É necessário recortar a região de interesse.&lt;br /&gt;&lt;br /&gt;Algumas iniciativas deixam este trabalho pronto. A cloudmade.com é uma destas que possui um recorte por países. Portanto é possível descarregar as &lt;a href="http://downloads.cloudmade.com/americas/south_america/brazil#downloads_breadcrumbs"&gt;informações do OpenStreetMaps, em Shapefile, de todo o Brasi&lt;/a&gt;l, por pouco mais de 100mb.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-4308663900779954816?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/4308663900779954816/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/07/openstreetmaps-do-brasil.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/4308663900779954816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/4308663900779954816'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/07/openstreetmaps-do-brasil.html' title='OpenStreetMaps do Brasil'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-3775147787251423956</id><published>2011-07-13T14:34:00.000-07:00</published><updated>2011-07-13T15:19:39.895-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='remote sensing'/><category scheme='http://www.blogger.com/atom/ns#' term='qgis'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Celulares Android aplicados ao Sensoriamento Remoto</title><content type='html'>Fiz uma apresentação para a turma do mestrado indicando as principais aplicações de um celular com Android para coleta de informações para sensoriamento remoto. &lt;br /&gt;&lt;br /&gt;Decidi disponibilizá-la: &lt;a href="https://docs.google.com/viewer?a=v&amp;pid=explorer&amp;chrome=true&amp;srcid=0B3179jWpaUHpOTM4ZDIwYmQtZTBlYS00ZDc0LWI4MDktMDg0ZDY2MTI5YTk1&amp;hl=en_US"&gt;Celulares Android aplicados ao Sensoriamento Remoto&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe src="https://docs.google.com/present/embed?id=dc5bf8gk_11c9rqq4hc" frameborder="0" width="410" height="342"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-3775147787251423956?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/3775147787251423956/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/07/celulares-android-aplicados-ao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/3775147787251423956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/3775147787251423956'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/07/celulares-android-aplicados-ao.html' title='Celulares Android aplicados ao Sensoriamento Remoto'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-6804701258407399372</id><published>2011-07-11T06:59:00.000-07:00</published><updated>2011-07-11T06:59:20.575-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='mingw'/><category scheme='http://www.blogger.com/atom/ns#' term='qt3'/><category scheme='http://www.blogger.com/atom/ns#' term='cross compile'/><title type='text'>Compilando para windows com mingw e Qt3 GPL</title><content type='html'>Um dos maiores desafios do programador que gosta de Linux é gerar produtos para os usuários windows. Como a Qt é uma biblioteca multi-plataforma, isso é possível.&lt;br /&gt;&lt;br /&gt;São necessários para esta tarefa os pacotes: mingw32, qt3-dev-tools, libqt3-mt-dev (em uma instalação Ubuntu 11.04).&lt;br /&gt;&lt;br /&gt;Primeiramente, a Qt3 pode ser obtida através do projeto &lt;a href="http://sourceforge.net/projects/qtwin/"&gt;qt-win&lt;/a&gt;. É recomendado que o desenvolvedor obtenha o instalador da biblioteca para windows e a instale usando Wine. Para poder utilizar o arquivo a seguir, instale no diretório: C:\qt-win-free-mingw-3.3.4 &lt;br /&gt;&lt;br /&gt;Em seguida, seguiremos as configurações do mkspecs, conforme a referência descreve. &lt;a href="https://sites.google.com/site/mauriciodev/qmake.conf"&gt;Este arquivo&lt;/a&gt; muda muito conforme onde você instalou a Qt e com as versões do compilador e da biblioteca Qt. Portanto, caso precise alterar, siga a &lt;a href="http://silmor.de/29"&gt;referência&lt;/a&gt;. Recomenda-se copiar a pasta /usr/share/qt3/mkspecs/win32-g++ para /usr/share/qt3/mkspecs/win32-mingw e colar o arquivo &lt;a href="https://sites.google.com/site/mauriciodev/qmake.conf"&gt;qmake.conf&lt;/a&gt; na pasta win32-mingw.&lt;br /&gt;&lt;br /&gt;Agora ao utilizar o qmake pode-se utilizar o parâmetro "-spec win32-mingw" para passar para o compilador que você deseja um arquivo executável em windows, ao invés de um executável em linux.&lt;br /&gt;&lt;br /&gt;Referências:&lt;br /&gt;&lt;a href="http://silmor.de/29"&gt;Cross compiling Qt/Win Apps on Linux&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-6804701258407399372?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/6804701258407399372/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/07/compilando-para-windows-com-mingw-e-qt3.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/6804701258407399372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/6804701258407399372'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/07/compilando-para-windows-com-mingw-e-qt3.html' title='Compilando para windows com mingw e Qt3 GPL'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-616728433234860221</id><published>2011-05-19T14:39:00.000-07:00</published><updated>2011-05-19T14:39:50.866-07:00</updated><title type='text'>WktRaster QGIS Plugin 0.4</title><content type='html'>Fico feliz em anunciar a nova versão do Plugin WKTRaster para Quantum GIS.&lt;br /&gt;Nesta versão o plugin passa a ser compatível com GDAL 1.8 e Postgis 2.0.&lt;br /&gt;Portanto todos os bugs que existiam de leitura e escrita com a GDAL 1.7 sumiram.&lt;br /&gt;&lt;br /&gt;Os primeiros testes são promissores e demonstram que o Quantum GIS já pode ser utilizado para trabalhar com imagens no banco PostgreSQL.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-r3Iur9g-D8U/TdWN-1agSvI/AAAAAAAAACw/hj-lBVnxEyw/s1600/wktraster0.4-1" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="236" width="400" src="http://3.bp.blogspot.com/-r3Iur9g-D8U/TdWN-1agSvI/AAAAAAAAACw/hj-lBVnxEyw/s400/wktraster0.4-1" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-C0IyRX4CQxs/TdWOHq5LAyI/AAAAAAAAAC4/SkLIJCsqNbo/s1600/wktraster0.4" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="210" width="400" src="http://1.bp.blogspot.com/-C0IyRX4CQxs/TdWOHq5LAyI/AAAAAAAAAC4/SkLIJCsqNbo/s400/wktraster0.4" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-616728433234860221?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/616728433234860221/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/05/wktraster-qgis-plugin-04.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/616728433234860221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/616728433234860221'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/05/wktraster-qgis-plugin-04.html' title='WktRaster QGIS Plugin 0.4'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-r3Iur9g-D8U/TdWN-1agSvI/AAAAAAAAACw/hj-lBVnxEyw/s72-c/wktraster0.4-1' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-5226142444582825992</id><published>2011-05-18T13:21:00.000-07:00</published><updated>2011-05-18T13:21:54.713-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qgis'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='azimutes'/><category scheme='http://www.blogger.com/atom/ns#' term='memoriais'/><category scheme='http://www.blogger.com/atom/ns#' term='distâncias'/><title type='text'>Azimutes e Distâncias</title><content type='html'>Alguns anos atrás um amigo precisou olhar um memorial descritivo antigo para entender o processo de subdivisão do loteamento que ocorreu com os anos. No memorial vinham apenas azimutes e distâncias a partir de uma coordenada conhecida.&lt;br /&gt;Como esse problema é algo frequente, escrevi o plugin Azimuth and Distance para o Quantum GIS. O objetivo do plugin é exatamente desenhar geometrias utilizando ângulos e distâncias.&lt;br /&gt;Posteriormente, foi levantado interesse de um programador americano, Fred Laplante em ajudar no plugin e, depois de diversas versões e correções, podemos dizer que consideramos o plugin satisfatório e prático.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-bm1qXMoSL90/TdQp-4gHy3I/AAAAAAAAACo/Ip1cH8oqh2Q/s1600/azimuth.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="339" width="400" src="http://1.bp.blogspot.com/-bm1qXMoSL90/TdQp-4gHy3I/AAAAAAAAACo/Ip1cH8oqh2Q/s400/azimuth.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Espero que seja útil!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-5226142444582825992?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/5226142444582825992/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/05/azimutes-e-distancias.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/5226142444582825992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/5226142444582825992'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/05/azimutes-e-distancias.html' title='Azimutes e Distâncias'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-bm1qXMoSL90/TdQp-4gHy3I/AAAAAAAAACo/Ip1cH8oqh2Q/s72-c/azimuth.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-3294212107550479040</id><published>2011-03-12T07:48:00.000-08:00</published><updated>2011-03-12T07:48:22.967-08:00</updated><title type='text'>Modelos digitais de elevações 3D</title><content type='html'>Durante alguns devaneios brincando com engines de jogos 3D e modelos de elevações percebi que é muito simples transformar dados geográficos raster (geotiff) em modelos x3d de terreno.&lt;br /&gt;&lt;br /&gt;Para isso escrevi o script: &lt;a href="http://mauriciodev.atspace.com/mycodes/gdal2x3d.py"&gt;gdal2x3d&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;O objetivo deste código é ler um modelo digital de elevações guardado em um tif, hgt, ou similares (lidos pela &lt;a href="http://www.gdal.org"&gt;GDAL&lt;/a&gt;) e armazenar a sequência em um ElevationGrid do arquivo x3d. &lt;br /&gt;Dessa forma o modelo gerado pode ser lido por programas de modelagem 3D como o &lt;a href="http://www.blender.org"&gt;Blender&lt;/a&gt; ou game engines como &lt;a href="http://www.crystalspace3d.org"&gt;crystal space&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Abraços a todos&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-3294212107550479040?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/3294212107550479040/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/03/modelos-digitais-de-elevacoes-3d.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/3294212107550479040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/3294212107550479040'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/03/modelos-digitais-de-elevacoes-3d.html' title='Modelos digitais de elevações 3D'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-5991238672348806459</id><published>2011-01-22T17:17:00.000-08:00</published><updated>2011-02-11T06:47:36.940-08:00</updated><title type='text'>Instalando wktraster no ubuntu</title><content type='html'>Primeiramente, descarregue o postgis 1.5.2 (versão atual do ubuntu maverick) e o wktraster do site do &lt;a href="http://www.postgis.org/download/"&gt;postgis&lt;/a&gt;.&lt;br /&gt;Para compilar tudo corretamente são necessárias:&lt;br /&gt;libxml2-dev&lt;br /&gt;postgresql-server-dev-8.4&lt;br /&gt;&lt;br /&gt;Descompactando a pasta do postgis-1.5.2 executaremos:&lt;br /&gt;&lt;br /&gt;&lt;pre class='brush: bash;'&gt;./configure&lt;br /&gt;make&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Agora descompactaremos a pasta do wktraster. Nesse passo precisamos dizer para o wktraster onde está aquela pasta que compilamos o postgis. &lt;br /&gt;&lt;br /&gt;&lt;pre class='brush: bash;'&gt;./configure --with-postgis-sources=/home/mauriciodev/Downloads/carto/postgis-1.5.2&lt;br /&gt;make&lt;br /&gt;sudo make install &lt;/pre&gt;&lt;br /&gt;O wktraster já está pronto. Agora falta carregar no banco.&lt;br /&gt;&lt;br /&gt;&lt;pre name='code' class='brush: js;'&gt;su postgres&lt;br /&gt;createdb wktraster&lt;br /&gt;createlang plpgsql wktraster&lt;br /&gt;psql -d wktraster2 -f /usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql&lt;br /&gt;psql -d wktraster2 -f /usr/share/postgresql/8.4/contrib/postgis-1.5/spatial_ref_sys.sql&lt;br /&gt;psql -d wktraster -f /usr/share/postgresql/8.4/contrib/rtpostgis.sql&lt;br /&gt;&lt;/pre&gt;Pronto. Agora podemos carregar dados com o plugin do Quantum GIS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-5991238672348806459?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/5991238672348806459/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/01/instalando-wktraster-no-ubuntu.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/5991238672348806459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/5991238672348806459'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/01/instalando-wktraster-no-ubuntu.html' title='Instalando wktraster no ubuntu'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-5179201093288398459</id><published>2011-01-22T16:26:00.000-08:00</published><updated>2011-01-22T16:26:15.519-08:00</updated><title type='text'>Eclipse e Qt</title><content type='html'>Lembrando que minha IDE preferida é o Eclipse por sua versatilidade, comecei a procurar como fazer integração do Eclipse com a Qt. Essa ferramenta ajuda muito a desenvolver plugins em C++ para o QGIS.&lt;br /&gt;&lt;br /&gt;O Eclipse tem uma extensão de integração com a Qt (&lt;a href="http://qt.nokia.com/developer/eclipse-integration/"&gt;Qt Eclipse Integration&lt;/a&gt;). Este software permite gerenciar o arquivo do qmake dentro do Eclipse.&lt;br /&gt;&lt;br /&gt;Para instalar basta mesclar a pasta do &lt;a href="http://qt.nokia.com/developer/eclipse-integration/"&gt;Qt Eclipse Integration&lt;/a&gt; com a do Eclipse. O software já estará funcionando assim que o Eclipse for reiniciado. Recomenda-se executar o comando "eclipse -clean" para limpar o cache de extensões do Eclipse.&lt;br /&gt;&lt;br /&gt;Podemos então criar um projeto indo em "File-&amp;gt;New-&amp;gt; Qt Gui project". Esse projeto já é configurado com QMake. Ou seja, o arquivo .pro está lá pronto para ser alterado.&lt;br /&gt;&lt;br /&gt;No caso do QGIS foram necessárias algumas alterações no arquivo ".pro".&lt;br /&gt;&lt;br /&gt;&lt;pre name="code"&gt;TEMPLATE = lib&lt;br /&gt;TARGET = QgsImageProcessing&lt;br /&gt;QT += core \&lt;br /&gt;    xml&lt;br /&gt;HEADERS += qgsconvolutionui.h \&lt;br /&gt;    qgsimageprocessingplugin.h&lt;br /&gt;SOURCES += qgsconvolutionui.cpp \&lt;br /&gt;    qgsimageprocessingplugin.cpp&lt;br /&gt;FORMS += qgsconvolutionui.ui&lt;br /&gt;RESOURCES += &lt;br /&gt;INCLUDEPATH += /usr/include/qgis&lt;br /&gt;DEFINES += GUI_EXPORT= \&lt;br /&gt;    CORE_EXPORT=&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Na imagem a seguir fica clara a integração do Eclipse ao editar um arquivo ".ui" (muito parecido com o QtDesigner).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_E7QiGrKoeS0/TTt1ZIYAtZI/AAAAAAAAACc/39CVtzr6LbU/s1600/eclipse_qt.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="270" src="http://2.bp.blogspot.com/_E7QiGrKoeS0/TTt1ZIYAtZI/AAAAAAAAACc/39CVtzr6LbU/s400/eclipse_qt.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-5179201093288398459?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/5179201093288398459/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/01/eclipse-e-qt.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/5179201093288398459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/5179201093288398459'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/01/eclipse-e-qt.html' title='Eclipse e Qt'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_E7QiGrKoeS0/TTt1ZIYAtZI/AAAAAAAAACc/39CVtzr6LbU/s72-c/eclipse_qt.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-3659288315373134861</id><published>2011-01-17T12:03:00.000-08:00</published><updated>2011-01-17T12:06:17.331-08:00</updated><title type='text'>Viajando pelo Brasil com QGIS</title><content type='html'>Seu Software de SIG preferido agora também te ajuda nas viagens! Neste post mostro como traçar uma rota das rodovias brasileiras no QGIS e navegar utilizando imagens de satélite do GoogleMaps.&lt;br /&gt;Primeiramente, vamos aos requisitos:&lt;br /&gt;Dados: &lt;b&gt;Banco Contínuo de 1:1.000.000 &lt;/b&gt;(&lt;a href="ftp://geoftp.ibge.gov.br/mapas/base_continua_ao_milionesimo/2-BCIM_v3.04_dados/Shapefile/"&gt;disponivel no IBGE&lt;/a&gt;)&lt;br /&gt;Softwares: &lt;b&gt;Quantum GIS 1.6&lt;/b&gt;+&lt;b&gt; RoadGraph&lt;/b&gt; Plugin (disponivel em &lt;a href="http://svn.gis-lab.info/road-graph/binary/roadgraphplugin.dll"&gt;win32&lt;/a&gt; e &lt;a href="http://svn.gis-lab.info/road-graph/binary/libroadgraphplugin.so"&gt;linux&lt;/a&gt;) + &lt;b&gt;OpenLayers&lt;/b&gt; Plugin (disponivel através do repositório de plugins python)&lt;br /&gt;&lt;br /&gt;Obs.: Vale lembrar que o RoadGraph Plugin será incluído no QGIS oficial na versão 1.7&lt;br /&gt;&lt;br /&gt;Primeiramente, carregamos nossos dados. A camada de rodovias é chamada ST_Rodovias*. Quando o plugin está instalado (copiando-o para a pasta c:\osgeo4w\apps\qgis\plugins\ no caso do OSGeo4W), já aparece a caixinha de traçado de rotas no canto inferior esquerdo. Clicamos na origem e no destino e o plugin traçará nossa rota conforme a figura.&lt;br /&gt;&lt;br /&gt;* Na escala 1.100.000 quase todas as pontes são pontos. Caso quiséssemos contar as pontes também, deveríamos editar a camda ST_Rodovias e incluir os objetos da camada ST_Ponte_Tunel.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_E7QiGrKoeS0/TTSe2pQb2PI/AAAAAAAAACM/lbaEQoIa6nE/s1600/roadgraph01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="386" src="http://2.bp.blogspot.com/_E7QiGrKoeS0/TTSe2pQb2PI/AAAAAAAAACM/lbaEQoIa6nE/s640/roadgraph01.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Usando o botão direito do mouse sobre a camada "shortest path" podemos exportar para ShapeFile nossa rota. Faremos isso para poder reprojetá-la corretamente.&lt;br /&gt;&lt;br /&gt;Agora, podemos carregar o plugin OpenLayers do QGIS.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_E7QiGrKoeS0/TTSfSoAdNvI/AAAAAAAAACQ/2y9qpk6fBZ4/s1600/roadgraph02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="386" src="http://3.bp.blogspot.com/_E7QiGrKoeS0/TTSfSoAdNvI/AAAAAAAAACQ/2y9qpk6fBZ4/s640/roadgraph02.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;E o resultado, conforme esperávamos, é uma visualização da rota traçada sobre imagens do Google Maps.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_E7QiGrKoeS0/TTSgjaPB3NI/AAAAAAAAACU/o8QK8MTggxk/s1600/roadgraph03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="386" src="http://4.bp.blogspot.com/_E7QiGrKoeS0/TTSgjaPB3NI/AAAAAAAAACU/o8QK8MTggxk/s640/roadgraph03.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;O grande poder desta solução é, por exemplo, descobrir quantos munícipios serão atravessados por estar rotas. Ou quantas cidades passarão a até 100km do percurso. Ou, conforme alguns amigos meus sempre sonharam: Qual é o comprimento total do trecho X ao trecho Y que eles possuem na base deles.&lt;br /&gt;São análises possíveis por estarmos dentro de um software de sig com uma base de dados completa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-3659288315373134861?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/3659288315373134861/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/01/viajando-pelo-brasil-com-qgis.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/3659288315373134861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/3659288315373134861'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/01/viajando-pelo-brasil-com-qgis.html' title='Viajando pelo Brasil com QGIS'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_E7QiGrKoeS0/TTSe2pQb2PI/AAAAAAAAACM/lbaEQoIa6nE/s72-c/roadgraph01.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-1454327713140834845</id><published>2011-01-05T05:34:00.000-08:00</published><updated>2011-01-05T05:34:01.933-08:00</updated><title type='text'>Postgis Raster Loader no QGIS</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;Esta semana foi lançada a versão 0.3 do plugin WktRaster para o Quantum GIS. A grande melhoria desta versão é o Loader. É uma interface simples para carregar as imagens no banco baseada no código escrito pelo pessoal do Postgis Raster. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_E7QiGrKoeS0/TSRskYDu7wI/AAAAAAAAACE/S8ckGEd8Eck/s1600/loader1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="103" src="http://4.bp.blogspot.com/_E7QiGrKoeS0/TSRskYDu7wI/AAAAAAAAACE/S8ckGEd8Eck/s400/loader1.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_E7QiGrKoeS0/TSRyZwPyewI/AAAAAAAAACI/-C7uHZ5JQN4/s1600/loader2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="252" src="http://2.bp.blogspot.com/_E7QiGrKoeS0/TSRyZwPyewI/AAAAAAAAACI/-C7uHZ5JQN4/s400/loader2.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;No futuro, com as novas versões da GDAL este loader será incrementado com diversas funcionalidades permitidas pelo Postgis Raster. Por hora o único objetivo é colocar o dado no banco de uma maneira eficiente e simples.&lt;br /&gt;O Paolo Cavalini está ajudando bastante nos testes com as versões recentes da GDAL e estamos observando que o Jorge Arevalo está preparando uma versão muito melhorada a ser publicada na GDAL 1.8.&lt;br /&gt;Estaremos aguardando!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-1454327713140834845?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/1454327713140834845/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/01/postgis-raster-loader-no-qgis.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/1454327713140834845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/1454327713140834845'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/01/postgis-raster-loader-no-qgis.html' title='Postgis Raster Loader no QGIS'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_E7QiGrKoeS0/TSRskYDu7wI/AAAAAAAAACE/S8ckGEd8Eck/s72-c/loader1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-5669478913480397312</id><published>2011-01-05T04:04:00.000-08:00</published><updated>2011-01-05T04:04:57.435-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sistemas de Coordenadas'/><category scheme='http://www.blogger.com/atom/ns#' term='qgis'/><category scheme='http://www.blogger.com/atom/ns#' term='raster'/><title type='text'>QGIS, Raster e Reprojeção</title><content type='html'>&lt;div style="text-align: justify;"&gt;Reprojetar arquivos matriciais (raster) em tempo de execução (on-the-fly) sempre foi uma tarefa complicada para os desenvolvedores de softwares de SIG. O QuantumGIS, porém, teve uma abordagem diferente. Quando se trata de reprojetar um arquivo matricial ele simplesmente não faz. Isso porque até agora ninguém apontou uma técnica realmente vantajosa de reprojetar raster de maneira eficiente. Então... Como trabalhar?&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Entre alguns companheiros temos a seguinte linha: "Nunca se reprojeta o raster on-the-fly". Quem tem muita informação sabe que processar a todo momento alguns gigabytes de memória é perda de tempo. Por isso sempre deixamos os arquivos matriciais já reprojetados para o sistema de referência que será trabalhado.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Se o usuário configurar o Quantum GIS para trabalhar no mesmo sistema de coordenadas que o raster, todos os vetores são reprojetados para este sistema, possibilitando trabalhar com vetores em outros sistemas de coordenadas.Na figura a seguir vemos a transformação "on the fly" habilitada e o projeto (Configurações -&amp;gt; Propriedades do Projeto) configurado para exibir informações em WGS 84 Latitude e Longitude. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_E7QiGrKoeS0/TSRdGtKkIbI/AAAAAAAAACA/dYhZK_ecrUU/s1600/reprojection1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="396" src="http://1.bp.blogspot.com/_E7QiGrKoeS0/TSRdGtKkIbI/AAAAAAAAACA/dYhZK_ecrUU/s400/reprojection1.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&amp;nbsp;Como este é o mesmo sistema de coordenadas utilizado pelo arquivo raster do SRTM utilizado como exemplo, o software reprojetou os vetores (que estavam em EPSG: 900913 Google Mercator) para o sistema do projeto. Sendo este sistema o mesmo que o do raster, o raster é visualizado. Caso não seja o arquivo simplesmente não será exibido.&lt;br /&gt;Na figura abaixo vemos o resultado da sobreposição quando o arquivo raster e o projeto estão no mesmo sistema de coordenadas mas os vetores não.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_E7QiGrKoeS0/TSRcTsA-fwI/AAAAAAAAAB8/Qus91yoHUMw/s1600/reprojection.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="427" src="http://4.bp.blogspot.com/_E7QiGrKoeS0/TSRcTsA-fwI/AAAAAAAAAB8/Qus91yoHUMw/s640/reprojection.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-5669478913480397312?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/5669478913480397312/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/01/qgis-raster-e-reprojecao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/5669478913480397312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/5669478913480397312'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2011/01/qgis-raster-e-reprojecao.html' title='QGIS, Raster e Reprojeção'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_E7QiGrKoeS0/TSRdGtKkIbI/AAAAAAAAACA/dYhZK_ecrUU/s72-c/reprojection1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-1942312883857613866</id><published>2010-12-09T07:44:00.000-08:00</published><updated>2010-12-09T07:44:55.332-08:00</updated><title type='text'>GML e os softwares</title><content type='html'>O &lt;a href="http://www.opengeospatial.org/"&gt;GML &lt;/a&gt;é o padrão definido pela &lt;a href="http://www.opengeospatial.org/"&gt;OGC &lt;/a&gt;para dados geográficos vetoriais. É extremamente flexível, o que dificulta um pouco a leitura e escrita neste formato. Isso significa que um determinado usuário pode definir uma estrutura de dados geográficos extremamente complexa e o software terá que entender essa estrutura para ler. Por isso alguns softwares do mercado estão se saindo melhores do que outros.&lt;br /&gt;Um GML costuma ser acompanhado de um arquivo XSD que deve ficar disponibilizado em endereços definidos dentro do arquivo. Esse arquivo pode ser entendido como o arquivo de estrutura do GML, chamado de Schema. É nele que ficam previstas quais classes serão representadas e quais atributos cada classe tem. Portanto, para ler um GML muitos softwares solicitam o arquivo XSD. Dessa forma o software pode ler a estrutura para então saber como funciona aquele arquivo que você está pedindo para abrir. Alguns softwares preferem não ler o XSD e tentar reconhecer padrões no arquivo.&lt;br /&gt;Dessa forma eis o resumo do que alguns softwares conseguem fazer:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;ArcGIS&lt;/b&gt;: Implementa o Data Interoperability Connection, que é um módulo do FME que consegue ler o GML mas exige que se tenha o XSD.&lt;/li&gt;&lt;li&gt;&lt;b&gt;MapServer, QGIS (Aplicativos GDAL/OGR)&lt;/b&gt;: Implementam leitores que reconhecem os padrões. A partir da versão 1.8 da GDAL estes softwares receberam uma implementação muito mais detalhada de leitura e escrita, permitindo ler quase todas as complexidades que o padrão pode utilizar.&lt;/li&gt;&lt;li&gt;&lt;b&gt;FME&lt;/b&gt;: Existem três opções de escrita no FME. 1. Utilizar o Schema do FME 2. Utilizar o Schema do ArcGIS 3. Utilizar um Schema externo. Ao utilizar um Schema (XSD) externo o usuário corre o risco de encontrar diversas dificuldades. Nos forums do FME eles recomendam que a saída do processamento seja corrigida à posteriori utilizando &lt;a href="http://pt.wikipedia.org/wiki/XSLT"&gt;XSLT&lt;/a&gt;, &lt;a href="http://www.w3.org/TR/xquery"&gt;XQuery&lt;/a&gt; ou &lt;a href="http://www.fmepedia.com/index.php/Xfmap"&gt;XFMap.&lt;/a&gt;Basicamente significa pegar todos os erros que o FME cometeu e consertar através de regras definidas nos padrões citados. Na leitura o FME é bastante flexível (como sempre), reconhecendo o Schema gravado dentro do GML e procurando-o na internet.&lt;/li&gt;&lt;li&gt;&lt;b&gt;OpenJump&lt;/b&gt;: Implementa a leitura através do Schema. Também possui um Schema próprio, chamado Jump GML.&lt;/li&gt;&lt;li&gt;gvSIG: Ainda a testar&lt;/li&gt;&lt;li&gt;GeoServer: Ainda a testar&lt;/li&gt;&lt;/ol&gt;Ainda existem diversos softwares que conseguem compreender GML, mas estes eu considerei os principais. Agradeço qualquer contribuição.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-1942312883857613866?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/1942312883857613866/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2010/12/gml-e-os-softwares.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/1942312883857613866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/1942312883857613866'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2010/12/gml-e-os-softwares.html' title='GML e os softwares'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-4885657621688390575</id><published>2010-12-02T15:20:00.000-08:00</published><updated>2010-12-02T18:05:13.769-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgis'/><category scheme='http://www.blogger.com/atom/ns#' term='qgis'/><category scheme='http://www.blogger.com/atom/ns#' term='raster'/><category scheme='http://www.blogger.com/atom/ns#' term='wktraster'/><title type='text'>Postgis Raster Plugin para QGIS</title><content type='html'>Iniciando a série de matérias sobre o Postgis Raster (anteriormente chamado wktRaster), primeiramente, descreverei o plugin chamado wktRaster.&lt;br /&gt;Este plugin está disponível no repositório de contribuições do Quantum GIS. O objetivo dele é carregar uma camada PostgisRaster. Foi escrito em uma parceria por mim e pelo César (também aqui do blog) durante um artigo que o César estava escrevendo. A interface do plugin é simples e prática, conforme pode ser visto abaixo.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_E7QiGrKoeS0/TPhQPSE1CiI/AAAAAAAAAB0/EcueWViKL5w/s1600/wktrasterPlugin.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://1.bp.blogspot.com/_E7QiGrKoeS0/TPhQPSE1CiI/AAAAAAAAAB0/EcueWViKL5w/s320/wktrasterPlugin.jpg" width="320" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;O usuário deve atentar à caixa "Reading mode". Ao carregar um arquivo no Postgis ele pode ficar de duas formas:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Inteiro em uma linha&lt;/li&gt;&lt;li&gt;Dividido em recortes menores&lt;/li&gt;&lt;/ul&gt;A opção padrão é ler um arquivo inteiro em uma linha. A segunda opção lê o arquivo por pedaços. A terceira opção ignora completamente o nome da tabela e lê o banco de dados completamente.&lt;br /&gt;&lt;br /&gt;Em breve, terminarei de escrever a matéria sobre como instalar o Postgis Raster no Ubuntu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-4885657621688390575?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/4885657621688390575/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2010/12/postgis-raster-plugin-para-qgis.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/4885657621688390575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/4885657621688390575'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2010/12/postgis-raster-plugin-para-qgis.html' title='Postgis Raster Plugin para QGIS'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_E7QiGrKoeS0/TPhQPSE1CiI/AAAAAAAAAB0/EcueWViKL5w/s72-c/wktrasterPlugin.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-2648622672641491811</id><published>2010-10-22T06:50:00.001-07:00</published><updated>2010-10-22T06:50:29.418-07:00</updated><title type='text'>Novos Contribuidores</title><content type='html'>Fico feliz em dizer que temos 3 contribuidores voluntários que publicarão informações aqui no blog.&lt;br /&gt;Para deixar algo menos pessoal, trocamos de nome.&lt;br /&gt;O blog agora encontra-se em &lt;a href="http://mapeandoobrasil.blogspot.com/"&gt;http://mapeandoobrasil.blogspot.com&lt;/a&gt;&lt;br /&gt;Espero que continuem acompanhando.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-2648622672641491811?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/2648622672641491811/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2010/10/novos-contribuidores.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/2648622672641491811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/2648622672641491811'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2010/10/novos-contribuidores.html' title='Novos Contribuidores'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-2023520007023665211</id><published>2010-08-12T07:12:00.000-07:00</published><updated>2010-12-02T15:30:52.676-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fme'/><category scheme='http://www.blogger.com/atom/ns#' term='transformação de coordenadas'/><category scheme='http://www.blogger.com/atom/ns#' term='gdal'/><title type='text'>GDAL 1.6, FME e os datums brasileiros</title><content type='html'>Retornando ao problema de configuração de datums brasileiros, estou postando os dois arquivos que considero fundamentais: o de configurar a gdal e o de configurar o fme.&lt;br /&gt;Espero que seja útil.&lt;br /&gt;&lt;a href="http://mauricio.dev.googlepages.com/MyCoordSysDefs.fme%20"&gt;Arquivo do FME&lt;/a&gt; , &lt;a href="http://mauricio.dev.googlepages.com/gcs.csv"&gt;Arquivo da GDAL&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-2023520007023665211?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/2023520007023665211/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2010/08/gdal-16-fme-e-os-datums-brasileiros.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/2023520007023665211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/2023520007023665211'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2010/08/gdal-16-fme-e-os-datums-brasileiros.html' title='GDAL 1.6, FME e os datums brasileiros'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-1385130416197553227</id><published>2009-12-30T06:12:00.000-08:00</published><updated>2011-08-01T10:38:11.053-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='qgis'/><category scheme='http://www.blogger.com/atom/ns#' term='pydev'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>PyDev e QGIS</title><content type='html'>Bom, continuando os estudos com o PyDev, recentemente descobri como fazer para o PyDev debugar plugins do QGIS.&lt;br /&gt;A teoria que viabiliza isso é o &lt;a href="http://pydev.org/manual_adv_remote_debugger.html"&gt;Remote Debugger&lt;/a&gt;. O PyDev inicia um servidor de debug. O seu plugin deve então se conectar ao servidor de debug e avisá-lo que está pronto para ser debugado. O resto é com o PyDev.&lt;br /&gt;&lt;br /&gt;Vamos ao passo-a-passo. Primeiramente, vamos fazer o nosso código passar a avisar o servidor de debug do eclipse. Na linha 3 inserimos o plugin do pydev (onde está o arquivo "pydevd.py" no pythonpath para poder ser importado pelo script. Caso sua instalação não esteja no mesmo lugar, deve-se alterar essa linha.&lt;br /&gt;No restante do código chamamos o servidor de debug e dizemos para ele ficar observando este código.&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1118602.js?file=eclipseRemoteDebugger.py"&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;Agora toda vez que executarmos nosso script python o próprio script irá procurar o servidor de debug do eclipse e avisar que ele está sendo executado e que deseja ser debugado.Note que se o servidor não estiver ligado seu programa não funcionará.&lt;br /&gt;Para podermos acompanhar do eclipse o nosso script, abrimos o Eclipse, vamos a perspectiva de DEBUG,e apertar o botão de iniciar o Debug Server.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_E7QiGrKoeS0/SztfR3NuOhI/AAAAAAAAABY/G3D6QbqE3x0/s1600-h/Screenshot-Debug+-+-home-vatto-.qgis-python-plugins-qgsAzimuth-qgsAzimuth.py+-+Eclipse+SDK+-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_E7QiGrKoeS0/SztfR3NuOhI/AAAAAAAAABY/G3D6QbqE3x0/s320/Screenshot-Debug+-+-home-vatto-.qgis-python-plugins-qgsAzimuth-qgsAzimuth.py+-+Eclipse+SDK+-1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A partir deste instante, quando o nosso script tentar achar o debug server, ele vai reconhecer aqui tudo que está acontecendo. Pode-se então definir breakpoints e testar passo a passo, observando o comportamento de cada variável.&lt;br /&gt;&lt;br /&gt;Espero que seja útil.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-1385130416197553227?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/1385130416197553227/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/12/pydev-e-qgis.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/1385130416197553227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/1385130416197553227'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/12/pydev-e-qgis.html' title='PyDev e QGIS'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_E7QiGrKoeS0/SztfR3NuOhI/AAAAAAAAABY/G3D6QbqE3x0/s72-c/Screenshot-Debug+-+-home-vatto-.qgis-python-plugins-qgsAzimuth-qgsAzimuth.py+-+Eclipse+SDK+-1.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-5436280671682164156</id><published>2009-12-26T20:33:00.000-08:00</published><updated>2010-12-02T15:33:59.925-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='pydev'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>E viva o PyDev</title><content type='html'>Continuando o assunto do último post, reporto minhas recentes experiências com o &lt;a href="http://pydev.sourceforge.net/"&gt;Eclipse PyDev&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ressaltei que a flexibilidade de interpretadores do PyDev era uma característica muito forte. Ele independe completamente de instalação do Python, portanto você pode escolher qual vai usar em cada projeto. Isso se faz particularmente útil com instalações do &lt;a href="http://trac.osgeo.org/osgeo4w/"&gt;Osgeo4W&lt;/a&gt;.&lt;br /&gt;Este instalador se encarrega de facilitar a instalação de grande parte dos softwares livres para geociências. Com ele é fácil manter seu Quantum GIS e GRASS atualizados. Uma grande dificuldade, porém, é controlar a diferença entre o Python que vem com o Osgeo4W e os outros Pythons que instalamos. O ideal, na maioria dos casos, é utilizar o Python do Osgeo4W.&lt;br /&gt;&lt;br /&gt;Bom, para o usuário final, basta criar um arquivo ".bat" que chame as variáveis de ambiente do Osgeo4W. O script "C:\OSGeo4W\bin\o4w_env.bat" já faz isso. Portanto, para o usuário final basta que o desenvolvedor crie um segundo arquivo bat que chama esse arquivo e depois chama o seu próprio script. Solução simples.&lt;br /&gt;&lt;br /&gt;Porém, para utilizar um debugger é preciso explicitar para ele exatamente a mesma coisa que o o4w_env.bat explicita para o interpretador. As duas imagens abaixo exibem como fazer isso no menu Window-&amp;gt; Preferences do Eclipse PyDev. Basicamente definimos um novo interpretador chamado "osgeo" que é o executável "C:\OSGeo4W\bin\python.exe". Depois explicamos os paths nativos (lib), importados (sip) e do qgis para o interpretador "osgeo". Esses arquivos em questão são os ".py" e ".pyd" de cada biblioteca.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_E7QiGrKoeS0/SzblkU7POkI/AAAAAAAAABI/w_ni4Cx7Xgw/s1600-h/pydev_osgeo1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5419771613842192962" src="http://1.bp.blogspot.com/_E7QiGrKoeS0/SzblkU7POkI/AAAAAAAAABI/w_ni4Cx7Xgw/s400/pydev_osgeo1.jpg" style="cursor: pointer; display: block; height: 248px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;Por fim dizemos ao interpretador onde encontrar os arquivos ".dll" que essas bibliotecas acessam. Essa informação vai na variável de ambiente "PATH".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_E7QiGrKoeS0/SzbltNLFHxI/AAAAAAAAABQ/o-BkEE27-bw/s1600-h/pydev_osgeo2.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5419771766379978514" src="http://2.bp.blogspot.com/_E7QiGrKoeS0/SzbltNLFHxI/AAAAAAAAABQ/o-BkEE27-bw/s400/pydev_osgeo2.jpg" style="cursor: pointer; display: block; height: 248px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;Assim nosso eclipse se encarregará de definir o PATH onde os ".dll" se encontram e incluir no PythonPath nossos ".py" e ".pyd" toda vez que o debugger rodar. Agora podemos debugar inclusive plugins de qgis utilizando PyDev.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-5436280671682164156?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/5436280671682164156/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/12/e-viva-o-pydev.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/5436280671682164156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/5436280671682164156'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/12/e-viva-o-pydev.html' title='E viva o PyDev'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_E7QiGrKoeS0/SzblkU7POkI/AAAAAAAAABI/w_ni4Cx7Xgw/s72-c/pydev_osgeo1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-1336083136674353683</id><published>2009-11-29T12:12:00.001-08:00</published><updated>2010-12-02T15:34:14.998-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='pydev'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Eclipse PyDev</title><content type='html'>Sempre recomendei o ERIC Python IDE para todos que estão iniciando em python.&lt;br /&gt;Recentemente testei o Eclipse PyDev. Ele tem tudo que o ERIC tem e mais algumas coisinhas.&lt;br /&gt;Exemplos:&lt;br /&gt;-A completação de código do eclipse constrói a API sem você obrigatoriamente mandar.&lt;br /&gt;-O eclipse reconhece todos interpretadores que você colocar disponíveis e define módulos disponíveis para cada um. Ou seja, você pode ter tantas versões do python na mesma máquina quanto queira.&lt;br /&gt;&lt;br /&gt;Ainda tem o básico, que todas IDE tem: cores no código, interpretador, debugger, etc.&lt;br /&gt;Ainda testei pouco, mas promete muito. Recomendo a todos pelo menos uma boa olhada.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-1336083136674353683?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/1336083136674353683/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/11/eclipse-pydev.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/1336083136674353683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/1336083136674353683'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/11/eclipse-pydev.html' title='Eclipse PyDev'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-1932479195712936388</id><published>2009-11-29T08:29:00.001-08:00</published><updated>2010-12-02T15:31:37.379-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='terralib'/><title type='text'>Terralib, windows e MS Visual C++ Express  2008</title><content type='html'>&lt;a href="http://www.terralib.org/"&gt;Terralib &lt;/a&gt;é uma biblioteca geográfica nacional. Isso por si só já é motivo para interesse de toda a comunidade de desenvolvedores. Adicione o fato de ser mantida pelo INPE, estar em constante desenvolvimento e possuir uma excelente quantidade de algoritmos implementados dentro dela. A pergunta obvia é: Como faço para fazer isso funcionar?&lt;br /&gt;&lt;br /&gt;Neste sentido, encontrei um problema quando me pediram para compilar um código escrito utilizando-a na plataforma windows 32bits. Os tutoriais do site do projeto são superficiais e não explicam exatamente como fazer para incluir as dependências. Para piorar tudo, só explica com visual studio 2003. Então aqui vai o tema do post: Compilar programas que usam a terralib com o &lt;a href="http://www.microsoft.com/Express/VC/"&gt;Microsoft Visual C++ Express 2008 (MSVC 2008, que é grátis!)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Primeiro passo: &lt;a href="http://www.terralib.org/php/dow.php?body=Dow"&gt;Descarregue a terralib&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Segundo passo: &lt;a href="http://www.microsoft.com/Express/VC/"&gt;Descarregue o MSVC 2008.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bom, agora começaremos a parte complicada.&lt;br /&gt;O processo vai seguir as seguintes etapas:&lt;br /&gt;1- Compilar a terralib importando os arquivos de projeto que vem com ela;&lt;br /&gt;2- Criar um novo projeto para o programa que quero compilar;&lt;br /&gt;3- Configurar esse novo projeto para achar a compilação da terralib; (arquivos .h e .lib)&lt;br /&gt;4- Compilar o projeto.&lt;br /&gt;5- Copiar as DLLs para fazerem o projeto rodar.&lt;br /&gt;Mãos a obra.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1- Compilar a terralib importando os arquivos de projeto que vem com ela;&lt;/span&gt;&lt;br /&gt;Chamaremos durante o artigo a pasta de instalação de C:\TERRALIBDIR.&lt;br /&gt;Instale o MSVC 2008.&lt;br /&gt;Pegue o arquivo zipado da terralib e extraia-o em C:\TERRALIBDIR.&lt;br /&gt;&lt;br /&gt;Procure (utilizando o "Encontrar" do Windows) arquivos com a extensão ".vcproj"&lt;br /&gt;Ele deve listar os seguintes arquivos:&lt;br /&gt;shapelib.vcproj&lt;br /&gt;libjpeg.vcproj&lt;br /&gt;tiff.vcproj&lt;br /&gt;libspl.vcproj&lt;br /&gt;terralibpdi.vcproj&lt;br /&gt;terralibdtm.vcproj&lt;br /&gt;terralib.vcproj&lt;br /&gt;&lt;br /&gt;qwt.vcproj é um arquivo que depende da biblioteca QT que serve para gráficos e plotagens. Eu não consegui compilar essa parte da lib pois não compilei a QT. Uma sugestão é utilizar o &lt;a href="http://qt.nokia.com/downloads/sdk-windows-cpp"&gt;QT SDK&lt;/a&gt; que instala tudo. Não fiz esses testes.&lt;br /&gt;&lt;br /&gt;Abra os arquivos na ordem que estão escritos com o MSVC 2008. Ele irá pedir para importar o arquivo. Claro, pois os desenvolvedores do terralib só prepararam eles com Visual Studio 2003.&lt;br /&gt;No menu Build-&amp;gt; Build Solution. Quando terminar ele vai mostrar se teve sucesso ou não. Caso algum falhe, toda a compilação vai falhar. É o caso de olhar com calma.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2- Criar um novo projeto para o programa que quero compilar;&lt;/span&gt;&lt;br /&gt;Primeiramente, abra o MSVC 2008, crie um novo projeto e adicione os arquivos que queremos utilizar.&lt;br /&gt;Lembrando que o nome do projeto amarra qual será o arquivo principal que o MSVC vai chamar. Durante a criação será perguntado se deseja utilizar cabeçalhos précompilados (precompiled headers). Desmarque essa opção conforme a imagem abaixo.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_E7QiGrKoeS0/SxK3g1m_5zI/AAAAAAAAAA8/302OvL3ZbNw/s1600/precompiled_headers.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5409587877199734578" src="http://3.bp.blogspot.com/_E7QiGrKoeS0/SxK3g1m_5zI/AAAAAAAAAA8/302OvL3ZbNw/s200/precompiled_headers.jpg" style="cursor: pointer; float: left; height: 168px; margin: 0pt 10px 10px 0pt; width: 200px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Agora insira os outros arquivos do seu projeto nas pastar headers (.h) e sources (.cpp).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3- Configurar esse novo projeto para achar a compilação da terralib; (arquivos .h e .lib)&lt;/span&gt;&lt;br /&gt;Com o botão direito no nome do projeto na barra "Solution Explorer", acesse "Properties"-&amp;gt;"Configuration Properties"-&amp;gt;"C/C++"&lt;br /&gt;No tópico: "Additional Include Directories" devem ser adicionados todos os diretórios que contém arquivos ".h" da terralib. No nosso caso, procure os diretórios na pasta: "C:\TERRALIBDIR\src\terralib\"&lt;br /&gt;O mínimo que deve-se inserir nesta lista é a pasta: "C:\TERRALIBDIR\src\terralib\kernel" que conté o núcleo da terralib.&lt;br /&gt;&lt;br /&gt;Ainda nas propriedades do projeto "Configuration Properties"-&amp;gt;"Linker"-&amp;gt;"General"&lt;br /&gt;No tópico: "Additional Library Directories" devem ser adicionados todos os diretórios que contém arquivos ".lib" da terralib. No nosso caso, procure os diretórios na pasta: "C:\TERRALIBDIR\Debug\"&lt;br /&gt;O mínimo que deve-se inserir nesta lista é a pasta: "C:\TERRALIBDIR\Debug\terralib" que contém arquivo "terralib.lib".&lt;br /&gt;Por fim, no tópico "Configuration Properties"-&amp;gt;"Linker"-&amp;gt;"Input"-&amp;gt;"Aditional Dependencies", insira o nome "terralib.lib"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4- Compilar o projeto.&lt;/span&gt;&lt;br /&gt;E pronto. Seu programa estará pronto para compilar apertando F7.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5- Copiar as DLLs para fazerem o projeto rodar.&lt;/span&gt;&lt;br /&gt;Para rodar o programa, será necessário procurar quais DLL ele usa. O jeito simples de fazer isso é rodar o programa várias vezes e cada vez que o windows reclamar de falta de DLL faça a procura da DLL na pasta "C:\TERRALIBDIR\Debug\".&lt;br /&gt;&lt;br /&gt;Compacte todos eles juntos (exe e dlls) e mande para o seu amigo mais interessado!&lt;br /&gt;Abraços e até o próximo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-1932479195712936388?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/1932479195712936388/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/11/terralib-windows-e-ms-visual-c-express.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/1932479195712936388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/1932479195712936388'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/11/terralib-windows-e-ms-visual-c-express.html' title='Terralib, windows e MS Visual C++ Express  2008'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_E7QiGrKoeS0/SxK3g1m_5zI/AAAAAAAAAA8/302OvL3ZbNw/s72-c/precompiled_headers.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-3800836592406580861</id><published>2009-08-28T09:55:00.000-07:00</published><updated>2011-01-22T19:05:27.422-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>TK e Python</title><content type='html'>Uma das grandes vantagens do Python é ser multiplataforma. Desta forma, tudo que você escreve em Python é multiplataforma também, sem nenhuma alteração no código.&lt;br /&gt;Isso torna o Python uma excelente linguagem para controlar coisas do dia-a-dia, substituindo o bash (linux), vbscript (windows), bat (dos) entre outros.&lt;br /&gt;&lt;br /&gt;Mas sempre falta alguma coisa: a interface gráfica. &lt;br /&gt;&lt;br /&gt;Imagine se você tivesse a força do bash e a facilidade de trabalhar com o sistema do vbscript? Bom, python tem. &lt;br /&gt;&lt;br /&gt;A tk é um dos vários frameworks gráficos do python. É provavelmente o mais simples e o que vem instalado por padrão em todas instalações de python. Alguns exemplos de tarefas simples com a TK:&lt;br /&gt;&lt;br /&gt;Insira este pedaço para poder usar a Tk. Este código inicializa uma janela principal da TK mas a recolhe. Fiz isso para que o nosso script não tenha uma janela constante e sim pergunte ao usuário as informações quando precisar, usando as caixas de seleção da TK:&lt;br /&gt;&lt;pre name="code" class="python"&gt;import Tkinter&lt;br /&gt;root = Tkinter.Tk()&lt;br /&gt;root.withdraw()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Pedindo ao o usuário abrir um arquivo. Note que os formatos são configurados por pares de strings.&lt;br /&gt;&lt;pre class="Python" name="code"&gt;import tkFileDialog&lt;br /&gt;myFormats = [('JPEG / JFIF','*.jpg')]&lt;br /&gt;filename = tkFileDialog.askopenfilename(parent=root,title='Escolha um arquivo',filetypes=myFormats)&lt;br /&gt;if len(filename) &amp;gt;0:&lt;br /&gt;print "Abrindo arquivo ",filename&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Pedindo ao usuário para escolher uma pasta. Aqui usamos os.getcwd() para começar na pasta onde o programa estiver rodando.&lt;br /&gt;&lt;pre class="Python" name="code"&gt;import tkFileDialog, os&lt;br /&gt;dirname = tkFileDialog.askdirectory(parent=root,initialdir=os.getcwd(),title='Escolha um diretorio')&lt;br /&gt;if len(dirname ) &amp;gt; 0:&lt;br /&gt;print "Abrindo diretorio ", dirname &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Exibindo uma mensagem para o usuário:&lt;br /&gt;&lt;pre class="Python" name="code"&gt;import tkMessageBox&lt;br /&gt;tkMessageBox.showinfo(parent=root,title="Meu Programa" ,message="Pressione Enter para continuar.")&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Finalizando, faremos um exemplo simples de um programa que pede um arquivo, lê ele, troca a palavra "blz" por "beleza" e salva onde você escolher. (exemplo inútil, mas já fiz isso pra consertar tabelas em HTML.&lt;br /&gt;&lt;pre class="Python" name="code"&gt;import os, sys, Tkinter, tkMessageBox, tkFileDialog #importa todos os modulos necessarios&lt;br /&gt;&lt;br /&gt;#solicitando o arquivo de entrada:&lt;br /&gt;myFormats = [('Text files','*.txt')] #define os tipos de arquivos &lt;br /&gt;filename = tkFileDialog.askopenfilename(parent=root,title='Escolha um arquivo de texto',filetypes=myFormats)&lt;br /&gt;if len(filename) &amp;gt;0:&lt;br /&gt;print "Abrindo arquivo ",filename&lt;br /&gt;else: sys.exit(0) #Termina o programa&lt;br /&gt;&lt;br /&gt;#solicitando o arquivo de saida:&lt;br /&gt;outfilename = tkFileDialog.asksaveasfilename(parent=root,filetypes=myFormats ,title="Guardar alteracoes em...")&lt;br /&gt;if len(outfilename ) &amp;gt; 0:&lt;br /&gt;print "Guardando alteracoes em ", outfilename&lt;br /&gt;else: sys.exit(0)&lt;br /&gt;&lt;br /&gt;#executando as trocas&lt;br /&gt;f=open(filename) #abrindo o arquivo&lt;br /&gt;lines=f.readlines() #lendo todas as linhas&lt;br /&gt;f.close() #fechando o arquivo pois jah armazenei as linhas&lt;br /&gt;outf=open(outfilename,'w') #abre o arquivo de saida para escrita&lt;br /&gt;for line in lines: #para cada linha lida&lt;br /&gt;line=line.replace("blz","beleza") #troca naquela linha as palavras que eu quero trocar&lt;br /&gt;outf.write(line)&lt;br /&gt;outf.close()&lt;br /&gt;&lt;br /&gt;tkMessageBox.showinfo(parent=root,title="Trocador de Linhas" ,message="Trocas efetuadas.")&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Com isto podemos observar a Tk funcionando. Como escondemos o "root" (que era a janela principal), nosso programa será puramente linha de comando com algumas solicitações visuais. Para fazer um programa inteiro em Tk recomenda-se utilizar melhor o "root".&lt;br /&gt;&lt;br /&gt;Bom, até a próxima.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-3800836592406580861?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/3800836592406580861/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/08/tk-e-python.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/3800836592406580861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/3800836592406580861'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/08/tk-e-python.html' title='TK e Python'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-2081978593560659810</id><published>2009-08-11T04:45:00.000-07:00</published><updated>2011-08-01T10:41:40.169-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='transformação de coordenadas'/><category scheme='http://www.blogger.com/atom/ns#' term='gdal'/><title type='text'>GDAL e Sistemas de Coordenadas</title><content type='html'>Como vimos anteriormente, uma das grandes aplicações da &lt;a href="http://www.gdal.org/"&gt;GDAL&lt;/a&gt; é na conversão de coordenadas. Esta semana me peguei querendo uma transformação rápida de coordenadas e utilizei uma sequência de comandos Python no terminal interativo para resolver esse problema.&lt;br /&gt;&lt;br /&gt;Uma das vantagens do Python é que no terminal interativo pode-se acompanhar os resultados conforme eles aparecem.&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1118607.js?file=gdalCordinateTransform.py"&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Neste exemplo cada sistema de coordenadas é definido por um objeto da classe "osr.SpatialReference" (Referência Espacial). Para definir os sistemas de coordenadas novamente utilizamos a referência &lt;a href="http://spatialreference.org/ref/epsg/"&gt;EPSG &lt;/a&gt;de cada um destes no método "osr.SpatialReference.ImportFromEPSG()".&lt;br /&gt;&lt;br /&gt;Por fim, é criado um objeto "osr.CoordinateTransformation" (Transformação de Coordenadas) partindo de srE para srS. Este objeto vai ser o responsável por transformar todos pares (ou triplas) de coordenadas que eu passar para ele através do método "osr.CoordinateTransformation.TransformPoint(x,y,z)" Repetindo esse comando várias vezes pode-se transformar várias coordenadas. É uma calculadora rápida e precisa de coordenadas. E serve como exemplo de como definir sistemas de referência na GDAL em Python.&lt;br /&gt;&lt;br /&gt;Espero que seja útil.&lt;br /&gt;E até o próximo post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-2081978593560659810?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/2081978593560659810/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/08/gdal-e-sistemas-de-coordenadas.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/2081978593560659810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/2081978593560659810'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/08/gdal-e-sistemas-de-coordenadas.html' title='GDAL e Sistemas de Coordenadas'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-8703020902048206339</id><published>2009-08-04T14:18:00.000-07:00</published><updated>2011-01-22T18:48:08.687-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='transformação de coordenadas'/><category scheme='http://www.blogger.com/atom/ns#' term='gdal'/><title type='text'>Reprojetando todo o servidor Raster</title><content type='html'>&lt;pre class="brush: js;" name="code"&gt;function teste {&lt;br /&gt;}&lt;br /&gt;import sys, os&lt;br /&gt;try:&lt;br /&gt;import gdal #gdal &amp;lt;1.6&lt;br /&gt;except:&lt;br /&gt;from osgeo import gdal #gdal &amp;gt;1.6&lt;br /&gt;import os, sys&lt;br /&gt;gdalwarp=r"gdalwarp.exe" #Para funcionar, coloque o gdalwarp dentro do path usando o script set_fw.bat&lt;br /&gt;lista = []&lt;br /&gt;&lt;br /&gt;#--&amp;gt;procurando os fotolitos dentro da estrutura de diretorios - inicio&lt;br /&gt;for root, dirs, file in os.walk(os.getcwd()):&lt;br /&gt;for i in file:&lt;br /&gt;if (i[-4:]==".cit" ) or (i[-4:]==".tif"):&lt;br /&gt;if ("Georreferenciados" in root):&lt;br /&gt;lista.append(os.path.join(os.getcwd(),root,i))&lt;br /&gt;#--&amp;gt;procurando os fotolitos dentro da estrutura de diretorios - fim&lt;br /&gt;&lt;br /&gt;def corrigeGeo(arquivo): #transforma de centimetros para metro&lt;br /&gt;ds=gdal.Open(arquivo)&lt;br /&gt;georef=ds.GetGeoTransform()&lt;br /&gt;a=[]&lt;br /&gt;for i in range(0,len(georef)):&lt;br /&gt;a.append(georef[i]*0.01)&lt;br /&gt;georef=ds.SetGeoTransform(a)&lt;br /&gt;del ds&lt;br /&gt;&lt;br /&gt;print "Iniciando conversoes"&lt;br /&gt;for i in lista:&lt;br /&gt;print i&lt;br /&gt;corrigeGeo(i) #transforma de centimetros para metro&lt;br /&gt;#converte os arquivos listados do fuso 22 Corrego Alegre para fuso 22 WGS e salva em imagens de 1 bit&lt;br /&gt;os.system(gdalwarp+" "+i+" "+i.split(".")[0]+'_WGS.tif'+' -s_srs EPSG:22522 -t_srs EPSG:32722 -co "NBITS=1"')&lt;br /&gt;print "Terminado"&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-8703020902048206339?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/8703020902048206339/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/08/o-objetivo-deste-script-eh-andar-por.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/8703020902048206339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/8703020902048206339'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/08/o-objetivo-deste-script-eh-andar-por.html' title='Reprojetando todo o servidor Raster'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-1312584949470264082</id><published>2009-08-04T13:25:00.000-07:00</published><updated>2009-08-04T14:27:47.114-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Córrego Alegre'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='SIG'/><category scheme='http://www.blogger.com/atom/ns#' term='transformação de coordenadas'/><title type='text'>GDAL, Corrego Alegre e definições de DATUM</title><content type='html'>No Brasil vivemos uma transição de datum geodésico. Devemos converter os dados de SAD 69 e Córrego Alegre (em diversas materializações) para o SIRGAS 2000. Aqui no Rio Grande do Sul todo o mapeamento é em Córrego Alegre na escala 1:50.000. Então surge um problema: Utilizando as resoluções  &lt;a href="ftp://geoftp.ibge.gov.br/documentos/geodesia/pmrg/legislacao/RPR_01_25fev2005.pdf" target="_blank"&gt;Resolução 1/2005&lt;/a&gt; e &lt;a href="ftp://geoftp.ibge.gov.br/documentos/geodesia/pdf/rpr-2389.pdf" target="_blank"&gt;Resolução 23/1989&lt;/a&gt;, a transformação de Córrego Alegre para SIRGAS 2000 pode ser feita somando as coordenadas de transformação geocêntrica utilizando a transformação de Molodensky com os parâmetros X=-206,048m Y=168,279m Z=-3,823m.&lt;br /&gt;&lt;br /&gt;Porém, no site do &lt;a href="http://www.ibge.gov.br/home/geociencias/geodesia/param_transf/default_param_transf.shtm"&gt;IBGE &lt;/a&gt;foi dada uma nova forma de transformar. O programa PROGRID utiliza grades de valores e efetua transformações que difereriram em alguns metros das coordenadas calculadas com os parâmetros previstos nas resoluções. Perguntei a um professor meu da graduação e ele me orientou que o PROGRID foi uma solução que buscava obter melhor coerência entre as transformações de coordenadas.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Apesar disso, nenhum software de GIS atualmente adotou essa transformação e não achei nenhuma referência no IBGE falando sobre alguma resolução que oficialize esse método de transformação. Como estou trabalhando com cartas 1:100.000, os 5m de erro absoluto não são relevantes durante a conversão de dados analógicos para digitais.&lt;br /&gt;&lt;br /&gt;Depois de contar a história triste que motivou esse estudo, vamos pra parte prática: Tínhamos em torno de 50 arquivos TIF para converter para esta semana e mais uns 500 no servidor aguardando oportunidade. Decidimos automatizar a conversão.&lt;br /&gt;&lt;br /&gt;Como prefiro, optamos por utilizar tecnologia aberta, escolhendo a &lt;a href="http://www.gdal.org/"&gt;GDAL&lt;/a&gt;. Para quem não conhece, esta é a biblioteca principal de programas C/C++ e python para dados geográficos matriciais e vetoriais. Ela vem com diversos &lt;a href="http://www.gdal.org/gdal_utilities.html"&gt;programas auxiliares&lt;/a&gt;, entre eles, um programa de reprojeção de arquivos matriciais ("&lt;a href="http://www.gdal.org/gdalwarp.html"&gt;gdalwarp&lt;/a&gt;"). Utilizei o pacote pré-compilado &lt;a href="http://fwtools.maptools.org/"&gt;FWTools &lt;/a&gt;em Windows XP durante os testes.&lt;br /&gt;&lt;br /&gt;Para definir os parâmetros corretos, deve-se alterar arquivos na pasta "data" da instalação da gdal (no meu caso "C:\Program Files\FWTools2.4.2\data"). O arquivo "data\coordinate_operation.csv" guarda o nome das transformações, o identificador delas e os identificadores dos sistemas de coordenadas (referentes à &lt;a href="http://spatialreference.org/ref/epsg/"&gt;EPSG&lt;/a&gt;). Procurando por "rrego" neste arquivo achei a linha:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1132,Corrego Alegre to WGS 84 (1),transformation,4225,4326,...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Que representa exatamente a transformação pré-definida na GDAL.&lt;br /&gt;&lt;br /&gt;Dentro do arquivo "data\coordinate_operation_parameter_value.csv" procurei o identificador 1132 e achei as linhas:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1132,9603,8605,&lt;span style="font-weight: bold;"&gt;-206&lt;/span&gt;,,9001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1132,9603,8606,&lt;span style="font-weight: bold;"&gt;172&lt;/span&gt;,,9001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1132,9603,8607,&lt;span style="font-weight: bold;"&gt;-6&lt;/span&gt;,,9001&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Que eu troquei para:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1132,9603,8605,&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;-206.048&lt;/span&gt;&lt;span style="font-style: italic;"&gt;,,9001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1132,9603,8606,&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;168.279&lt;/span&gt;&lt;span style="font-style: italic;"&gt;,,9001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1132,9603,8607,&lt;span style="font-weight: bold;"&gt;-&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;3.823&lt;/span&gt;&lt;span style="font-style: italic;"&gt;,,9001&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;E desta forma, minha instalação da GDAL passou a seguir os parâmetros previstos nas resoluções.&lt;br /&gt;&lt;br /&gt;Agora meu &lt;a href="http://www.gdal.org/gdalwarp.html"&gt;gdalwarp &lt;/a&gt;já fazia as transformações corretamente, mas queríamos transformar muitos arquivos. No próximo post comento o código que eu e César Soares escrevemos para fazer isso em toda a estrutura.&lt;br /&gt;&lt;br /&gt;Novamente, agradeço a todos que se interessaram pelas informações aqui postadas pois é esse o objetivo.&lt;br /&gt;Até a próxima!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-1312584949470264082?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/1312584949470264082/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/08/gdal-corrego-alegre-e-definicoes-de.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/1312584949470264082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/1312584949470264082'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/08/gdal-corrego-alegre-e-definicoes-de.html' title='GDAL, Corrego Alegre e definições de DATUM'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-8290075795712766702</id><published>2009-03-05T00:27:00.000-08:00</published><updated>2010-12-02T15:33:11.993-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qt4'/><category scheme='http://www.blogger.com/atom/ns#' term='postgis'/><category scheme='http://www.blogger.com/atom/ns#' term='plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='qgis'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Qt, Postgis e QGIS</title><content type='html'>O Quantum GIS (QGIS)  é um software com características promissoras. Primeiramente, é software livre, o que permite muita inovação nele. É escrito em C++, o que o faz superior à maioria dos outros softwares livres de processamento pesado em Java. E por fim, possui uma API aberta ao público em C++ e Python.&lt;br /&gt;&lt;br /&gt;Atualmente estou trabalhando em um plugin para o QGIS cujo objetivo é melhorar a automação de Queries do Postgis através da geração de uma interface gráfica para elas automaticamente. A idéia veio de tentar dar ao Postgis algo como o Model Builder do ArcGIS, para gravar rapidamente os processamentos feitos e poder reaproveitá-los.&lt;br /&gt;&lt;br /&gt;A idéia é guardar em um XML as informações de parâmetros necessários para um processo que será definido por uma query de PostgreSQL. O resto o script faz. Gera um botão no menu pro proceso, gera uma interface gráfica com campos para os parâmetros e apresenta os resultados em uma caixa de texto.&lt;br /&gt;&lt;br /&gt;Dessa forma pode-se resolver problemas como: "Quais os nomes das cidades que tocam o polígono que eu acabei de desenhar?" com um único botão de menu já pronto pra isso.&lt;br /&gt;&lt;br /&gt;Ainda falta um bocado de desenvolvimento, mas estarei trabalhando nisso por alguns dias.&lt;br /&gt;Espero que fique bom o resultado. Com sorte resolverei meu problema de "como é que eu fiz daquela vez que eu fiz touch com select name from..." :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-8290075795712766702?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/8290075795712766702/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/03/qt-postgis-e-qgis.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/8290075795712766702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/8290075795712766702'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/03/qt-postgis-e-qgis.html' title='Qt, Postgis e QGIS'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045007745501753278.post-1679331639897012658</id><published>2009-02-07T06:39:00.000-08:00</published><updated>2009-02-07T06:46:58.202-08:00</updated><title type='text'>Nota de abertura</title><content type='html'>Eu nunca entendi exatamente o objetivo de um blog mas recentemente senti a necessidade de utilizar alguma ferramenta para publicar informações na internet. As opções seriam:&lt;br /&gt;1- criar um site (que seria bem mais útil mas me peguei sendo exigente demais com as hospedagens gratis. "Como assim eles não deixam eu usar postgresql e pmapper? Nem python?")&lt;br /&gt;2- criar um site não tão requintado (que tiraria toda a graça da coisa)&lt;br /&gt;3- criar um blog simples com textos corridos das coisas que eu realmente queria documentar.&lt;br /&gt;&lt;br /&gt;No momento me veio à cabeça o problema da língua. Meu público-alvo são as pessoas que trabalham comigo ou que tem interesse pelo meu trabalho. Por isso, português. Para quem não sabe sou Engenheiro Cartógrafo formado no Instituto Militar de Engenharia e trabalho com mapeamento sistemático e desenvolvimento de software para cartografia.&lt;br /&gt;&lt;br /&gt;Então aqui estarei escrevendo tudo que achar relevante e muito provavelmente como todo blog, serei redundante pois estas informações estão disponíveis em vários lugares da internet. As vantagens são que o conteúdo será em português e que refletirão experiências que eu vivi, ou seja, estarei disposto a explicá-las.&lt;br /&gt;&lt;br /&gt;Agradeço a todos que tiverem interesse em passar por aqui e espero que eu faça algo útil para a comunidade.&lt;br /&gt;&lt;br /&gt;Atenciosamente,&lt;br /&gt;Maurício de Paulo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1045007745501753278-1679331639897012658?l=mapeandoobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapeandoobrasil.blogspot.com/feeds/1679331639897012658/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/02/nota-de-abertura.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/1679331639897012658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045007745501753278/posts/default/1679331639897012658'/><link rel='alternate' type='text/html' href='http://mapeandoobrasil.blogspot.com/2009/02/nota-de-abertura.html' title='Nota de abertura'/><author><name>Maurício de Paulo</name><uri>https://profiles.google.com/116627635633179482417</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
