<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sig.geomaster.pt/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jgrocha</id>
	<title>Geomaster, Lda - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://sig.geomaster.pt/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jgrocha"/>
	<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php/Special:Contributions/Jgrocha"/>
	<updated>2026-06-29T19:09:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.11</generator>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Main_Page&amp;diff=979</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Main_Page&amp;diff=979"/>
		<updated>2021-03-07T20:11:05Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Open Data Day, 2018 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Apresentação =&lt;br /&gt;
&lt;br /&gt;
A formação e a disponibilização de conteúdos faz parte do ADN da Geomaster. Neste espaço, estamos a juntar todos os conteúdos das nossas formações, que ainda estão dispersos por vários sítios.&lt;br /&gt;
&lt;br /&gt;
== Onde e como pedir ajuda? ==&lt;br /&gt;
&lt;br /&gt;
[https://lists.osgeo.org/mailman/listinfo/portugal Lista portuguesa da OSGeo]&lt;br /&gt;
&lt;br /&gt;
[https://lists.osgeo.org/mailman/listinfo/qgis-user Lista internacional do QGIS]&lt;br /&gt;
&lt;br /&gt;
https://gis.stackexchange.com/&lt;br /&gt;
&lt;br /&gt;
A Geomaster está oferecer suporte ao QGIS, de forma gratuita. Use o centro de suporte disponível em [https://ticket.geomaster.pt/open.php?lang=pt_PT ticket.geomaster.pt].&lt;br /&gt;
&lt;br /&gt;
Antes de pedir ajuda, faça o trabalho de casa. Pesquise na net se a questão já foi levantada e resolvida.&lt;br /&gt;
&lt;br /&gt;
Para procurar nas listas do QGIS, use o endereço: http://osgeo-org.1560.x6.nabble.com/QGIS-f4099105.html&lt;br /&gt;
&lt;br /&gt;
= Requisitos =&lt;br /&gt;
&lt;br /&gt;
Para fazer os exercícios propostos, precisa de ter algum espaço livre e o software necessário instalado. Os exercícios são independentes do sistema operativo: tanto pode usar Linux, Windows ou macOS.&lt;br /&gt;
&lt;br /&gt;
== Máquina virtual OSGeo Live ==&lt;br /&gt;
&lt;br /&gt;
Uma boa alternativa para a formação é a utilização da máquina virtual [https://live.osgeo.org/en/index.html OSGeo Live] que já tem todo o software SIG necessário.&lt;br /&gt;
&lt;br /&gt;
= Conteúdos =&lt;br /&gt;
&lt;br /&gt;
== Sentinel-2 Image processing using QGIS+SCP ==&lt;br /&gt;
&lt;br /&gt;
Notes from Sentinel-2 Image processing using QGIS+SCP course at Skovskolen, Nødebo.&lt;br /&gt;
&lt;br /&gt;
Documentation:&lt;br /&gt;
&lt;br /&gt;
[https://readthedocs.org/projects/semiautomaticclassificationmanual/downloads/pdf/latest/ Semi-Automatic Classification Plugin Documentation]&lt;br /&gt;
&lt;br /&gt;
[[Installing SCP in Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
[[Create a Copernicus Open Access Hub account]]&lt;br /&gt;
&lt;br /&gt;
[[Search and download Sentinel-2 images]]&lt;br /&gt;
&lt;br /&gt;
[[Search and download Landsat 8 images]]&lt;br /&gt;
&lt;br /&gt;
[[Radiance to reflectance]]&lt;br /&gt;
&lt;br /&gt;
[[Clip Sentinel-2 images]]&lt;br /&gt;
&lt;br /&gt;
[[Band compositions]]&lt;br /&gt;
&lt;br /&gt;
[[Export band compositions]]&lt;br /&gt;
&lt;br /&gt;
[[Raster algebra: calculating indexes]]&lt;br /&gt;
&lt;br /&gt;
[[Unsupervised classification]]&lt;br /&gt;
&lt;br /&gt;
[[Supervised  classification]]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
https://earth.esa.int/web/sentinel/technical-guides/sentinel-2-msi/msi-instrument&lt;br /&gt;
&lt;br /&gt;
http://esa-sen4cap.org/content/eo-products&lt;br /&gt;
&lt;br /&gt;
https://sentinel.esa.int/web/sentinel/user-guides/sentinel-2-msi/document-library&lt;br /&gt;
&lt;br /&gt;
https://www.indexdatabase.de/db/s-single.php?id=96&lt;br /&gt;
&lt;br /&gt;
https://land.copernicus.eu/global/products/ba&lt;br /&gt;
&lt;br /&gt;
https://fromgistors.blogspot.com/2016/11/from-image-download-to-ndvi-calculation.html&lt;br /&gt;
&lt;br /&gt;
http://www.qgis.pt/blog/2016/12/14/detecao-remota-com-o-qgis/ (em Português)&lt;br /&gt;
&lt;br /&gt;
== Wikidata Sixth Birthday ==&lt;br /&gt;
&lt;br /&gt;
[[File:Birthday banner for 4th Wikidata Birthday.png]]&lt;br /&gt;
&lt;br /&gt;
=== Objectivo ===&lt;br /&gt;
&lt;br /&gt;
Fazer uma mapa:&lt;br /&gt;
# Mostrar as ruas, largos, praças e outros espaços com topónimos&lt;br /&gt;
# Poder filtrar por:&lt;br /&gt;
## sexo&lt;br /&gt;
## ocupação (religioso, militar poeta, escritor, político...&lt;br /&gt;
## século&lt;br /&gt;
## etc&lt;br /&gt;
&lt;br /&gt;
Eventualmente, fazer um quantos gráficos, com percentagens:&lt;br /&gt;
# topónimos com nome de pessoas versus outras origens&lt;br /&gt;
# nomes de mulheres versus nomes de homens&lt;br /&gt;
# políticos versus artes e ciências&lt;br /&gt;
&lt;br /&gt;
=== Problema ===&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap não existe informação sobre as propriedades do topónimo. O topónimo pode estar escrito de diversas formas e contém partes que não interessam (Rua, Avenida, Prof, Doutor, etc). (Nota: cruzar com o dataset da [http://centraldedados.pt/codigos_postais/ Central de Dados dos Códigos Postais]).&lt;br /&gt;
&lt;br /&gt;
A [https://www.openstreetmap.org/way/35997529#map=16/41.1809/-8.6094 Rua de São Tomé] refere-se a uma pessoa? &lt;br /&gt;
&lt;br /&gt;
Rua Egas Moniz. Qual [https://pt.wikipedia.org/wiki/Egas_Moniz Egas Moniz]?&lt;br /&gt;
&lt;br /&gt;
==== Solução ====&lt;br /&gt;
&lt;br /&gt;
Wikidata! Diferença entre a página da [https://pt.wikipedia.org/wiki/Ant%C3%B3nio_Egas_Moniz Wikipédia do Egas Moniz] e a da [https://www.wikidata.org/wiki/Q273219 Wikidata da mesma pessoa].&lt;br /&gt;
&lt;br /&gt;
Criei a entidade: https://www.wikidata.org/wiki/Q58129518&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap já se usa uma tag [https://wiki.openstreetmap.org/wiki/Key:wikidata wikidata] para entidades geográficas bem conhecidas, como a [https://www.openstreetmap.org/way/247168260 Torre dos Clérigos].&lt;br /&gt;
&lt;br /&gt;
Existe uma proposta para acrescentar a origem de um determinado nome, usando a tag [https://wiki.openstreetmap.org/wiki/Key:name:etymology name:etymology].&lt;br /&gt;
&lt;br /&gt;
==== Limitações ====&lt;br /&gt;
&lt;br /&gt;
Nem tudo está na Wikidata. Na verdade, existe pouca informação (sobre Portugal) no Wikidata.&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap também não há muitas tags wikidata.&lt;br /&gt;
&lt;br /&gt;
==== Resolução das limitações ====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Editar o OpenStreetMap e a Wikidata!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Nota: área pantanosa em relação às licenças: CC-0 versus ODBL.&lt;br /&gt;
&lt;br /&gt;
==== Outras fontes de dados ====&lt;br /&gt;
&lt;br /&gt;
Central de dados&lt;br /&gt;
&lt;br /&gt;
http://centraldedados.pt/nomes_proprios/&lt;br /&gt;
&lt;br /&gt;
https://genderize.io/&lt;br /&gt;
&lt;br /&gt;
==== Algum código de base ====&lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/pdiasalmeida/osm-street-names&lt;br /&gt;
&lt;br /&gt;
== Open Data Day, 2021 ==&lt;br /&gt;
&lt;br /&gt;
Publicado no diário do OpenStreetMap.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/bonn/ownCloud/OSM/Endereços$ xmlstarlet format --indent-tab Addresses_0110_EPSG4258.gml &amp;gt; Addresses_0110_EPSG4258.formated.gml&lt;br /&gt;
&lt;br /&gt;
ogrinfo -ro -so Addresses_0110_EPSG4258.formated.gml Address&lt;br /&gt;
&lt;br /&gt;
ogrinfo -where gml_id=&amp;quot;&amp;#039;pt.ine.add.PTCONT.25172&amp;#039;&amp;quot; Addresses_0110_EPSG4258.formated.gml Address&lt;br /&gt;
&lt;br /&gt;
# USAR o driver GMLAS em vez de GML&lt;br /&gt;
&lt;br /&gt;
ogrinfo -ro -so GMLAS:Addresses_0110_EPSG4258.formated.gml Address&lt;br /&gt;
&lt;br /&gt;
ogrinfo -where id=&amp;quot;&amp;#039;pt.ine.add.PTCONT.25172&amp;#039;&amp;quot; GMLAS:Addresses_0110_EPSG4258.formated.gml Address&lt;br /&gt;
&lt;br /&gt;
GML_ATTRIBUTES_TO_OGR_FIELDS=YES ogrinfo -where gml_id=&amp;quot;&amp;#039;pt.ine.add.PTCONT.25172&amp;#039;&amp;quot; Addresses_0110_EPSG4258.formated.gml Address&lt;br /&gt;
&lt;br /&gt;
GML_SKIP_RESOLVE_ELEMS=NONE ogrinfo -where gml_id=&amp;quot;&amp;#039;pt.ine.add.PTCONT.25172&amp;#039;&amp;quot; Addresses_0110_EPSG4258.formated.gml Address&lt;br /&gt;
&lt;br /&gt;
GML_ATTRIBUTES_TO_OGR_FIELDS=YES GML_SKIP_RESOLVE_ELEMS=NONE ogr2ogr -f PostgreSQL PG:&amp;#039;service=ftth schemas=ilhavo&amp;#039; GMLAS:Addresses_0110_EPSG4258.formated.gml -nlt CONVERT_TO_LINEAR&lt;br /&gt;
&lt;br /&gt;
ogr2ogr -f &amp;quot;ESRI Shapefile&amp;quot; ilhavo.shp PG:&amp;quot;service=ftth&amp;quot; &amp;quot;ilhavo.moradas&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Open Data Day, 2018 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Logo odd 2018.png]]&lt;br /&gt;
&lt;br /&gt;
[[Introdução ao OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
[[Serviços sobre os dados do OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
[[Dados OpenStreetMap no QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Dados OpenStreetMap no PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
[[OpenStreetMap API]]&lt;br /&gt;
&lt;br /&gt;
[[Routing com os dados do OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
== SIG desktop com QGIS ==&lt;br /&gt;
&lt;br /&gt;
Introdução à interface do QGIS, a visualização complementar de geometrias e dados, filtrar, selecionar, expressões, trabalhar com a seleção, etc.&lt;br /&gt;
&lt;br /&gt;
[[Instalação QGIS no Windows com base no OSGeo4W]]&lt;br /&gt;
&lt;br /&gt;
Instalação da primeira extensão [https://plugins.qgis.org/plugins/quick_map_services/ QuickMapServices].&lt;br /&gt;
&lt;br /&gt;
Os dados vectoriais referem-se a entidades que têm uma componente espacial (geográfica) e um conjunto de atributos.&lt;br /&gt;
&lt;br /&gt;
[[Explorar dados vectoriais]]&lt;br /&gt;
&lt;br /&gt;
[[Georreferenciação de imagens e criação de camadas]]&lt;br /&gt;
&lt;br /&gt;
[[Edição de dados vetoriais]]&lt;br /&gt;
&lt;br /&gt;
[[Geração de um modelo digital do terreno]]&lt;br /&gt;
&lt;br /&gt;
Acrescentar melhorias aos formulários:&lt;br /&gt;
# campos que se atualizam automaticamente&lt;br /&gt;
# joins e formulários com combox&lt;br /&gt;
# um exemplo de uma relação master → detail&lt;br /&gt;
&lt;br /&gt;
[[Ligação a uma base de dados Postgresql]]&lt;br /&gt;
&lt;br /&gt;
[[Análise espacial com rasters]]&lt;br /&gt;
&lt;br /&gt;
==== Para rever ou eliminar... ====&lt;br /&gt;
&lt;br /&gt;
[[Geoprocessamento]]&lt;br /&gt;
&lt;br /&gt;
[[Criar camadas vectoriais]]&lt;br /&gt;
&lt;br /&gt;
Os dados raster referem-se a superfícies contínuas, cujas propriedades se vão alterando ao longo da superfície.&lt;br /&gt;
&lt;br /&gt;
Visualizar dados raster, calculadora raster, calcular o aspecto, declives, mostrar um perfil.&lt;br /&gt;
&lt;br /&gt;
[[Explorar dados raster]]&lt;br /&gt;
&lt;br /&gt;
Cruzar camadas, associar imagens, associar ações a entidades geográficas&lt;br /&gt;
&lt;br /&gt;
[[Cruzar dados vectoriais]]&lt;br /&gt;
&lt;br /&gt;
Introdução à análise espacial: cálculo de áreas de influência, recorte em função da localização, etc.&lt;br /&gt;
&lt;br /&gt;
[[Introdução à análise espacial]]&lt;br /&gt;
&lt;br /&gt;
[[Georreferenciação de mapas]]&lt;br /&gt;
&lt;br /&gt;
[[Criação de camadas]]&lt;br /&gt;
&lt;br /&gt;
[[Teste de auto-avaliação]]&lt;br /&gt;
&lt;br /&gt;
== SIG desktop com QGIS: Tópicos avançados ==&lt;br /&gt;
&lt;br /&gt;
[[Exercício de aquecimento]]&lt;br /&gt;
&lt;br /&gt;
[[QGIS com Postgresql]]&lt;br /&gt;
&lt;br /&gt;
[[Edição de informação geográfica]]&lt;br /&gt;
&lt;br /&gt;
O processamento com o QGIS é tão assustador como fabuloso. Assustador pela diversidade de alternativas que apresenta e fabuloso pela mesma razão. Além de todas as capacidades de processamento que tem no próprio código, O QGIS liga-se muito bem a outros software de processamento, como o GRASS, SAGA, Orfeo Toolbox, etc.&lt;br /&gt;
&lt;br /&gt;
[[Processamento em QGIS]]&lt;br /&gt;
&lt;br /&gt;
As imagens Sentinel são disponibilizadas pela ESA. O tratamento de imagens Sentinel-2 com a extensão [https://fromgistors.blogspot.com/p/semi-automatic-classification-plugin.html Semi-Automatic Classification Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Tratamento de imagens Sentinel]]&lt;br /&gt;
&lt;br /&gt;
As imagens raster podem ser geridas a partir do sistema de ficheiros ou a partir da base de dados Postgresql.&lt;br /&gt;
&lt;br /&gt;
[[Suporte Postgresql para rasters]]&lt;br /&gt;
&lt;br /&gt;
O QGIS está escrito em C++ que é uma linguagem orientado a objetos, que gera código muito eficiente. O QGIS usa a biblioteca QT para todas as componentes de interface com o utilizador.&lt;br /&gt;
Embora todo o núcleo esteja em C++, todas as funcionalidades são expostas para outras aplicações através de uma API que pode ser invocada a partir do Python. Ou seja, a partir de um programa Python, podemos comandar o QGIS e tirar partido de todas as suas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
[[Explorar o QGIS a partir do Python]]&lt;br /&gt;
&lt;br /&gt;
[[QField: o QGIS ao ar livre]]&lt;br /&gt;
&lt;br /&gt;
[[Sobre a preparação desta formação]]&lt;br /&gt;
&lt;br /&gt;
== Base de dados espaciais com Postgresql ==&lt;br /&gt;
&lt;br /&gt;
== Data ==&lt;br /&gt;
&lt;br /&gt;
[https://resourcewatch.org/ Resource Watch – Monitoring the Planet&amp;#039;s Pulse]&lt;br /&gt;
&lt;br /&gt;
== Spatial Data Mining ==&lt;br /&gt;
&lt;br /&gt;
* [https://geodacenter.github.io/ GeoDa] is a free and open source software tool that serves as an introduction to spatial data analysis.&lt;br /&gt;
* [https://github.com/MapPlus/spatial_statistics_for_geotools_udig GeoAnalysis library] is a java-based open source for geospatial analysis.&lt;br /&gt;
&lt;br /&gt;
== QGIS na área da Saúde ==&lt;br /&gt;
&lt;br /&gt;
[https://plugins.qgis.org/plugins/GeoHealth/ Plugin GeoHealth]&lt;br /&gt;
&lt;br /&gt;
== QGIS na área da Arqueologia ==&lt;br /&gt;
&lt;br /&gt;
Tratamento dos arqueossítios em http://www.geira.pt/arqueo/ListaArqueossitios.html&lt;br /&gt;
&lt;br /&gt;
xml disponível em: http://www4.di.uminho.pt/~jcr/XML/didac/xmldocs/arq.xml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget http://www4.di.uminho.pt/~jcr/XML/didac/xmldocs/arq.xml&lt;br /&gt;
xsltproc sample.xsl arq.xml &amp;gt; arq.csv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:output type=&amp;quot;text&amp;quot; indent=&amp;quot;no&amp;quot; omit-xml-declaration=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;xsl:strip-space elements=&amp;quot;*&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;//ARQELEM&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:value-of select=&amp;quot;normalize-space(IDENTI)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(DESCRI)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(CRONO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(FREGUE)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(CONCEL)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(LATITU)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(LONGIT)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(ALTITU)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(ACESSO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(QUADRO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(TRAARQ)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(DESARQ)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(INTERP)&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tratamento manual:&lt;br /&gt;
&lt;br /&gt;
coordenadas: multiplicar por 1000&lt;br /&gt;
&lt;br /&gt;
usar o separador de campos: |&lt;br /&gt;
&lt;br /&gt;
usar o delimitador de campos: &amp;#039;&lt;br /&gt;
&lt;br /&gt;
Sistemas de coordenadas: EPSG:20790&lt;br /&gt;
&lt;br /&gt;
Resultado final: arqueossitios.csv&lt;br /&gt;
&lt;br /&gt;
=== Portal do Arqueólogo ===&lt;br /&gt;
&lt;br /&gt;
Acabei por sacar pelo QGIS, ligando-me ao servidor.&lt;br /&gt;
&lt;br /&gt;
Dados de ligação:&lt;br /&gt;
&lt;br /&gt;
1) É preciso criar uma nova ligação do tipo: ArcGisFeatureServer, com os seguintes dados:&lt;br /&gt;
&lt;br /&gt;
Nome: Portal do Arqueólogo&lt;br /&gt;
&lt;br /&gt;
URL: https://services8.arcgis.com/ITVSIrZ4rxt6SbBo/arcgis/rest/services/Sitios_20190207_visualização/FeatureServer&lt;br /&gt;
&lt;br /&gt;
==== Sacar lista de sítios ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
mkdir -p portalarqueologo&lt;br /&gt;
for i in {1..1735}&lt;br /&gt;
do&lt;br /&gt;
	curl &amp;quot;http://arqueologia.patrimoniocultural.pt/index.php?sid=sitios&amp;amp;p=$i&amp;quot; -o portalarqueologo/$i.html&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd portalarqueologo/&lt;br /&gt;
sed -n -e &amp;#039;s/&amp;lt;td data-label=&amp;quot;Designação&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;\/index.php?sid=sitios\&amp;amp;subsid=\([0-9]\+\)&amp;quot;&amp;gt;\([^&amp;lt;]\+\)&amp;lt;\/a&amp;gt;&amp;lt;\/td&amp;gt;/\1\t\2\thttp:\/\/arqueologia.patrimoniocultural.pt\/index.php?sid=sitios\&amp;amp;subsid=\1/p&amp;#039; *.html | sed &amp;#039;s/^\s\+//g&amp;#039; &amp;gt; lista_sitios.csv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sacar sítios ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Extrair coordenadas ====&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/bin/sitios$ grep  &amp;#039;&amp;lt;div id=&amp;quot;singleListingMap&amp;quot; data-latitude=&amp;quot;[^&amp;quot;]\+&amp;quot; data-longitude=&amp;quot;[^&amp;quot;]\+&amp;quot; data-map-icon&amp;#039; *.html &amp;gt; x&lt;br /&gt;
&lt;br /&gt;
sed -n -e &amp;#039;s/\(^[0-9]\+\).html:\s\+&amp;lt;div id=&amp;quot;singleListingMap&amp;quot; data-latitude=&amp;quot;\([0-9.]\+\)&amp;quot; data-longitude=&amp;quot;\([-0-9.]\+\)&amp;quot;.\+$/\1\t\2\t\3/p&amp;#039; x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Monte da Matosa 2&amp;lt;/h2&amp;gt; Sítio &amp;lt;span title=&amp;quot;CNS&amp;quot;&amp;gt;(13709)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
grep &amp;#039;&amp;lt;h2&amp;gt;[^&amp;lt;]\+&amp;lt;/h2&amp;gt; Sítio &amp;lt;span title=&amp;quot;CNS&amp;quot;&amp;gt;([\d]\+)&amp;lt;/span&amp;gt;&amp;#039; *.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== QGIS ====&lt;br /&gt;
&lt;br /&gt;
Abrir lista_sitios.csv&lt;br /&gt;
&lt;br /&gt;
Abrir&lt;br /&gt;
&lt;br /&gt;
== Dados do OpenStreetMap ==&lt;br /&gt;
&lt;br /&gt;
* Introdução ao OpenStreetMap&lt;br /&gt;
* Dados do OpenStreetMap no QGIS&lt;br /&gt;
* Dados do OpenStreetMap no Postgresql&lt;br /&gt;
* Queries com OverPass API, http://overpass-turbo.eu/&lt;br /&gt;
* Routing com os dados do OpenStreetMap (OpenTripPlanner)&lt;br /&gt;
* Routing com MAPS.ME&lt;br /&gt;
* Usar os mapas do OpenStreetMap num blog&lt;br /&gt;
&lt;br /&gt;
=== Requisitos ===&lt;br /&gt;
&lt;br /&gt;
* Computador c/ algum espaço livre&lt;br /&gt;
* Dados: serão descarregados na hora, a partir de: http://openstreetmap.pt/wp-content/uploads/&lt;br /&gt;
* Software&lt;br /&gt;
** QGIS 2.18.17 LTR&lt;br /&gt;
** Postgresql v9.6 + PostGIS (não é preciso instalar; haverá um servidor na sala)&lt;br /&gt;
** Instalar o MAPS.ME no telemóvel&lt;br /&gt;
&lt;br /&gt;
== Publicação na Web com Geoserver ==&lt;br /&gt;
&lt;br /&gt;
[[Servidores de mapas: conceitos]]&lt;br /&gt;
&lt;br /&gt;
[[Instalação do Geoserver]]&lt;br /&gt;
&lt;br /&gt;
[[Disponibilização de uma camada WMS/WFS]]&lt;br /&gt;
&lt;br /&gt;
[[Disponibilização de uma camada WMTS]]&lt;br /&gt;
&lt;br /&gt;
[[Publicação de grupos]]&lt;br /&gt;
&lt;br /&gt;
== Publicação na Web com uMap ==&lt;br /&gt;
&lt;br /&gt;
A plataforma uMap permite criar mapas de uma forma simples. Os mapas criados podem ser incorporados num blog ou num site.&lt;br /&gt;
&lt;br /&gt;
[[O meu primeiro mapa com o uMap]]&lt;br /&gt;
&lt;br /&gt;
== Drones ==&lt;br /&gt;
&lt;br /&gt;
[[DJI MAVIC 2 PRO]]&lt;br /&gt;
&lt;br /&gt;
[[Flight planner]]&lt;br /&gt;
&lt;br /&gt;
[[Running OpenDroneMap]]&lt;br /&gt;
&lt;br /&gt;
== Contribuir para projectos Open Source no domínio dos SIG ==&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o Nominatim]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para plugins QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o OpenTripPlanner]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o GeoExt]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o PostGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o curso PostGIS com Rasters]]&lt;br /&gt;
&lt;br /&gt;
= Outros cursos e recursos =&lt;br /&gt;
&lt;br /&gt;
[http://training.gismentors.eu/isprs-summer-school-2016/index.html ISPRS Congress 2016 Summer School]&lt;br /&gt;
&lt;br /&gt;
[http://training.gismentors.eu/grass-gis-workshop-jena-2018/index.html GRASS GIS Workshop in Jena]&lt;br /&gt;
&lt;br /&gt;
[https://www.hatarilabs.com/ih-en/working-with-sentinel-2-imagery-on-qgis Working with Sentinel 2 Imagery on QGIS]&lt;br /&gt;
&lt;br /&gt;
[https://uwgis.wordpress.com/gis-practicals/flood-risk-mapping/ QGIS Flood Risk Mapping]&lt;br /&gt;
&lt;br /&gt;
[[Spatial-Temporal Data Analysis]]&lt;br /&gt;
&lt;br /&gt;
[[Geospatial Data Mining]]&lt;br /&gt;
&lt;br /&gt;
[[Como gravar cursos em vídeo]]&lt;br /&gt;
&lt;br /&gt;
= Propostas =&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Generalização Cartográfica]], em parceria com IBGE&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Deteção de estradas em imagens Sentinel-2]], em parceria com IBGE&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Ler cartas náuticas]], em parceria com a comunidade QGIS e de acordo com esta [https://github.com/faunalia/qnavigate proposta de melhoramento]&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Carregar informação meteorológica]], em parceria com a comunidade QGIS e de acordo com esta [https://github.com/faunalia/qnavigate proposta de melhoramento]&lt;br /&gt;
&lt;br /&gt;
[[QGIS:Plugin para dados do INE]]&lt;br /&gt;
&lt;br /&gt;
[[QGIS:Plugin para sobre a Saúde em Portugal]]&lt;br /&gt;
&lt;br /&gt;
= Modelo Topográfico =&lt;br /&gt;
&lt;br /&gt;
http://www.dgterritorio.gov.pt/recart/TRANSPORTES%20(Transporte%20rodovi%C3%A1rio)/CatalogoDasViasRodoviariasParte2.html&lt;br /&gt;
&lt;br /&gt;
http://www.dgterritorio.gov.pt/recart/TRANSPORTES%20(Transporte%20rodovi%C3%A1rio)/CatalogoDasViasRodoviariasParte2UTF-8_20190703.csv&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi sed.txt&lt;br /&gt;
&lt;br /&gt;
1s/codigoViaRodov/codigo_via_rodov/&lt;br /&gt;
1s/tipoViaRodovC/tipo_rodovia_c/&lt;br /&gt;
1s/codigoDGT/codigo_dgt/&lt;br /&gt;
1s/codigoArruamento/codigo_arruamento/&lt;br /&gt;
1s/tipoViaRodovD/tipo_rodovia_d/&lt;br /&gt;
1s/tipoViaRodovAbv/tipo_rodovia_abv/&lt;br /&gt;
1s/nomeSufixo/nome_sufixo/&lt;br /&gt;
1s/nomeAlternativo/nome_alternativo/&lt;br /&gt;
1s/pontosExtremoseIntermedios/pontos_extremos_e_intermedios/&lt;br /&gt;
1s/lugarINEcod/lugar_ine_cod/&lt;br /&gt;
1s/fonteAquisicaoDados/fonte_aquisicao_dados/&lt;br /&gt;
1s/dataEdital/data_edital/&lt;br /&gt;
1s/DICOFRE/dicofre/&lt;br /&gt;
1s/DICO/dico/&lt;br /&gt;
1s/DI/di/&lt;br /&gt;
1s/CO/co/&lt;br /&gt;
1s/dataCat/data_cat/&lt;br /&gt;
&lt;br /&gt;
sed -f sed.txt -i CatalogoDasViasRodoviariasParte2UTF-8_20190703.csv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=DJI_MAVIC_2_PRO&amp;diff=977</id>
		<title>DJI MAVIC 2 PRO</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=DJI_MAVIC_2_PRO&amp;diff=977"/>
		<updated>2021-02-22T00:16:13Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: Created page with &amp;quot; https://dominey.blog/2019/11/04/best-photo-and-video-settings-for-the-dji-mavic-2-pro/&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
https://dominey.blog/2019/11/04/best-photo-and-video-settings-for-the-dji-mavic-2-pro/&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Flight_planner&amp;diff=975</id>
		<title>Flight planner</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Flight_planner&amp;diff=975"/>
		<updated>2021-02-07T18:45:28Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Legacy software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Software ===&lt;br /&gt;
&lt;br /&gt;
==== Open source software (better with drones using &amp;#039;&amp;#039;&amp;#039;PX4&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;ArduPilot&amp;#039;&amp;#039;&amp;#039; controllers) ====&lt;br /&gt;
&lt;br /&gt;
* [https://www.dronecode.org/ Dronecode Foundation] &lt;br /&gt;
** [http://qgroundcontrol.com/ QGroundControl] Qt based application&lt;br /&gt;
*** QGroundControl uses the MavLink control and provides full flight control and vehicle setup for &amp;#039;&amp;#039;&amp;#039;PX4&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;ArduPilot&amp;#039;&amp;#039;&amp;#039; powered vehicles. &lt;br /&gt;
*** [https://github.com/The1only/rosettadrone Drone Rosetta] is a proxy to the MavLink protocol enabling to use apps like QGroundControl to plan missions. With Drone Rosetta, it is possible to control DJI drones using QGroundControl.&lt;br /&gt;
&lt;br /&gt;
* Airdata &lt;br /&gt;
&lt;br /&gt;
==== Legacy software ====&lt;br /&gt;
&lt;br /&gt;
PIX4DCapture&lt;br /&gt;
&lt;br /&gt;
DroneDeploy&lt;br /&gt;
&lt;br /&gt;
Drone Harmony&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Dronelink&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Mapping Plans: $ 20,00 one time&lt;br /&gt;
** Support AGL (ground level) (terrain follow) - Uses ESRI &lt;br /&gt;
* [https://www.youtube.com/watch?v=Hley9DDEDdw Gound level usage] by Erik, from DroneLink&lt;br /&gt;
* [https://www.youtube.com/watch?v=zsZMyRYfOaA Tutorial Castellano] Boa introdução&lt;br /&gt;
&lt;br /&gt;
* Discussão do focus: https://support.dronelink.com/hc/en-us/community/posts/360036947813-Footage-not-in-focus-Mavic-Pro-&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Red Waypoint&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* [http://redwaypoint.com Red Waypoint] $16.99 &lt;br /&gt;
** Terrain follow&lt;br /&gt;
&lt;br /&gt;
Litchi&lt;br /&gt;
&lt;br /&gt;
* [https://flylitchi.com/ Litchi for DJI Mavic / Phantom / Inspire / Spark] 25,99 €&lt;br /&gt;
&lt;br /&gt;
https://flylitchi.com/hub&lt;br /&gt;
&lt;br /&gt;
=== Forums ===&lt;br /&gt;
&lt;br /&gt;
* [https://mavicpilots.com/forums/mavic-2-pro.68/ Mavic 2 Pro]&lt;br /&gt;
&lt;br /&gt;
=== Tips ===&lt;br /&gt;
&lt;br /&gt;
Quando o drone está na altura do voo, carrear no botão C1 para focar&lt;br /&gt;
&lt;br /&gt;
Afinações para o Mavic...&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Flight_planner&amp;diff=973</id>
		<title>Flight planner</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Flight_planner&amp;diff=973"/>
		<updated>2021-02-07T15:33:05Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Software ===&lt;br /&gt;
&lt;br /&gt;
==== Open source software (better with drones using &amp;#039;&amp;#039;&amp;#039;PX4&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;ArduPilot&amp;#039;&amp;#039;&amp;#039; controllers) ====&lt;br /&gt;
&lt;br /&gt;
* [https://www.dronecode.org/ Dronecode Foundation] &lt;br /&gt;
** [http://qgroundcontrol.com/ QGroundControl] Qt based application&lt;br /&gt;
*** QGroundControl uses the MavLink control and provides full flight control and vehicle setup for &amp;#039;&amp;#039;&amp;#039;PX4&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;ArduPilot&amp;#039;&amp;#039;&amp;#039; powered vehicles. &lt;br /&gt;
*** [https://github.com/The1only/rosettadrone Drone Rosetta] is a proxy to the MavLink protocol enabling to use apps like QGroundControl to plan missions. With Drone Rosetta, it is possible to control DJI drones using QGroundControl.&lt;br /&gt;
&lt;br /&gt;
* Airdata &lt;br /&gt;
&lt;br /&gt;
==== Legacy software ====&lt;br /&gt;
&lt;br /&gt;
PIX4DCapture&lt;br /&gt;
&lt;br /&gt;
DroneDeploy&lt;br /&gt;
&lt;br /&gt;
Drone Harmony&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Dronelink&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Mapping Plans: $ 20,00 one time&lt;br /&gt;
** Support AGL (ground level) (terrain follow) - Uses ESRI &lt;br /&gt;
* [https://www.youtube.com/watch?v=Hley9DDEDdw Gound level usage] by Erik, from DroneLink&lt;br /&gt;
* [https://www.youtube.com/watch?v=zsZMyRYfOaA Tutorial Castellano] Boa introdução&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Red Waypoint&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* [http://redwaypoint.com Red Waypoint] $16.99 &lt;br /&gt;
** Terrain follow&lt;br /&gt;
&lt;br /&gt;
Litchi&lt;br /&gt;
&lt;br /&gt;
* [https://flylitchi.com/ Litchi for DJI Mavic / Phantom / Inspire / Spark] 25,99 €&lt;br /&gt;
&lt;br /&gt;
https://flylitchi.com/hub&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forums ===&lt;br /&gt;
&lt;br /&gt;
* [https://mavicpilots.com/forums/mavic-2-pro.68/ Mavic 2 Pro]&lt;br /&gt;
&lt;br /&gt;
=== Tips ===&lt;br /&gt;
&lt;br /&gt;
Quando o drone está na altura do voo, carrear no botão C1 para focar&lt;br /&gt;
&lt;br /&gt;
Afinações para o Mavic...&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Flight_planner&amp;diff=971</id>
		<title>Flight planner</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Flight_planner&amp;diff=971"/>
		<updated>2021-02-07T00:25:00Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PIX4DCapture&lt;br /&gt;
&lt;br /&gt;
Drone Harmony&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Focus ===&lt;br /&gt;
&lt;br /&gt;
Quando o drone está na altura do voo, carrear no botão C1 para focar&lt;br /&gt;
&lt;br /&gt;
Afinações para o Mavic...&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Flight_planner&amp;diff=969</id>
		<title>Flight planner</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Flight_planner&amp;diff=969"/>
		<updated>2021-02-07T00:24:38Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PIX4DCapture&lt;br /&gt;
&lt;br /&gt;
=== Focus ===&lt;br /&gt;
&lt;br /&gt;
Quando o drone está na altura do voo, carrear no botão C1 para focar&lt;br /&gt;
&lt;br /&gt;
Afinações para o Mavic...&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Main_Page&amp;diff=967</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Main_Page&amp;diff=967"/>
		<updated>2020-03-28T00:10:51Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Portal do Arqueólogo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Apresentação =&lt;br /&gt;
&lt;br /&gt;
A formação e a disponibilização de conteúdos faz parte do ADN da Geomaster. Neste espaço, estamos a juntar todos os conteúdos das nossas formações, que ainda estão dispersos por vários sítios.&lt;br /&gt;
&lt;br /&gt;
== Onde e como pedir ajuda? ==&lt;br /&gt;
&lt;br /&gt;
[https://lists.osgeo.org/mailman/listinfo/portugal Lista portuguesa da OSGeo]&lt;br /&gt;
&lt;br /&gt;
[https://lists.osgeo.org/mailman/listinfo/qgis-user Lista internacional do QGIS]&lt;br /&gt;
&lt;br /&gt;
https://gis.stackexchange.com/&lt;br /&gt;
&lt;br /&gt;
A Geomaster está oferecer suporte ao QGIS, de forma gratuita. Use o centro de suporte disponível em [https://ticket.geomaster.pt/open.php?lang=pt_PT ticket.geomaster.pt].&lt;br /&gt;
&lt;br /&gt;
Antes de pedir ajuda, faça o trabalho de casa. Pesquise na net se a questão já foi levantada e resolvida.&lt;br /&gt;
&lt;br /&gt;
Para procurar nas listas do QGIS, use o endereço: http://osgeo-org.1560.x6.nabble.com/QGIS-f4099105.html&lt;br /&gt;
&lt;br /&gt;
= Requisitos =&lt;br /&gt;
&lt;br /&gt;
Para fazer os exercícios propostos, precisa de ter algum espaço livre e o software necessário instalado. Os exercícios são independentes do sistema operativo: tanto pode usar Linux, Windows ou macOS.&lt;br /&gt;
&lt;br /&gt;
== Máquina virtual OSGeo Live ==&lt;br /&gt;
&lt;br /&gt;
Uma boa alternativa para a formação é a utilização da máquina virtual [https://live.osgeo.org/en/index.html OSGeo Live] que já tem todo o software SIG necessário.&lt;br /&gt;
&lt;br /&gt;
= Conteúdos =&lt;br /&gt;
&lt;br /&gt;
== Sentinel-2 Image processing using QGIS+SCP ==&lt;br /&gt;
&lt;br /&gt;
Notes from Sentinel-2 Image processing using QGIS+SCP course at Skovskolen, Nødebo.&lt;br /&gt;
&lt;br /&gt;
Documentation:&lt;br /&gt;
&lt;br /&gt;
[https://readthedocs.org/projects/semiautomaticclassificationmanual/downloads/pdf/latest/ Semi-Automatic Classification Plugin Documentation]&lt;br /&gt;
&lt;br /&gt;
[[Installing SCP in Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
[[Create a Copernicus Open Access Hub account]]&lt;br /&gt;
&lt;br /&gt;
[[Search and download Sentinel-2 images]]&lt;br /&gt;
&lt;br /&gt;
[[Search and download Landsat 8 images]]&lt;br /&gt;
&lt;br /&gt;
[[Radiance to reflectance]]&lt;br /&gt;
&lt;br /&gt;
[[Clip Sentinel-2 images]]&lt;br /&gt;
&lt;br /&gt;
[[Band compositions]]&lt;br /&gt;
&lt;br /&gt;
[[Export band compositions]]&lt;br /&gt;
&lt;br /&gt;
[[Raster algebra: calculating indexes]]&lt;br /&gt;
&lt;br /&gt;
[[Unsupervised classification]]&lt;br /&gt;
&lt;br /&gt;
[[Supervised  classification]]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
https://earth.esa.int/web/sentinel/technical-guides/sentinel-2-msi/msi-instrument&lt;br /&gt;
&lt;br /&gt;
http://esa-sen4cap.org/content/eo-products&lt;br /&gt;
&lt;br /&gt;
https://sentinel.esa.int/web/sentinel/user-guides/sentinel-2-msi/document-library&lt;br /&gt;
&lt;br /&gt;
https://www.indexdatabase.de/db/s-single.php?id=96&lt;br /&gt;
&lt;br /&gt;
https://land.copernicus.eu/global/products/ba&lt;br /&gt;
&lt;br /&gt;
https://fromgistors.blogspot.com/2016/11/from-image-download-to-ndvi-calculation.html&lt;br /&gt;
&lt;br /&gt;
http://www.qgis.pt/blog/2016/12/14/detecao-remota-com-o-qgis/ (em Português)&lt;br /&gt;
&lt;br /&gt;
== Wikidata Sixth Birthday ==&lt;br /&gt;
&lt;br /&gt;
[[File:Birthday banner for 4th Wikidata Birthday.png]]&lt;br /&gt;
&lt;br /&gt;
=== Objectivo ===&lt;br /&gt;
&lt;br /&gt;
Fazer uma mapa:&lt;br /&gt;
# Mostrar as ruas, largos, praças e outros espaços com topónimos&lt;br /&gt;
# Poder filtrar por:&lt;br /&gt;
## sexo&lt;br /&gt;
## ocupação (religioso, militar poeta, escritor, político...&lt;br /&gt;
## século&lt;br /&gt;
## etc&lt;br /&gt;
&lt;br /&gt;
Eventualmente, fazer um quantos gráficos, com percentagens:&lt;br /&gt;
# topónimos com nome de pessoas versus outras origens&lt;br /&gt;
# nomes de mulheres versus nomes de homens&lt;br /&gt;
# políticos versus artes e ciências&lt;br /&gt;
&lt;br /&gt;
=== Problema ===&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap não existe informação sobre as propriedades do topónimo. O topónimo pode estar escrito de diversas formas e contém partes que não interessam (Rua, Avenida, Prof, Doutor, etc). (Nota: cruzar com o dataset da [http://centraldedados.pt/codigos_postais/ Central de Dados dos Códigos Postais]).&lt;br /&gt;
&lt;br /&gt;
A [https://www.openstreetmap.org/way/35997529#map=16/41.1809/-8.6094 Rua de São Tomé] refere-se a uma pessoa? &lt;br /&gt;
&lt;br /&gt;
Rua Egas Moniz. Qual [https://pt.wikipedia.org/wiki/Egas_Moniz Egas Moniz]?&lt;br /&gt;
&lt;br /&gt;
==== Solução ====&lt;br /&gt;
&lt;br /&gt;
Wikidata! Diferença entre a página da [https://pt.wikipedia.org/wiki/Ant%C3%B3nio_Egas_Moniz Wikipédia do Egas Moniz] e a da [https://www.wikidata.org/wiki/Q273219 Wikidata da mesma pessoa].&lt;br /&gt;
&lt;br /&gt;
Criei a entidade: https://www.wikidata.org/wiki/Q58129518&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap já se usa uma tag [https://wiki.openstreetmap.org/wiki/Key:wikidata wikidata] para entidades geográficas bem conhecidas, como a [https://www.openstreetmap.org/way/247168260 Torre dos Clérigos].&lt;br /&gt;
&lt;br /&gt;
Existe uma proposta para acrescentar a origem de um determinado nome, usando a tag [https://wiki.openstreetmap.org/wiki/Key:name:etymology name:etymology].&lt;br /&gt;
&lt;br /&gt;
==== Limitações ====&lt;br /&gt;
&lt;br /&gt;
Nem tudo está na Wikidata. Na verdade, existe pouca informação (sobre Portugal) no Wikidata.&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap também não há muitas tags wikidata.&lt;br /&gt;
&lt;br /&gt;
==== Resolução das limitações ====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Editar o OpenStreetMap e a Wikidata!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Nota: área pantanosa em relação às licenças: CC-0 versus ODBL.&lt;br /&gt;
&lt;br /&gt;
==== Outras fontes de dados ====&lt;br /&gt;
&lt;br /&gt;
Central de dados&lt;br /&gt;
&lt;br /&gt;
http://centraldedados.pt/nomes_proprios/&lt;br /&gt;
&lt;br /&gt;
https://genderize.io/&lt;br /&gt;
&lt;br /&gt;
==== Algum código de base ====&lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/pdiasalmeida/osm-street-names&lt;br /&gt;
&lt;br /&gt;
== Open Data Day, 2018 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Logo odd 2018.png]]&lt;br /&gt;
&lt;br /&gt;
[[Introdução ao OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
[[Serviços sobre os dados do OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
[[Dados OpenStreetMap no QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Dados OpenStreetMap no PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
[[OpenStreetMap API]]&lt;br /&gt;
&lt;br /&gt;
[[Routing com os dados do OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
== SIG desktop com QGIS ==&lt;br /&gt;
&lt;br /&gt;
Introdução à interface do QGIS, a visualização complementar de geometrias e dados, filtrar, selecionar, expressões, trabalhar com a seleção, etc.&lt;br /&gt;
&lt;br /&gt;
[[Instalação QGIS no Windows com base no OSGeo4W]]&lt;br /&gt;
&lt;br /&gt;
Instalação da primeira extensão [https://plugins.qgis.org/plugins/quick_map_services/ QuickMapServices].&lt;br /&gt;
&lt;br /&gt;
Os dados vectoriais referem-se a entidades que têm uma componente espacial (geográfica) e um conjunto de atributos.&lt;br /&gt;
&lt;br /&gt;
[[Explorar dados vectoriais]]&lt;br /&gt;
&lt;br /&gt;
[[Georreferenciação de imagens e criação de camadas]]&lt;br /&gt;
&lt;br /&gt;
[[Edição de dados vetoriais]]&lt;br /&gt;
&lt;br /&gt;
[[Geração de um modelo digital do terreno]]&lt;br /&gt;
&lt;br /&gt;
Acrescentar melhorias aos formulários:&lt;br /&gt;
# campos que se atualizam automaticamente&lt;br /&gt;
# joins e formulários com combox&lt;br /&gt;
# um exemplo de uma relação master → detail&lt;br /&gt;
&lt;br /&gt;
[[Ligação a uma base de dados Postgresql]]&lt;br /&gt;
&lt;br /&gt;
[[Análise espacial com rasters]]&lt;br /&gt;
&lt;br /&gt;
==== Para rever ou eliminar... ====&lt;br /&gt;
&lt;br /&gt;
[[Geoprocessamento]]&lt;br /&gt;
&lt;br /&gt;
[[Criar camadas vectoriais]]&lt;br /&gt;
&lt;br /&gt;
Os dados raster referem-se a superfícies contínuas, cujas propriedades se vão alterando ao longo da superfície.&lt;br /&gt;
&lt;br /&gt;
Visualizar dados raster, calculadora raster, calcular o aspecto, declives, mostrar um perfil.&lt;br /&gt;
&lt;br /&gt;
[[Explorar dados raster]]&lt;br /&gt;
&lt;br /&gt;
Cruzar camadas, associar imagens, associar ações a entidades geográficas&lt;br /&gt;
&lt;br /&gt;
[[Cruzar dados vectoriais]]&lt;br /&gt;
&lt;br /&gt;
Introdução à análise espacial: cálculo de áreas de influência, recorte em função da localização, etc.&lt;br /&gt;
&lt;br /&gt;
[[Introdução à análise espacial]]&lt;br /&gt;
&lt;br /&gt;
[[Georreferenciação de mapas]]&lt;br /&gt;
&lt;br /&gt;
[[Criação de camadas]]&lt;br /&gt;
&lt;br /&gt;
[[Teste de auto-avaliação]]&lt;br /&gt;
&lt;br /&gt;
== SIG desktop com QGIS: Tópicos avançados ==&lt;br /&gt;
&lt;br /&gt;
[[Exercício de aquecimento]]&lt;br /&gt;
&lt;br /&gt;
[[QGIS com Postgresql]]&lt;br /&gt;
&lt;br /&gt;
[[Edição de informação geográfica]]&lt;br /&gt;
&lt;br /&gt;
O processamento com o QGIS é tão assustador como fabuloso. Assustador pela diversidade de alternativas que apresenta e fabuloso pela mesma razão. Além de todas as capacidades de processamento que tem no próprio código, O QGIS liga-se muito bem a outros software de processamento, como o GRASS, SAGA, Orfeo Toolbox, etc.&lt;br /&gt;
&lt;br /&gt;
[[Processamento em QGIS]]&lt;br /&gt;
&lt;br /&gt;
As imagens Sentinel são disponibilizadas pela ESA. O tratamento de imagens Sentinel-2 com a extensão [https://fromgistors.blogspot.com/p/semi-automatic-classification-plugin.html Semi-Automatic Classification Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Tratamento de imagens Sentinel]]&lt;br /&gt;
&lt;br /&gt;
As imagens raster podem ser geridas a partir do sistema de ficheiros ou a partir da base de dados Postgresql.&lt;br /&gt;
&lt;br /&gt;
[[Suporte Postgresql para rasters]]&lt;br /&gt;
&lt;br /&gt;
O QGIS está escrito em C++ que é uma linguagem orientado a objetos, que gera código muito eficiente. O QGIS usa a biblioteca QT para todas as componentes de interface com o utilizador.&lt;br /&gt;
Embora todo o núcleo esteja em C++, todas as funcionalidades são expostas para outras aplicações através de uma API que pode ser invocada a partir do Python. Ou seja, a partir de um programa Python, podemos comandar o QGIS e tirar partido de todas as suas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
[[Explorar o QGIS a partir do Python]]&lt;br /&gt;
&lt;br /&gt;
[[QField: o QGIS ao ar livre]]&lt;br /&gt;
&lt;br /&gt;
[[Sobre a preparação desta formação]]&lt;br /&gt;
&lt;br /&gt;
== Base de dados espaciais com Postgresql ==&lt;br /&gt;
&lt;br /&gt;
== Data ==&lt;br /&gt;
&lt;br /&gt;
[https://resourcewatch.org/ Resource Watch – Monitoring the Planet&amp;#039;s Pulse]&lt;br /&gt;
&lt;br /&gt;
== Spatial Data Mining ==&lt;br /&gt;
&lt;br /&gt;
* [https://geodacenter.github.io/ GeoDa] is a free and open source software tool that serves as an introduction to spatial data analysis.&lt;br /&gt;
* [https://github.com/MapPlus/spatial_statistics_for_geotools_udig GeoAnalysis library] is a java-based open source for geospatial analysis.&lt;br /&gt;
&lt;br /&gt;
== QGIS na área da Saúde ==&lt;br /&gt;
&lt;br /&gt;
[https://plugins.qgis.org/plugins/GeoHealth/ Plugin GeoHealth]&lt;br /&gt;
&lt;br /&gt;
== QGIS na área da Arqueologia ==&lt;br /&gt;
&lt;br /&gt;
Tratamento dos arqueossítios em http://www.geira.pt/arqueo/ListaArqueossitios.html&lt;br /&gt;
&lt;br /&gt;
xml disponível em: http://www4.di.uminho.pt/~jcr/XML/didac/xmldocs/arq.xml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget http://www4.di.uminho.pt/~jcr/XML/didac/xmldocs/arq.xml&lt;br /&gt;
xsltproc sample.xsl arq.xml &amp;gt; arq.csv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:output type=&amp;quot;text&amp;quot; indent=&amp;quot;no&amp;quot; omit-xml-declaration=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;xsl:strip-space elements=&amp;quot;*&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;//ARQELEM&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:value-of select=&amp;quot;normalize-space(IDENTI)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(DESCRI)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(CRONO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(FREGUE)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(CONCEL)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(LATITU)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(LONGIT)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(ALTITU)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(ACESSO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(QUADRO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(TRAARQ)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(DESARQ)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(INTERP)&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tratamento manual:&lt;br /&gt;
&lt;br /&gt;
coordenadas: multiplicar por 1000&lt;br /&gt;
&lt;br /&gt;
usar o separador de campos: |&lt;br /&gt;
&lt;br /&gt;
usar o delimitador de campos: &amp;#039;&lt;br /&gt;
&lt;br /&gt;
Sistemas de coordenadas: EPSG:20790&lt;br /&gt;
&lt;br /&gt;
Resultado final: arqueossitios.csv&lt;br /&gt;
&lt;br /&gt;
=== Portal do Arqueólogo ===&lt;br /&gt;
&lt;br /&gt;
Acabei por sacar pelo QGIS, ligando-me ao servidor.&lt;br /&gt;
&lt;br /&gt;
Dados de ligação:&lt;br /&gt;
&lt;br /&gt;
1) É preciso criar uma nova ligação do tipo: ArcGisFeatureServer, com os seguintes dados:&lt;br /&gt;
&lt;br /&gt;
Nome: Portal do Arqueólogo&lt;br /&gt;
&lt;br /&gt;
URL: https://services8.arcgis.com/ITVSIrZ4rxt6SbBo/arcgis/rest/services/Sitios_20190207_visualização/FeatureServer&lt;br /&gt;
&lt;br /&gt;
==== Sacar lista de sítios ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
mkdir -p portalarqueologo&lt;br /&gt;
for i in {1..1735}&lt;br /&gt;
do&lt;br /&gt;
	curl &amp;quot;http://arqueologia.patrimoniocultural.pt/index.php?sid=sitios&amp;amp;p=$i&amp;quot; -o portalarqueologo/$i.html&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd portalarqueologo/&lt;br /&gt;
sed -n -e &amp;#039;s/&amp;lt;td data-label=&amp;quot;Designação&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;\/index.php?sid=sitios\&amp;amp;subsid=\([0-9]\+\)&amp;quot;&amp;gt;\([^&amp;lt;]\+\)&amp;lt;\/a&amp;gt;&amp;lt;\/td&amp;gt;/\1\t\2\thttp:\/\/arqueologia.patrimoniocultural.pt\/index.php?sid=sitios\&amp;amp;subsid=\1/p&amp;#039; *.html | sed &amp;#039;s/^\s\+//g&amp;#039; &amp;gt; lista_sitios.csv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sacar sítios ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Extrair coordenadas ====&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/bin/sitios$ grep  &amp;#039;&amp;lt;div id=&amp;quot;singleListingMap&amp;quot; data-latitude=&amp;quot;[^&amp;quot;]\+&amp;quot; data-longitude=&amp;quot;[^&amp;quot;]\+&amp;quot; data-map-icon&amp;#039; *.html &amp;gt; x&lt;br /&gt;
&lt;br /&gt;
sed -n -e &amp;#039;s/\(^[0-9]\+\).html:\s\+&amp;lt;div id=&amp;quot;singleListingMap&amp;quot; data-latitude=&amp;quot;\([0-9.]\+\)&amp;quot; data-longitude=&amp;quot;\([-0-9.]\+\)&amp;quot;.\+$/\1\t\2\t\3/p&amp;#039; x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Monte da Matosa 2&amp;lt;/h2&amp;gt; Sítio &amp;lt;span title=&amp;quot;CNS&amp;quot;&amp;gt;(13709)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
grep &amp;#039;&amp;lt;h2&amp;gt;[^&amp;lt;]\+&amp;lt;/h2&amp;gt; Sítio &amp;lt;span title=&amp;quot;CNS&amp;quot;&amp;gt;([\d]\+)&amp;lt;/span&amp;gt;&amp;#039; *.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== QGIS ====&lt;br /&gt;
&lt;br /&gt;
Abrir lista_sitios.csv&lt;br /&gt;
&lt;br /&gt;
Abrir&lt;br /&gt;
&lt;br /&gt;
== Dados do OpenStreetMap ==&lt;br /&gt;
&lt;br /&gt;
* Introdução ao OpenStreetMap&lt;br /&gt;
* Dados do OpenStreetMap no QGIS&lt;br /&gt;
* Dados do OpenStreetMap no Postgresql&lt;br /&gt;
* Queries com OverPass API, http://overpass-turbo.eu/&lt;br /&gt;
* Routing com os dados do OpenStreetMap (OpenTripPlanner)&lt;br /&gt;
* Routing com MAPS.ME&lt;br /&gt;
* Usar os mapas do OpenStreetMap num blog&lt;br /&gt;
&lt;br /&gt;
=== Requisitos ===&lt;br /&gt;
&lt;br /&gt;
* Computador c/ algum espaço livre&lt;br /&gt;
* Dados: serão descarregados na hora, a partir de: http://openstreetmap.pt/wp-content/uploads/&lt;br /&gt;
* Software&lt;br /&gt;
** QGIS 2.18.17 LTR&lt;br /&gt;
** Postgresql v9.6 + PostGIS (não é preciso instalar; haverá um servidor na sala)&lt;br /&gt;
** Instalar o MAPS.ME no telemóvel&lt;br /&gt;
&lt;br /&gt;
== Publicação na Web com Geoserver ==&lt;br /&gt;
&lt;br /&gt;
[[Servidores de mapas: conceitos]]&lt;br /&gt;
&lt;br /&gt;
[[Instalação do Geoserver]]&lt;br /&gt;
&lt;br /&gt;
[[Disponibilização de uma camada WMS/WFS]]&lt;br /&gt;
&lt;br /&gt;
[[Disponibilização de uma camada WMTS]]&lt;br /&gt;
&lt;br /&gt;
[[Publicação de grupos]]&lt;br /&gt;
&lt;br /&gt;
== Publicação na Web com uMap ==&lt;br /&gt;
&lt;br /&gt;
A plataforma uMap permite criar mapas de uma forma simples. Os mapas criados podem ser incorporados num blog ou num site.&lt;br /&gt;
&lt;br /&gt;
[[O meu primeiro mapa com o uMap]]&lt;br /&gt;
&lt;br /&gt;
== Drones ==&lt;br /&gt;
&lt;br /&gt;
[[DJI MAVIC 2 PRO]]&lt;br /&gt;
&lt;br /&gt;
[[Flight planner]]&lt;br /&gt;
&lt;br /&gt;
[[Running OpenDroneMap]]&lt;br /&gt;
&lt;br /&gt;
== Contribuir para projectos Open Source no domínio dos SIG ==&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o Nominatim]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para plugins QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o OpenTripPlanner]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o GeoExt]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o PostGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o curso PostGIS com Rasters]]&lt;br /&gt;
&lt;br /&gt;
= Outros cursos e recursos =&lt;br /&gt;
&lt;br /&gt;
[http://training.gismentors.eu/isprs-summer-school-2016/index.html ISPRS Congress 2016 Summer School]&lt;br /&gt;
&lt;br /&gt;
[http://training.gismentors.eu/grass-gis-workshop-jena-2018/index.html GRASS GIS Workshop in Jena]&lt;br /&gt;
&lt;br /&gt;
[https://www.hatarilabs.com/ih-en/working-with-sentinel-2-imagery-on-qgis Working with Sentinel 2 Imagery on QGIS]&lt;br /&gt;
&lt;br /&gt;
[https://uwgis.wordpress.com/gis-practicals/flood-risk-mapping/ QGIS Flood Risk Mapping]&lt;br /&gt;
&lt;br /&gt;
[[Spatial-Temporal Data Analysis]]&lt;br /&gt;
&lt;br /&gt;
[[Geospatial Data Mining]]&lt;br /&gt;
&lt;br /&gt;
[[Como gravar cursos em vídeo]]&lt;br /&gt;
&lt;br /&gt;
= Propostas =&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Generalização Cartográfica]], em parceria com IBGE&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Deteção de estradas em imagens Sentinel-2]], em parceria com IBGE&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Ler cartas náuticas]], em parceria com a comunidade QGIS e de acordo com esta [https://github.com/faunalia/qnavigate proposta de melhoramento]&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Carregar informação meteorológica]], em parceria com a comunidade QGIS e de acordo com esta [https://github.com/faunalia/qnavigate proposta de melhoramento]&lt;br /&gt;
&lt;br /&gt;
[[QGIS:Plugin para dados do INE]]&lt;br /&gt;
&lt;br /&gt;
[[QGIS:Plugin para sobre a Saúde em Portugal]]&lt;br /&gt;
&lt;br /&gt;
= Modelo Topográfico =&lt;br /&gt;
&lt;br /&gt;
http://www.dgterritorio.gov.pt/recart/TRANSPORTES%20(Transporte%20rodovi%C3%A1rio)/CatalogoDasViasRodoviariasParte2.html&lt;br /&gt;
&lt;br /&gt;
http://www.dgterritorio.gov.pt/recart/TRANSPORTES%20(Transporte%20rodovi%C3%A1rio)/CatalogoDasViasRodoviariasParte2UTF-8_20190703.csv&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi sed.txt&lt;br /&gt;
&lt;br /&gt;
1s/codigoViaRodov/codigo_via_rodov/&lt;br /&gt;
1s/tipoViaRodovC/tipo_rodovia_c/&lt;br /&gt;
1s/codigoDGT/codigo_dgt/&lt;br /&gt;
1s/codigoArruamento/codigo_arruamento/&lt;br /&gt;
1s/tipoViaRodovD/tipo_rodovia_d/&lt;br /&gt;
1s/tipoViaRodovAbv/tipo_rodovia_abv/&lt;br /&gt;
1s/nomeSufixo/nome_sufixo/&lt;br /&gt;
1s/nomeAlternativo/nome_alternativo/&lt;br /&gt;
1s/pontosExtremoseIntermedios/pontos_extremos_e_intermedios/&lt;br /&gt;
1s/lugarINEcod/lugar_ine_cod/&lt;br /&gt;
1s/fonteAquisicaoDados/fonte_aquisicao_dados/&lt;br /&gt;
1s/dataEdital/data_edital/&lt;br /&gt;
1s/DICOFRE/dicofre/&lt;br /&gt;
1s/DICO/dico/&lt;br /&gt;
1s/DI/di/&lt;br /&gt;
1s/CO/co/&lt;br /&gt;
1s/dataCat/data_cat/&lt;br /&gt;
&lt;br /&gt;
sed -f sed.txt -i CatalogoDasViasRodoviariasParte2UTF-8_20190703.csv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Como_gravar_cursos_em_v%C3%ADdeo&amp;diff=965</id>
		<title>Como gravar cursos em vídeo</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Como_gravar_cursos_em_v%C3%ADdeo&amp;diff=965"/>
		<updated>2020-03-26T23:51:18Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Aplicações ===&lt;br /&gt;
&lt;br /&gt;
==== Screen capture ====&lt;br /&gt;
&lt;br /&gt;
RecordMyDesktop - Só a área da janela da aplicação (QGIS, Firefox, etc). Nas opções retirar as decorações (da janela).&lt;br /&gt;
&lt;br /&gt;
Por o fundo do desktop amarelo&lt;br /&gt;
&lt;br /&gt;
Preparar a janela&lt;br /&gt;
&lt;br /&gt;
Usar a resolução 1280x720&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;Usar a resolução 1366x768 &amp;#039;&amp;#039;(Standardized HDTV 720p/1080i displays or “HD ready”, used in most cheaper notebooks)&amp;#039;&amp;#039;&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install wmctrl&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/dev/scrcpy/x$ wmctrl -lG&lt;br /&gt;
0x02200002 -1 7054 54   313  763  zoe conky (zoe)&lt;br /&gt;
0x05a00010  0 1930 64   1808 1052 zoe command line - How do I find the window dimensions and position accurately including decorations? - Unix &amp;amp; Linux Stack Exchange - Mozilla Firefox&lt;br /&gt;
0x06c00006  0 10   91   960  1025 zoe jgr@zoe: ~/dev/scrcpy/x&lt;br /&gt;
0x07a00003  0 87   171  567  692  zoe Controlo de Volume&lt;br /&gt;
0x06009d29  0 3964 96   1299 939  zoe Formulários&lt;br /&gt;
0x06e00010  0 440  208  1280 720  N/A *exercicio - QGIS 6a2c31d897&lt;br /&gt;
0x0605e92f  0 -72  -10  1583 1097 zoe Pasta pessoal&lt;br /&gt;
0x07800017  0 0    83   1920 1025 N/A Untitled* / HD 1080p 25 fps — Kdenlive&lt;br /&gt;
0x06c0672a  0 34   566  654  434  zoe jgr@zoe: ~&lt;br /&gt;
&lt;br /&gt;
wmctrl -r &amp;quot;Untitled Project - QGIS 6a2c31d897&amp;quot; -e 0,633,265,1280,720&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Anotações no ecrã ====&lt;br /&gt;
&lt;br /&gt;
http://manpages.ubuntu.com/manpages/cosmic/man1/gromit-mpx.1.html&lt;br /&gt;
&lt;br /&gt;
sudo apt install gromit-mpx&lt;br /&gt;
&lt;br /&gt;
Começa: F9&lt;br /&gt;
Shift F9&lt;br /&gt;
draw/Shift draw&lt;br /&gt;
&lt;br /&gt;
==== Telemóvel como WebCam ====&lt;br /&gt;
&lt;br /&gt;
Usar o [https://github.com/Genymobile/scrcpy scrcpy] para controlar a câmara.&lt;br /&gt;
&lt;br /&gt;
Instalar a partir das sources ou com snap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/dev/scrcpy&lt;br /&gt;
git pull origin master&lt;br /&gt;
rm -rf x&lt;br /&gt;
export ANDROID_HOME=~/Android/Sdk&lt;br /&gt;
meson x --buildtype release --strip -Db_lto=true&lt;br /&gt;
cd x&lt;br /&gt;
ninja&lt;br /&gt;
sudo ninja install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-11-18 16-50-59.png]]&lt;br /&gt;
&lt;br /&gt;
Ligar por Wifi (na mesma rede)&lt;br /&gt;
&lt;br /&gt;
Começar com a ligação por USB, para configurar o &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;adb&amp;lt;/syntaxhighlight&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ligar USB. (Tem que se permitir &amp;quot;Depuração por USB&amp;quot;, nas &amp;quot;Opções do programador&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~$ adb devices&lt;br /&gt;
List of devices attached&lt;br /&gt;
ce071717210b872104	device&lt;br /&gt;
&lt;br /&gt;
adb disconnect&lt;br /&gt;
&lt;br /&gt;
# then choose one of these depending on how you are connecting to your device&lt;br /&gt;
# adb usb // for usb&lt;br /&gt;
# adb tcpip 5555 // for adb over wifi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descobrir o IP do telefone&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~$ arp -a&lt;br /&gt;
unknown80b234059058.lan (192.168.1.65) em 80:b2:34:05:90:58 [ether] em wlp2s0&lt;br /&gt;
vodafonegw (192.168.1.1) em 50:1d:93:b8:f6:21 [ether] em wlp2s0&lt;br /&gt;
Sternschanze.lan (192.168.1.66) em 24:18:1d:0e:c3:66 [ether] em wlp2s0&lt;br /&gt;
&lt;br /&gt;
adb tcpip 5555&lt;br /&gt;
adb connect 192.168.1.66:5555&lt;br /&gt;
&lt;br /&gt;
# desligar o cabo USB (para não ter dois devices, um por USB e outro por rede)&lt;br /&gt;
&lt;br /&gt;
scrcpy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Kdenlive ====&lt;br /&gt;
&lt;br /&gt;
==== Audacity ====&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Microfone - KIMU PRO: ligar ao telemóvel&lt;br /&gt;
&lt;br /&gt;
Webcam: usar a câmara do telemóvel&lt;br /&gt;
&lt;br /&gt;
Computador&lt;br /&gt;
&lt;br /&gt;
=== Guiões ===&lt;br /&gt;
&lt;br /&gt;
[[Curso de QGIS]]&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Explorar_o_QGIS_a_partir_do_Python&amp;diff=963</id>
		<title>Explorar o QGIS a partir do Python</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Explorar_o_QGIS_a_partir_do_Python&amp;diff=963"/>
		<updated>2020-01-28T14:37:40Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;https://courses.spatialthoughts.com/pyqgis-in-a-day.html#set-canvas-extent-to-a-layer-extent&lt;br /&gt;
&lt;br /&gt;
QGIS 3 standalone Python script&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/jgrocha/d75d50305e49ba044ff84e96a28f4ed8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#import re&lt;br /&gt;
#for alg in QgsApplication.processingRegistry().algorithms():&lt;br /&gt;
#    if re.match(&amp;#039;.*Clip.*&amp;#039;, alg.displayName()):&lt;br /&gt;
#        # gdal:cliprasterbymasklayer&lt;br /&gt;
#        print(alg.id(), &amp;quot;-&amp;gt;&amp;quot;, alg.displayName())&lt;br /&gt;
&lt;br /&gt;
# processing.algorithmHelp(&amp;quot;gdal:cliprasterbymasklayer&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
base_layer = iface.activeLayer()&lt;br /&gt;
# features = layer.getFeatures()&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;selectedFeaturesOnly&amp;#039;: False&lt;br /&gt;
# QgsProcessingFeatureSourceDefinition(base_layer.id(), False)&lt;br /&gt;
&lt;br /&gt;
processing.run(&amp;quot;native:buffer&amp;quot;, &lt;br /&gt;
            {&amp;#039;INPUT&amp;#039;: QgsProcessingFeatureSourceDefinition(base_layer.id(), False),&lt;br /&gt;
              &amp;#039;DISTANCE&amp;#039;: 100.0,&lt;br /&gt;
              &amp;#039;SEGMENTS&amp;#039;: 10,&lt;br /&gt;
              &amp;#039;DISSOLVE&amp;#039;: True,&lt;br /&gt;
              &amp;#039;END_CAP_STYLE&amp;#039;: 0,&lt;br /&gt;
              &amp;#039;JOIN_STYLE&amp;#039;: 0,&lt;br /&gt;
              &amp;#039;MITER_LIMIT&amp;#039;: 10,&lt;br /&gt;
              &amp;#039;OUTPUT&amp;#039;: &amp;#039;/tmp/buffers.shp&amp;#039;})&lt;br /&gt;
              &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Spatial-Temporal_Data_Analysis&amp;diff=961</id>
		<title>Spatial-Temporal Data Analysis</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Spatial-Temporal_Data_Analysis&amp;diff=961"/>
		<updated>2020-01-15T23:42:38Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: Created page with &amp;quot; === Datasets ===  [https://marinecadastre.gov/ais/ Vessel Traffic Data]  === Software ===  Postgresql  QGIS + Time manager plugin  [http://madlib.apache.org/ Apache MADlib: B...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
[https://marinecadastre.gov/ais/ Vessel Traffic Data]&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
Postgresql&lt;br /&gt;
&lt;br /&gt;
QGIS + Time manager plugin&lt;br /&gt;
&lt;br /&gt;
[http://madlib.apache.org/ Apache MADlib: Big Data Machine Learning in SQL]&lt;br /&gt;
&lt;br /&gt;
[https://www.knime.com/knime-analytics-platform KNIME platform (open source)]&lt;br /&gt;
&lt;br /&gt;
=== Machine Learning ===&lt;br /&gt;
&lt;br /&gt;
[https://www.cs.waikato.ac.nz/ml/weka/ WEKA The workbench for machine learning]&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Main_Page&amp;diff=959</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Main_Page&amp;diff=959"/>
		<updated>2020-01-15T23:08:52Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Outros cursos e recursos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Apresentação =&lt;br /&gt;
&lt;br /&gt;
A formação e a disponibilização de conteúdos faz parte do ADN da Geomaster. Neste espaço, estamos a juntar todos os conteúdos das nossas formações, que ainda estão dispersos por vários sítios.&lt;br /&gt;
&lt;br /&gt;
== Onde e como pedir ajuda? ==&lt;br /&gt;
&lt;br /&gt;
[https://lists.osgeo.org/mailman/listinfo/portugal Lista portuguesa da OSGeo]&lt;br /&gt;
&lt;br /&gt;
[https://lists.osgeo.org/mailman/listinfo/qgis-user Lista internacional do QGIS]&lt;br /&gt;
&lt;br /&gt;
https://gis.stackexchange.com/&lt;br /&gt;
&lt;br /&gt;
A Geomaster está oferecer suporte ao QGIS, de forma gratuita. Use o centro de suporte disponível em [https://ticket.geomaster.pt/open.php?lang=pt_PT ticket.geomaster.pt].&lt;br /&gt;
&lt;br /&gt;
Antes de pedir ajuda, faça o trabalho de casa. Pesquise na net se a questão já foi levantada e resolvida.&lt;br /&gt;
&lt;br /&gt;
Para procurar nas listas do QGIS, use o endereço: http://osgeo-org.1560.x6.nabble.com/QGIS-f4099105.html&lt;br /&gt;
&lt;br /&gt;
= Requisitos =&lt;br /&gt;
&lt;br /&gt;
Para fazer os exercícios propostos, precisa de ter algum espaço livre e o software necessário instalado. Os exercícios são independentes do sistema operativo: tanto pode usar Linux, Windows ou macOS.&lt;br /&gt;
&lt;br /&gt;
== Máquina virtual OSGeo Live ==&lt;br /&gt;
&lt;br /&gt;
Uma boa alternativa para a formação é a utilização da máquina virtual [https://live.osgeo.org/en/index.html OSGeo Live] que já tem todo o software SIG necessário.&lt;br /&gt;
&lt;br /&gt;
= Conteúdos =&lt;br /&gt;
&lt;br /&gt;
== Sentinel-2 Image processing using QGIS+SCP ==&lt;br /&gt;
&lt;br /&gt;
Notes from Sentinel-2 Image processing using QGIS+SCP course at Skovskolen, Nødebo.&lt;br /&gt;
&lt;br /&gt;
Documentation:&lt;br /&gt;
&lt;br /&gt;
[https://readthedocs.org/projects/semiautomaticclassificationmanual/downloads/pdf/latest/ Semi-Automatic Classification Plugin Documentation]&lt;br /&gt;
&lt;br /&gt;
[[Installing SCP in Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
[[Create a Copernicus Open Access Hub account]]&lt;br /&gt;
&lt;br /&gt;
[[Search and download Sentinel-2 images]]&lt;br /&gt;
&lt;br /&gt;
[[Search and download Landsat 8 images]]&lt;br /&gt;
&lt;br /&gt;
[[Radiance to reflectance]]&lt;br /&gt;
&lt;br /&gt;
[[Clip Sentinel-2 images]]&lt;br /&gt;
&lt;br /&gt;
[[Band compositions]]&lt;br /&gt;
&lt;br /&gt;
[[Export band compositions]]&lt;br /&gt;
&lt;br /&gt;
[[Raster algebra: calculating indexes]]&lt;br /&gt;
&lt;br /&gt;
[[Unsupervised classification]]&lt;br /&gt;
&lt;br /&gt;
[[Supervised  classification]]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
https://earth.esa.int/web/sentinel/technical-guides/sentinel-2-msi/msi-instrument&lt;br /&gt;
&lt;br /&gt;
http://esa-sen4cap.org/content/eo-products&lt;br /&gt;
&lt;br /&gt;
https://sentinel.esa.int/web/sentinel/user-guides/sentinel-2-msi/document-library&lt;br /&gt;
&lt;br /&gt;
https://www.indexdatabase.de/db/s-single.php?id=96&lt;br /&gt;
&lt;br /&gt;
https://land.copernicus.eu/global/products/ba&lt;br /&gt;
&lt;br /&gt;
https://fromgistors.blogspot.com/2016/11/from-image-download-to-ndvi-calculation.html&lt;br /&gt;
&lt;br /&gt;
http://www.qgis.pt/blog/2016/12/14/detecao-remota-com-o-qgis/ (em Português)&lt;br /&gt;
&lt;br /&gt;
== Wikidata Sixth Birthday ==&lt;br /&gt;
&lt;br /&gt;
[[File:Birthday banner for 4th Wikidata Birthday.png]]&lt;br /&gt;
&lt;br /&gt;
=== Objectivo ===&lt;br /&gt;
&lt;br /&gt;
Fazer uma mapa:&lt;br /&gt;
# Mostrar as ruas, largos, praças e outros espaços com topónimos&lt;br /&gt;
# Poder filtrar por:&lt;br /&gt;
## sexo&lt;br /&gt;
## ocupação (religioso, militar poeta, escritor, político...&lt;br /&gt;
## século&lt;br /&gt;
## etc&lt;br /&gt;
&lt;br /&gt;
Eventualmente, fazer um quantos gráficos, com percentagens:&lt;br /&gt;
# topónimos com nome de pessoas versus outras origens&lt;br /&gt;
# nomes de mulheres versus nomes de homens&lt;br /&gt;
# políticos versus artes e ciências&lt;br /&gt;
&lt;br /&gt;
=== Problema ===&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap não existe informação sobre as propriedades do topónimo. O topónimo pode estar escrito de diversas formas e contém partes que não interessam (Rua, Avenida, Prof, Doutor, etc). (Nota: cruzar com o dataset da [http://centraldedados.pt/codigos_postais/ Central de Dados dos Códigos Postais]).&lt;br /&gt;
&lt;br /&gt;
A [https://www.openstreetmap.org/way/35997529#map=16/41.1809/-8.6094 Rua de São Tomé] refere-se a uma pessoa? &lt;br /&gt;
&lt;br /&gt;
Rua Egas Moniz. Qual [https://pt.wikipedia.org/wiki/Egas_Moniz Egas Moniz]?&lt;br /&gt;
&lt;br /&gt;
==== Solução ====&lt;br /&gt;
&lt;br /&gt;
Wikidata! Diferença entre a página da [https://pt.wikipedia.org/wiki/Ant%C3%B3nio_Egas_Moniz Wikipédia do Egas Moniz] e a da [https://www.wikidata.org/wiki/Q273219 Wikidata da mesma pessoa].&lt;br /&gt;
&lt;br /&gt;
Criei a entidade: https://www.wikidata.org/wiki/Q58129518&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap já se usa uma tag [https://wiki.openstreetmap.org/wiki/Key:wikidata wikidata] para entidades geográficas bem conhecidas, como a [https://www.openstreetmap.org/way/247168260 Torre dos Clérigos].&lt;br /&gt;
&lt;br /&gt;
Existe uma proposta para acrescentar a origem de um determinado nome, usando a tag [https://wiki.openstreetmap.org/wiki/Key:name:etymology name:etymology].&lt;br /&gt;
&lt;br /&gt;
==== Limitações ====&lt;br /&gt;
&lt;br /&gt;
Nem tudo está na Wikidata. Na verdade, existe pouca informação (sobre Portugal) no Wikidata.&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap também não há muitas tags wikidata.&lt;br /&gt;
&lt;br /&gt;
==== Resolução das limitações ====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Editar o OpenStreetMap e a Wikidata!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Nota: área pantanosa em relação às licenças: CC-0 versus ODBL.&lt;br /&gt;
&lt;br /&gt;
==== Outras fontes de dados ====&lt;br /&gt;
&lt;br /&gt;
Central de dados&lt;br /&gt;
&lt;br /&gt;
http://centraldedados.pt/nomes_proprios/&lt;br /&gt;
&lt;br /&gt;
https://genderize.io/&lt;br /&gt;
&lt;br /&gt;
==== Algum código de base ====&lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/pdiasalmeida/osm-street-names&lt;br /&gt;
&lt;br /&gt;
== Open Data Day, 2018 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Logo odd 2018.png]]&lt;br /&gt;
&lt;br /&gt;
[[Introdução ao OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
[[Serviços sobre os dados do OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
[[Dados OpenStreetMap no QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Dados OpenStreetMap no PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
[[OpenStreetMap API]]&lt;br /&gt;
&lt;br /&gt;
[[Routing com os dados do OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
== SIG desktop com QGIS ==&lt;br /&gt;
&lt;br /&gt;
Introdução à interface do QGIS, a visualização complementar de geometrias e dados, filtrar, selecionar, expressões, trabalhar com a seleção, etc.&lt;br /&gt;
&lt;br /&gt;
[[Instalação QGIS no Windows com base no OSGeo4W]]&lt;br /&gt;
&lt;br /&gt;
Instalação da primeira extensão [https://plugins.qgis.org/plugins/quick_map_services/ QuickMapServices].&lt;br /&gt;
&lt;br /&gt;
Os dados vectoriais referem-se a entidades que têm uma componente espacial (geográfica) e um conjunto de atributos.&lt;br /&gt;
&lt;br /&gt;
[[Explorar dados vectoriais]]&lt;br /&gt;
&lt;br /&gt;
[[Georreferenciação de imagens e criação de camadas]]&lt;br /&gt;
&lt;br /&gt;
[[Edição de dados vetoriais]]&lt;br /&gt;
&lt;br /&gt;
[[Geração de um modelo digital do terreno]]&lt;br /&gt;
&lt;br /&gt;
Acrescentar melhorias aos formulários:&lt;br /&gt;
# campos que se atualizam automaticamente&lt;br /&gt;
# joins e formulários com combox&lt;br /&gt;
# um exemplo de uma relação master → detail&lt;br /&gt;
&lt;br /&gt;
[[Ligação a uma base de dados Postgresql]]&lt;br /&gt;
&lt;br /&gt;
[[Análise espacial com rasters]]&lt;br /&gt;
&lt;br /&gt;
==== Para rever ou eliminar... ====&lt;br /&gt;
&lt;br /&gt;
[[Geoprocessamento]]&lt;br /&gt;
&lt;br /&gt;
[[Criar camadas vectoriais]]&lt;br /&gt;
&lt;br /&gt;
Os dados raster referem-se a superfícies contínuas, cujas propriedades se vão alterando ao longo da superfície.&lt;br /&gt;
&lt;br /&gt;
Visualizar dados raster, calculadora raster, calcular o aspecto, declives, mostrar um perfil.&lt;br /&gt;
&lt;br /&gt;
[[Explorar dados raster]]&lt;br /&gt;
&lt;br /&gt;
Cruzar camadas, associar imagens, associar ações a entidades geográficas&lt;br /&gt;
&lt;br /&gt;
[[Cruzar dados vectoriais]]&lt;br /&gt;
&lt;br /&gt;
Introdução à análise espacial: cálculo de áreas de influência, recorte em função da localização, etc.&lt;br /&gt;
&lt;br /&gt;
[[Introdução à análise espacial]]&lt;br /&gt;
&lt;br /&gt;
[[Georreferenciação de mapas]]&lt;br /&gt;
&lt;br /&gt;
[[Criação de camadas]]&lt;br /&gt;
&lt;br /&gt;
[[Teste de auto-avaliação]]&lt;br /&gt;
&lt;br /&gt;
== SIG desktop com QGIS: Tópicos avançados ==&lt;br /&gt;
&lt;br /&gt;
[[Exercício de aquecimento]]&lt;br /&gt;
&lt;br /&gt;
[[QGIS com Postgresql]]&lt;br /&gt;
&lt;br /&gt;
[[Edição de informação geográfica]]&lt;br /&gt;
&lt;br /&gt;
O processamento com o QGIS é tão assustador como fabuloso. Assustador pela diversidade de alternativas que apresenta e fabuloso pela mesma razão. Além de todas as capacidades de processamento que tem no próprio código, O QGIS liga-se muito bem a outros software de processamento, como o GRASS, SAGA, Orfeo Toolbox, etc.&lt;br /&gt;
&lt;br /&gt;
[[Processamento em QGIS]]&lt;br /&gt;
&lt;br /&gt;
As imagens Sentinel são disponibilizadas pela ESA. O tratamento de imagens Sentinel-2 com a extensão [https://fromgistors.blogspot.com/p/semi-automatic-classification-plugin.html Semi-Automatic Classification Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Tratamento de imagens Sentinel]]&lt;br /&gt;
&lt;br /&gt;
As imagens raster podem ser geridas a partir do sistema de ficheiros ou a partir da base de dados Postgresql.&lt;br /&gt;
&lt;br /&gt;
[[Suporte Postgresql para rasters]]&lt;br /&gt;
&lt;br /&gt;
O QGIS está escrito em C++ que é uma linguagem orientado a objetos, que gera código muito eficiente. O QGIS usa a biblioteca QT para todas as componentes de interface com o utilizador.&lt;br /&gt;
Embora todo o núcleo esteja em C++, todas as funcionalidades são expostas para outras aplicações através de uma API que pode ser invocada a partir do Python. Ou seja, a partir de um programa Python, podemos comandar o QGIS e tirar partido de todas as suas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
[[Explorar o QGIS a partir do Python]]&lt;br /&gt;
&lt;br /&gt;
[[QField: o QGIS ao ar livre]]&lt;br /&gt;
&lt;br /&gt;
[[Sobre a preparação desta formação]]&lt;br /&gt;
&lt;br /&gt;
== Base de dados espaciais com Postgresql ==&lt;br /&gt;
&lt;br /&gt;
== Data ==&lt;br /&gt;
&lt;br /&gt;
[https://resourcewatch.org/ Resource Watch – Monitoring the Planet&amp;#039;s Pulse]&lt;br /&gt;
&lt;br /&gt;
== Spatial Data Mining ==&lt;br /&gt;
&lt;br /&gt;
* [https://geodacenter.github.io/ GeoDa] is a free and open source software tool that serves as an introduction to spatial data analysis.&lt;br /&gt;
* [https://github.com/MapPlus/spatial_statistics_for_geotools_udig GeoAnalysis library] is a java-based open source for geospatial analysis.&lt;br /&gt;
&lt;br /&gt;
== QGIS na área da Saúde ==&lt;br /&gt;
&lt;br /&gt;
[https://plugins.qgis.org/plugins/GeoHealth/ Plugin GeoHealth]&lt;br /&gt;
&lt;br /&gt;
== QGIS na área da Arqueologia ==&lt;br /&gt;
&lt;br /&gt;
Tratamento dos arqueossítios em http://www.geira.pt/arqueo/ListaArqueossitios.html&lt;br /&gt;
&lt;br /&gt;
xml disponível em: http://www4.di.uminho.pt/~jcr/XML/didac/xmldocs/arq.xml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget http://www4.di.uminho.pt/~jcr/XML/didac/xmldocs/arq.xml&lt;br /&gt;
xsltproc sample.xsl arq.xml &amp;gt; arq.csv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:output type=&amp;quot;text&amp;quot; indent=&amp;quot;no&amp;quot; omit-xml-declaration=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;xsl:strip-space elements=&amp;quot;*&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;//ARQELEM&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:value-of select=&amp;quot;normalize-space(IDENTI)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(DESCRI)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(CRONO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(FREGUE)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(CONCEL)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(LATITU)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(LONGIT)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(ALTITU)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(ACESSO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(QUADRO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(TRAARQ)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(DESARQ)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(INTERP)&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tratamento manual:&lt;br /&gt;
&lt;br /&gt;
coordenadas: multiplicar por 1000&lt;br /&gt;
&lt;br /&gt;
usar o separador de campos: |&lt;br /&gt;
&lt;br /&gt;
usar o delimitador de campos: &amp;#039;&lt;br /&gt;
&lt;br /&gt;
Sistemas de coordenadas: EPSG:20790&lt;br /&gt;
&lt;br /&gt;
Resultado final: arqueossitios.csv&lt;br /&gt;
&lt;br /&gt;
=== Portal do Arqueólogo ===&lt;br /&gt;
&lt;br /&gt;
Acabei por sacar pelo QGIS, ligando-me ao servidor.&lt;br /&gt;
&lt;br /&gt;
Dados de ligação:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sacar lista de sítios ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
mkdir -p portalarqueologo&lt;br /&gt;
for i in {1..1735}&lt;br /&gt;
do&lt;br /&gt;
	curl &amp;quot;http://arqueologia.patrimoniocultural.pt/index.php?sid=sitios&amp;amp;p=$i&amp;quot; -o portalarqueologo/$i.html&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd portalarqueologo/&lt;br /&gt;
sed -n -e &amp;#039;s/&amp;lt;td data-label=&amp;quot;Designação&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;\/index.php?sid=sitios\&amp;amp;subsid=\([0-9]\+\)&amp;quot;&amp;gt;\([^&amp;lt;]\+\)&amp;lt;\/a&amp;gt;&amp;lt;\/td&amp;gt;/\1\t\2\thttp:\/\/arqueologia.patrimoniocultural.pt\/index.php?sid=sitios\&amp;amp;subsid=\1/p&amp;#039; *.html | sed &amp;#039;s/^\s\+//g&amp;#039; &amp;gt; lista_sitios.csv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sacar sítios ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Extrair coordenadas ====&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/bin/sitios$ grep  &amp;#039;&amp;lt;div id=&amp;quot;singleListingMap&amp;quot; data-latitude=&amp;quot;[^&amp;quot;]\+&amp;quot; data-longitude=&amp;quot;[^&amp;quot;]\+&amp;quot; data-map-icon&amp;#039; *.html &amp;gt; x&lt;br /&gt;
&lt;br /&gt;
sed -n -e &amp;#039;s/\(^[0-9]\+\).html:\s\+&amp;lt;div id=&amp;quot;singleListingMap&amp;quot; data-latitude=&amp;quot;\([0-9.]\+\)&amp;quot; data-longitude=&amp;quot;\([-0-9.]\+\)&amp;quot;.\+$/\1\t\2\t\3/p&amp;#039; x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Monte da Matosa 2&amp;lt;/h2&amp;gt; Sítio &amp;lt;span title=&amp;quot;CNS&amp;quot;&amp;gt;(13709)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
grep &amp;#039;&amp;lt;h2&amp;gt;[^&amp;lt;]\+&amp;lt;/h2&amp;gt; Sítio &amp;lt;span title=&amp;quot;CNS&amp;quot;&amp;gt;([\d]\+)&amp;lt;/span&amp;gt;&amp;#039; *.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== QGIS ====&lt;br /&gt;
&lt;br /&gt;
Abrir lista_sitios.csv&lt;br /&gt;
&lt;br /&gt;
Abrir&lt;br /&gt;
&lt;br /&gt;
== Dados do OpenStreetMap ==&lt;br /&gt;
&lt;br /&gt;
* Introdução ao OpenStreetMap&lt;br /&gt;
* Dados do OpenStreetMap no QGIS&lt;br /&gt;
* Dados do OpenStreetMap no Postgresql&lt;br /&gt;
* Queries com OverPass API, http://overpass-turbo.eu/&lt;br /&gt;
* Routing com os dados do OpenStreetMap (OpenTripPlanner)&lt;br /&gt;
* Routing com MAPS.ME&lt;br /&gt;
* Usar os mapas do OpenStreetMap num blog&lt;br /&gt;
&lt;br /&gt;
=== Requisitos ===&lt;br /&gt;
&lt;br /&gt;
* Computador c/ algum espaço livre&lt;br /&gt;
* Dados: serão descarregados na hora, a partir de: http://openstreetmap.pt/wp-content/uploads/&lt;br /&gt;
* Software&lt;br /&gt;
** QGIS 2.18.17 LTR&lt;br /&gt;
** Postgresql v9.6 + PostGIS (não é preciso instalar; haverá um servidor na sala)&lt;br /&gt;
** Instalar o MAPS.ME no telemóvel&lt;br /&gt;
&lt;br /&gt;
== Publicação na Web com Geoserver ==&lt;br /&gt;
&lt;br /&gt;
[[Servidores de mapas: conceitos]]&lt;br /&gt;
&lt;br /&gt;
[[Instalação do Geoserver]]&lt;br /&gt;
&lt;br /&gt;
[[Disponibilização de uma camada WMS/WFS]]&lt;br /&gt;
&lt;br /&gt;
[[Disponibilização de uma camada WMTS]]&lt;br /&gt;
&lt;br /&gt;
[[Publicação de grupos]]&lt;br /&gt;
&lt;br /&gt;
== Publicação na Web com uMap ==&lt;br /&gt;
&lt;br /&gt;
A plataforma uMap permite criar mapas de uma forma simples. Os mapas criados podem ser incorporados num blog ou num site.&lt;br /&gt;
&lt;br /&gt;
[[O meu primeiro mapa com o uMap]]&lt;br /&gt;
&lt;br /&gt;
== Drones ==&lt;br /&gt;
&lt;br /&gt;
[[DJI MAVIC 2 PRO]]&lt;br /&gt;
&lt;br /&gt;
[[Flight planner]]&lt;br /&gt;
&lt;br /&gt;
[[Running OpenDroneMap]]&lt;br /&gt;
&lt;br /&gt;
== Contribuir para projectos Open Source no domínio dos SIG ==&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o Nominatim]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para plugins QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o OpenTripPlanner]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o GeoExt]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o PostGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o curso PostGIS com Rasters]]&lt;br /&gt;
&lt;br /&gt;
= Outros cursos e recursos =&lt;br /&gt;
&lt;br /&gt;
[http://training.gismentors.eu/isprs-summer-school-2016/index.html ISPRS Congress 2016 Summer School]&lt;br /&gt;
&lt;br /&gt;
[http://training.gismentors.eu/grass-gis-workshop-jena-2018/index.html GRASS GIS Workshop in Jena]&lt;br /&gt;
&lt;br /&gt;
[https://www.hatarilabs.com/ih-en/working-with-sentinel-2-imagery-on-qgis Working with Sentinel 2 Imagery on QGIS]&lt;br /&gt;
&lt;br /&gt;
[https://uwgis.wordpress.com/gis-practicals/flood-risk-mapping/ QGIS Flood Risk Mapping]&lt;br /&gt;
&lt;br /&gt;
[[Spatial-Temporal Data Analysis]]&lt;br /&gt;
&lt;br /&gt;
[[Geospatial Data Mining]]&lt;br /&gt;
&lt;br /&gt;
[[Como gravar cursos em vídeo]]&lt;br /&gt;
&lt;br /&gt;
= Propostas =&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Generalização Cartográfica]], em parceria com IBGE&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Deteção de estradas em imagens Sentinel-2]], em parceria com IBGE&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Ler cartas náuticas]], em parceria com a comunidade QGIS e de acordo com esta [https://github.com/faunalia/qnavigate proposta de melhoramento]&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Carregar informação meteorológica]], em parceria com a comunidade QGIS e de acordo com esta [https://github.com/faunalia/qnavigate proposta de melhoramento]&lt;br /&gt;
&lt;br /&gt;
[[QGIS:Plugin para dados do INE]]&lt;br /&gt;
&lt;br /&gt;
[[QGIS:Plugin para sobre a Saúde em Portugal]]&lt;br /&gt;
&lt;br /&gt;
= Modelo Topográfico =&lt;br /&gt;
&lt;br /&gt;
http://www.dgterritorio.gov.pt/recart/TRANSPORTES%20(Transporte%20rodovi%C3%A1rio)/CatalogoDasViasRodoviariasParte2.html&lt;br /&gt;
&lt;br /&gt;
http://www.dgterritorio.gov.pt/recart/TRANSPORTES%20(Transporte%20rodovi%C3%A1rio)/CatalogoDasViasRodoviariasParte2UTF-8_20190703.csv&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi sed.txt&lt;br /&gt;
&lt;br /&gt;
1s/codigoViaRodov/codigo_via_rodov/&lt;br /&gt;
1s/tipoViaRodovC/tipo_rodovia_c/&lt;br /&gt;
1s/codigoDGT/codigo_dgt/&lt;br /&gt;
1s/codigoArruamento/codigo_arruamento/&lt;br /&gt;
1s/tipoViaRodovD/tipo_rodovia_d/&lt;br /&gt;
1s/tipoViaRodovAbv/tipo_rodovia_abv/&lt;br /&gt;
1s/nomeSufixo/nome_sufixo/&lt;br /&gt;
1s/nomeAlternativo/nome_alternativo/&lt;br /&gt;
1s/pontosExtremoseIntermedios/pontos_extremos_e_intermedios/&lt;br /&gt;
1s/lugarINEcod/lugar_ine_cod/&lt;br /&gt;
1s/fonteAquisicaoDados/fonte_aquisicao_dados/&lt;br /&gt;
1s/dataEdital/data_edital/&lt;br /&gt;
1s/DICOFRE/dicofre/&lt;br /&gt;
1s/DICO/dico/&lt;br /&gt;
1s/DI/di/&lt;br /&gt;
1s/CO/co/&lt;br /&gt;
1s/dataCat/data_cat/&lt;br /&gt;
&lt;br /&gt;
sed -f sed.txt -i CatalogoDasViasRodoviariasParte2UTF-8_20190703.csv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Explorar_o_QGIS_a_partir_do_Python&amp;diff=957</id>
		<title>Explorar o QGIS a partir do Python</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Explorar_o_QGIS_a_partir_do_Python&amp;diff=957"/>
		<updated>2019-11-18T16:57:42Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;https://courses.spatialthoughts.com/pyqgis-in-a-day.html#set-canvas-extent-to-a-layer-extent&lt;br /&gt;
&lt;br /&gt;
QGIS 3 standalone Python script&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/jgrocha/d75d50305e49ba044ff84e96a28f4ed8&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Main_Page&amp;diff=955</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Main_Page&amp;diff=955"/>
		<updated>2019-10-03T13:36:16Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Propostas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Apresentação =&lt;br /&gt;
&lt;br /&gt;
A formação e a disponibilização de conteúdos faz parte do ADN da Geomaster. Neste espaço, estamos a juntar todos os conteúdos das nossas formações, que ainda estão dispersos por vários sítios.&lt;br /&gt;
&lt;br /&gt;
== Onde e como pedir ajuda? ==&lt;br /&gt;
&lt;br /&gt;
[https://lists.osgeo.org/mailman/listinfo/portugal Lista portuguesa da OSGeo]&lt;br /&gt;
&lt;br /&gt;
[https://lists.osgeo.org/mailman/listinfo/qgis-user Lista internacional do QGIS]&lt;br /&gt;
&lt;br /&gt;
https://gis.stackexchange.com/&lt;br /&gt;
&lt;br /&gt;
A Geomaster está oferecer suporte ao QGIS, de forma gratuita. Use o centro de suporte disponível em [https://ticket.geomaster.pt/open.php?lang=pt_PT ticket.geomaster.pt].&lt;br /&gt;
&lt;br /&gt;
Antes de pedir ajuda, faça o trabalho de casa. Pesquise na net se a questão já foi levantada e resolvida.&lt;br /&gt;
&lt;br /&gt;
Para procurar nas listas do QGIS, use o endereço: http://osgeo-org.1560.x6.nabble.com/QGIS-f4099105.html&lt;br /&gt;
&lt;br /&gt;
= Requisitos =&lt;br /&gt;
&lt;br /&gt;
Para fazer os exercícios propostos, precisa de ter algum espaço livre e o software necessário instalado. Os exercícios são independentes do sistema operativo: tanto pode usar Linux, Windows ou macOS.&lt;br /&gt;
&lt;br /&gt;
== Máquina virtual OSGeo Live ==&lt;br /&gt;
&lt;br /&gt;
Uma boa alternativa para a formação é a utilização da máquina virtual [https://live.osgeo.org/en/index.html OSGeo Live] que já tem todo o software SIG necessário.&lt;br /&gt;
&lt;br /&gt;
= Conteúdos =&lt;br /&gt;
&lt;br /&gt;
== Sentinel-2 Image processing using QGIS+SCP ==&lt;br /&gt;
&lt;br /&gt;
Notes from Sentinel-2 Image processing using QGIS+SCP course at Skovskolen, Nødebo.&lt;br /&gt;
&lt;br /&gt;
Documentation:&lt;br /&gt;
&lt;br /&gt;
[https://readthedocs.org/projects/semiautomaticclassificationmanual/downloads/pdf/latest/ Semi-Automatic Classification Plugin Documentation]&lt;br /&gt;
&lt;br /&gt;
[[Installing SCP in Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
[[Create a Copernicus Open Access Hub account]]&lt;br /&gt;
&lt;br /&gt;
[[Search and download Sentinel-2 images]]&lt;br /&gt;
&lt;br /&gt;
[[Search and download Landsat 8 images]]&lt;br /&gt;
&lt;br /&gt;
[[Radiance to reflectance]]&lt;br /&gt;
&lt;br /&gt;
[[Clip Sentinel-2 images]]&lt;br /&gt;
&lt;br /&gt;
[[Band compositions]]&lt;br /&gt;
&lt;br /&gt;
[[Export band compositions]]&lt;br /&gt;
&lt;br /&gt;
[[Raster algebra: calculating indexes]]&lt;br /&gt;
&lt;br /&gt;
[[Unsupervised classification]]&lt;br /&gt;
&lt;br /&gt;
[[Supervised  classification]]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
https://earth.esa.int/web/sentinel/technical-guides/sentinel-2-msi/msi-instrument&lt;br /&gt;
&lt;br /&gt;
http://esa-sen4cap.org/content/eo-products&lt;br /&gt;
&lt;br /&gt;
https://sentinel.esa.int/web/sentinel/user-guides/sentinel-2-msi/document-library&lt;br /&gt;
&lt;br /&gt;
https://www.indexdatabase.de/db/s-single.php?id=96&lt;br /&gt;
&lt;br /&gt;
https://land.copernicus.eu/global/products/ba&lt;br /&gt;
&lt;br /&gt;
https://fromgistors.blogspot.com/2016/11/from-image-download-to-ndvi-calculation.html&lt;br /&gt;
&lt;br /&gt;
http://www.qgis.pt/blog/2016/12/14/detecao-remota-com-o-qgis/ (em Português)&lt;br /&gt;
&lt;br /&gt;
== Wikidata Sixth Birthday ==&lt;br /&gt;
&lt;br /&gt;
[[File:Birthday banner for 4th Wikidata Birthday.png]]&lt;br /&gt;
&lt;br /&gt;
=== Objectivo ===&lt;br /&gt;
&lt;br /&gt;
Fazer uma mapa:&lt;br /&gt;
# Mostrar as ruas, largos, praças e outros espaços com topónimos&lt;br /&gt;
# Poder filtrar por:&lt;br /&gt;
## sexo&lt;br /&gt;
## ocupação (religioso, militar poeta, escritor, político...&lt;br /&gt;
## século&lt;br /&gt;
## etc&lt;br /&gt;
&lt;br /&gt;
Eventualmente, fazer um quantos gráficos, com percentagens:&lt;br /&gt;
# topónimos com nome de pessoas versus outras origens&lt;br /&gt;
# nomes de mulheres versus nomes de homens&lt;br /&gt;
# políticos versus artes e ciências&lt;br /&gt;
&lt;br /&gt;
=== Problema ===&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap não existe informação sobre as propriedades do topónimo. O topónimo pode estar escrito de diversas formas e contém partes que não interessam (Rua, Avenida, Prof, Doutor, etc). (Nota: cruzar com o dataset da [http://centraldedados.pt/codigos_postais/ Central de Dados dos Códigos Postais]).&lt;br /&gt;
&lt;br /&gt;
A [https://www.openstreetmap.org/way/35997529#map=16/41.1809/-8.6094 Rua de São Tomé] refere-se a uma pessoa? &lt;br /&gt;
&lt;br /&gt;
Rua Egas Moniz. Qual [https://pt.wikipedia.org/wiki/Egas_Moniz Egas Moniz]?&lt;br /&gt;
&lt;br /&gt;
==== Solução ====&lt;br /&gt;
&lt;br /&gt;
Wikidata! Diferença entre a página da [https://pt.wikipedia.org/wiki/Ant%C3%B3nio_Egas_Moniz Wikipédia do Egas Moniz] e a da [https://www.wikidata.org/wiki/Q273219 Wikidata da mesma pessoa].&lt;br /&gt;
&lt;br /&gt;
Criei a entidade: https://www.wikidata.org/wiki/Q58129518&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap já se usa uma tag [https://wiki.openstreetmap.org/wiki/Key:wikidata wikidata] para entidades geográficas bem conhecidas, como a [https://www.openstreetmap.org/way/247168260 Torre dos Clérigos].&lt;br /&gt;
&lt;br /&gt;
Existe uma proposta para acrescentar a origem de um determinado nome, usando a tag [https://wiki.openstreetmap.org/wiki/Key:name:etymology name:etymology].&lt;br /&gt;
&lt;br /&gt;
==== Limitações ====&lt;br /&gt;
&lt;br /&gt;
Nem tudo está na Wikidata. Na verdade, existe pouca informação (sobre Portugal) no Wikidata.&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap também não há muitas tags wikidata.&lt;br /&gt;
&lt;br /&gt;
==== Resolução das limitações ====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Editar o OpenStreetMap e a Wikidata!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Nota: área pantanosa em relação às licenças: CC-0 versus ODBL.&lt;br /&gt;
&lt;br /&gt;
==== Outras fontes de dados ====&lt;br /&gt;
&lt;br /&gt;
Central de dados&lt;br /&gt;
&lt;br /&gt;
http://centraldedados.pt/nomes_proprios/&lt;br /&gt;
&lt;br /&gt;
https://genderize.io/&lt;br /&gt;
&lt;br /&gt;
==== Algum código de base ====&lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/pdiasalmeida/osm-street-names&lt;br /&gt;
&lt;br /&gt;
== Open Data Day, 2018 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Logo odd 2018.png]]&lt;br /&gt;
&lt;br /&gt;
[[Introdução ao OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
[[Serviços sobre os dados do OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
[[Dados OpenStreetMap no QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Dados OpenStreetMap no PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
[[OpenStreetMap API]]&lt;br /&gt;
&lt;br /&gt;
[[Routing com os dados do OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
== SIG desktop com QGIS ==&lt;br /&gt;
&lt;br /&gt;
Introdução à interface do QGIS, a visualização complementar de geometrias e dados, filtrar, selecionar, expressões, trabalhar com a seleção, etc.&lt;br /&gt;
&lt;br /&gt;
[[Instalação QGIS no Windows com base no OSGeo4W]]&lt;br /&gt;
&lt;br /&gt;
Instalação da primeira extensão [https://plugins.qgis.org/plugins/quick_map_services/ QuickMapServices].&lt;br /&gt;
&lt;br /&gt;
Os dados vectoriais referem-se a entidades que têm uma componente espacial (geográfica) e um conjunto de atributos.&lt;br /&gt;
&lt;br /&gt;
[[Explorar dados vectoriais]]&lt;br /&gt;
&lt;br /&gt;
[[Georreferenciação de imagens e criação de camadas]]&lt;br /&gt;
&lt;br /&gt;
[[Edição de dados vetoriais]]&lt;br /&gt;
&lt;br /&gt;
[[Geração de um modelo digital do terreno]]&lt;br /&gt;
&lt;br /&gt;
Acrescentar melhorias aos formulários:&lt;br /&gt;
# campos que se atualizam automaticamente&lt;br /&gt;
# joins e formulários com combox&lt;br /&gt;
# um exemplo de uma relação master → detail&lt;br /&gt;
&lt;br /&gt;
[[Ligação a uma base de dados Postgresql]]&lt;br /&gt;
&lt;br /&gt;
[[Análise espacial com rasters]]&lt;br /&gt;
&lt;br /&gt;
==== Para rever ou eliminar... ====&lt;br /&gt;
&lt;br /&gt;
[[Geoprocessamento]]&lt;br /&gt;
&lt;br /&gt;
[[Criar camadas vectoriais]]&lt;br /&gt;
&lt;br /&gt;
Os dados raster referem-se a superfícies contínuas, cujas propriedades se vão alterando ao longo da superfície.&lt;br /&gt;
&lt;br /&gt;
Visualizar dados raster, calculadora raster, calcular o aspecto, declives, mostrar um perfil.&lt;br /&gt;
&lt;br /&gt;
[[Explorar dados raster]]&lt;br /&gt;
&lt;br /&gt;
Cruzar camadas, associar imagens, associar ações a entidades geográficas&lt;br /&gt;
&lt;br /&gt;
[[Cruzar dados vectoriais]]&lt;br /&gt;
&lt;br /&gt;
Introdução à análise espacial: cálculo de áreas de influência, recorte em função da localização, etc.&lt;br /&gt;
&lt;br /&gt;
[[Introdução à análise espacial]]&lt;br /&gt;
&lt;br /&gt;
[[Georreferenciação de mapas]]&lt;br /&gt;
&lt;br /&gt;
[[Criação de camadas]]&lt;br /&gt;
&lt;br /&gt;
[[Teste de auto-avaliação]]&lt;br /&gt;
&lt;br /&gt;
== SIG desktop com QGIS: Tópicos avançados ==&lt;br /&gt;
&lt;br /&gt;
[[Exercício de aquecimento]]&lt;br /&gt;
&lt;br /&gt;
[[QGIS com Postgresql]]&lt;br /&gt;
&lt;br /&gt;
[[Edição de informação geográfica]]&lt;br /&gt;
&lt;br /&gt;
O processamento com o QGIS é tão assustador como fabuloso. Assustador pela diversidade de alternativas que apresenta e fabuloso pela mesma razão. Além de todas as capacidades de processamento que tem no próprio código, O QGIS liga-se muito bem a outros software de processamento, como o GRASS, SAGA, Orfeo Toolbox, etc.&lt;br /&gt;
&lt;br /&gt;
[[Processamento em QGIS]]&lt;br /&gt;
&lt;br /&gt;
As imagens Sentinel são disponibilizadas pela ESA. O tratamento de imagens Sentinel-2 com a extensão [https://fromgistors.blogspot.com/p/semi-automatic-classification-plugin.html Semi-Automatic Classification Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Tratamento de imagens Sentinel]]&lt;br /&gt;
&lt;br /&gt;
As imagens raster podem ser geridas a partir do sistema de ficheiros ou a partir da base de dados Postgresql.&lt;br /&gt;
&lt;br /&gt;
[[Suporte Postgresql para rasters]]&lt;br /&gt;
&lt;br /&gt;
O QGIS está escrito em C++ que é uma linguagem orientado a objetos, que gera código muito eficiente. O QGIS usa a biblioteca QT para todas as componentes de interface com o utilizador.&lt;br /&gt;
Embora todo o núcleo esteja em C++, todas as funcionalidades são expostas para outras aplicações através de uma API que pode ser invocada a partir do Python. Ou seja, a partir de um programa Python, podemos comandar o QGIS e tirar partido de todas as suas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
[[Explorar o QGIS a partir do Python]]&lt;br /&gt;
&lt;br /&gt;
[[QField: o QGIS ao ar livre]]&lt;br /&gt;
&lt;br /&gt;
[[Sobre a preparação desta formação]]&lt;br /&gt;
&lt;br /&gt;
== Base de dados espaciais com Postgresql ==&lt;br /&gt;
&lt;br /&gt;
== Data ==&lt;br /&gt;
&lt;br /&gt;
[https://resourcewatch.org/ Resource Watch – Monitoring the Planet&amp;#039;s Pulse]&lt;br /&gt;
&lt;br /&gt;
== Spatial Data Mining ==&lt;br /&gt;
&lt;br /&gt;
* [https://geodacenter.github.io/ GeoDa] is a free and open source software tool that serves as an introduction to spatial data analysis.&lt;br /&gt;
* [https://github.com/MapPlus/spatial_statistics_for_geotools_udig GeoAnalysis library] is a java-based open source for geospatial analysis.&lt;br /&gt;
&lt;br /&gt;
== QGIS na área da Saúde ==&lt;br /&gt;
&lt;br /&gt;
[https://plugins.qgis.org/plugins/GeoHealth/ Plugin GeoHealth]&lt;br /&gt;
&lt;br /&gt;
== QGIS na área da Arqueologia ==&lt;br /&gt;
&lt;br /&gt;
Tratamento dos arqueossítios em http://www.geira.pt/arqueo/ListaArqueossitios.html&lt;br /&gt;
&lt;br /&gt;
xml disponível em: http://www4.di.uminho.pt/~jcr/XML/didac/xmldocs/arq.xml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget http://www4.di.uminho.pt/~jcr/XML/didac/xmldocs/arq.xml&lt;br /&gt;
xsltproc sample.xsl arq.xml &amp;gt; arq.csv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:output type=&amp;quot;text&amp;quot; indent=&amp;quot;no&amp;quot; omit-xml-declaration=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;xsl:strip-space elements=&amp;quot;*&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;//ARQELEM&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:value-of select=&amp;quot;normalize-space(IDENTI)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(DESCRI)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(CRONO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(FREGUE)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(CONCEL)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(LATITU)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(LONGIT)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(ALTITU)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(ACESSO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(QUADRO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(TRAARQ)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(DESARQ)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(INTERP)&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tratamento manual:&lt;br /&gt;
&lt;br /&gt;
coordenadas: multiplicar por 1000&lt;br /&gt;
&lt;br /&gt;
usar o separador de campos: |&lt;br /&gt;
&lt;br /&gt;
usar o delimitador de campos: &amp;#039;&lt;br /&gt;
&lt;br /&gt;
Sistemas de coordenadas: EPSG:20790&lt;br /&gt;
&lt;br /&gt;
Resultado final: arqueossitios.csv&lt;br /&gt;
&lt;br /&gt;
=== Portal do Arqueólogo ===&lt;br /&gt;
&lt;br /&gt;
Acabei por sacar pelo QGIS, ligando-me ao servidor.&lt;br /&gt;
&lt;br /&gt;
Dados de ligação:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sacar lista de sítios ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
mkdir -p portalarqueologo&lt;br /&gt;
for i in {1..1735}&lt;br /&gt;
do&lt;br /&gt;
	curl &amp;quot;http://arqueologia.patrimoniocultural.pt/index.php?sid=sitios&amp;amp;p=$i&amp;quot; -o portalarqueologo/$i.html&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd portalarqueologo/&lt;br /&gt;
sed -n -e &amp;#039;s/&amp;lt;td data-label=&amp;quot;Designação&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;\/index.php?sid=sitios\&amp;amp;subsid=\([0-9]\+\)&amp;quot;&amp;gt;\([^&amp;lt;]\+\)&amp;lt;\/a&amp;gt;&amp;lt;\/td&amp;gt;/\1\t\2\thttp:\/\/arqueologia.patrimoniocultural.pt\/index.php?sid=sitios\&amp;amp;subsid=\1/p&amp;#039; *.html | sed &amp;#039;s/^\s\+//g&amp;#039; &amp;gt; lista_sitios.csv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sacar sítios ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Extrair coordenadas ====&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/bin/sitios$ grep  &amp;#039;&amp;lt;div id=&amp;quot;singleListingMap&amp;quot; data-latitude=&amp;quot;[^&amp;quot;]\+&amp;quot; data-longitude=&amp;quot;[^&amp;quot;]\+&amp;quot; data-map-icon&amp;#039; *.html &amp;gt; x&lt;br /&gt;
&lt;br /&gt;
sed -n -e &amp;#039;s/\(^[0-9]\+\).html:\s\+&amp;lt;div id=&amp;quot;singleListingMap&amp;quot; data-latitude=&amp;quot;\([0-9.]\+\)&amp;quot; data-longitude=&amp;quot;\([-0-9.]\+\)&amp;quot;.\+$/\1\t\2\t\3/p&amp;#039; x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Monte da Matosa 2&amp;lt;/h2&amp;gt; Sítio &amp;lt;span title=&amp;quot;CNS&amp;quot;&amp;gt;(13709)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
grep &amp;#039;&amp;lt;h2&amp;gt;[^&amp;lt;]\+&amp;lt;/h2&amp;gt; Sítio &amp;lt;span title=&amp;quot;CNS&amp;quot;&amp;gt;([\d]\+)&amp;lt;/span&amp;gt;&amp;#039; *.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== QGIS ====&lt;br /&gt;
&lt;br /&gt;
Abrir lista_sitios.csv&lt;br /&gt;
&lt;br /&gt;
Abrir&lt;br /&gt;
&lt;br /&gt;
== Dados do OpenStreetMap ==&lt;br /&gt;
&lt;br /&gt;
* Introdução ao OpenStreetMap&lt;br /&gt;
* Dados do OpenStreetMap no QGIS&lt;br /&gt;
* Dados do OpenStreetMap no Postgresql&lt;br /&gt;
* Queries com OverPass API, http://overpass-turbo.eu/&lt;br /&gt;
* Routing com os dados do OpenStreetMap (OpenTripPlanner)&lt;br /&gt;
* Routing com MAPS.ME&lt;br /&gt;
* Usar os mapas do OpenStreetMap num blog&lt;br /&gt;
&lt;br /&gt;
=== Requisitos ===&lt;br /&gt;
&lt;br /&gt;
* Computador c/ algum espaço livre&lt;br /&gt;
* Dados: serão descarregados na hora, a partir de: http://openstreetmap.pt/wp-content/uploads/&lt;br /&gt;
* Software&lt;br /&gt;
** QGIS 2.18.17 LTR&lt;br /&gt;
** Postgresql v9.6 + PostGIS (não é preciso instalar; haverá um servidor na sala)&lt;br /&gt;
** Instalar o MAPS.ME no telemóvel&lt;br /&gt;
&lt;br /&gt;
== Publicação na Web com Geoserver ==&lt;br /&gt;
&lt;br /&gt;
[[Servidores de mapas: conceitos]]&lt;br /&gt;
&lt;br /&gt;
[[Instalação do Geoserver]]&lt;br /&gt;
&lt;br /&gt;
[[Disponibilização de uma camada WMS/WFS]]&lt;br /&gt;
&lt;br /&gt;
[[Disponibilização de uma camada WMTS]]&lt;br /&gt;
&lt;br /&gt;
[[Publicação de grupos]]&lt;br /&gt;
&lt;br /&gt;
== Publicação na Web com uMap ==&lt;br /&gt;
&lt;br /&gt;
A plataforma uMap permite criar mapas de uma forma simples. Os mapas criados podem ser incorporados num blog ou num site.&lt;br /&gt;
&lt;br /&gt;
[[O meu primeiro mapa com o uMap]]&lt;br /&gt;
&lt;br /&gt;
== Drones ==&lt;br /&gt;
&lt;br /&gt;
[[DJI MAVIC 2 PRO]]&lt;br /&gt;
&lt;br /&gt;
[[Flight planner]]&lt;br /&gt;
&lt;br /&gt;
[[Running OpenDroneMap]]&lt;br /&gt;
&lt;br /&gt;
== Contribuir para projectos Open Source no domínio dos SIG ==&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o Nominatim]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para plugins QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o OpenTripPlanner]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o GeoExt]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o PostGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o curso PostGIS com Rasters]]&lt;br /&gt;
&lt;br /&gt;
= Outros cursos e recursos =&lt;br /&gt;
&lt;br /&gt;
[http://training.gismentors.eu/isprs-summer-school-2016/index.html ISPRS Congress 2016 Summer School]&lt;br /&gt;
&lt;br /&gt;
[http://training.gismentors.eu/grass-gis-workshop-jena-2018/index.html GRASS GIS Workshop in Jena]&lt;br /&gt;
&lt;br /&gt;
[https://www.hatarilabs.com/ih-en/working-with-sentinel-2-imagery-on-qgis Working with Sentinel 2 Imagery on QGIS]&lt;br /&gt;
&lt;br /&gt;
[https://uwgis.wordpress.com/gis-practicals/flood-risk-mapping/ QGIS Flood Risk Mapping]&lt;br /&gt;
&lt;br /&gt;
[[Como gravar cursos em vídeo]]&lt;br /&gt;
&lt;br /&gt;
= Propostas =&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Generalização Cartográfica]], em parceria com IBGE&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Deteção de estradas em imagens Sentinel-2]], em parceria com IBGE&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Ler cartas náuticas]], em parceria com a comunidade QGIS e de acordo com esta [https://github.com/faunalia/qnavigate proposta de melhoramento]&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Carregar informação meteorológica]], em parceria com a comunidade QGIS e de acordo com esta [https://github.com/faunalia/qnavigate proposta de melhoramento]&lt;br /&gt;
&lt;br /&gt;
[[QGIS:Plugin para dados do INE]]&lt;br /&gt;
&lt;br /&gt;
[[QGIS:Plugin para sobre a Saúde em Portugal]]&lt;br /&gt;
&lt;br /&gt;
= Modelo Topográfico =&lt;br /&gt;
&lt;br /&gt;
http://www.dgterritorio.gov.pt/recart/TRANSPORTES%20(Transporte%20rodovi%C3%A1rio)/CatalogoDasViasRodoviariasParte2.html&lt;br /&gt;
&lt;br /&gt;
http://www.dgterritorio.gov.pt/recart/TRANSPORTES%20(Transporte%20rodovi%C3%A1rio)/CatalogoDasViasRodoviariasParte2UTF-8_20190703.csv&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi sed.txt&lt;br /&gt;
&lt;br /&gt;
1s/codigoViaRodov/codigo_via_rodov/&lt;br /&gt;
1s/tipoViaRodovC/tipo_rodovia_c/&lt;br /&gt;
1s/codigoDGT/codigo_dgt/&lt;br /&gt;
1s/codigoArruamento/codigo_arruamento/&lt;br /&gt;
1s/tipoViaRodovD/tipo_rodovia_d/&lt;br /&gt;
1s/tipoViaRodovAbv/tipo_rodovia_abv/&lt;br /&gt;
1s/nomeSufixo/nome_sufixo/&lt;br /&gt;
1s/nomeAlternativo/nome_alternativo/&lt;br /&gt;
1s/pontosExtremoseIntermedios/pontos_extremos_e_intermedios/&lt;br /&gt;
1s/lugarINEcod/lugar_ine_cod/&lt;br /&gt;
1s/fonteAquisicaoDados/fonte_aquisicao_dados/&lt;br /&gt;
1s/dataEdital/data_edital/&lt;br /&gt;
1s/DICOFRE/dicofre/&lt;br /&gt;
1s/DICO/dico/&lt;br /&gt;
1s/DI/di/&lt;br /&gt;
1s/CO/co/&lt;br /&gt;
1s/dataCat/data_cat/&lt;br /&gt;
&lt;br /&gt;
sed -f sed.txt -i CatalogoDasViasRodoviariasParte2UTF-8_20190703.csv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Instala%C3%A7%C3%A3o_QGIS_no_Windows_com_base_no_OSGeo4W&amp;diff=953</id>
		<title>Instalação QGIS no Windows com base no OSGeo4W</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Instala%C3%A7%C3%A3o_QGIS_no_Windows_com_base_no_OSGeo4W&amp;diff=953"/>
		<updated>2019-09-26T12:14:38Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;O [https://www.qgis.org/pt_PT/site/ QGIS] é um software livre e de código aberto para sistemas de informação geográfica que permite a visualização, edição, e análise de dados georreferenciados.&lt;br /&gt;
&lt;br /&gt;
O [https://trac.osgeo.org/osgeo4w/ OSGeo4W] é uma distribuição binária de um amplo conjunto de software geoespacial livre para ambientes Windows (Windows 10 até XP). OSGeo4W inclui QGIS, GDAL/OGR, GRASS, assim como muitos outros pacotes. Este projecto permite uma gestão integrada e mais sistematizada de todo o software geoespacial que necessitamos.&lt;br /&gt;
&lt;br /&gt;
Este guia delineia os passos necessários para instalar o QGIS (e outras ferramentas necessárias) em ambiente Windows a partir do OSGeo4W:&lt;br /&gt;
&lt;br /&gt;
:1. Aceder no browser ao site do [https://www.qgis.org/pt_PT/site/ QGIS] e seguir o link &amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;&amp;#039;Transfira agora&amp;#039;&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
::[[File:Qgis-instalar-img1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
:2. Na secção &amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;&amp;#039;Transferir para Windows&amp;#039;&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; seguir o link &amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;&amp;#039;Instalador a partir da rede OSGeo4W&amp;#039;&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; para fazer download do instalador&lt;br /&gt;
&lt;br /&gt;
::[[File:Qgis-instalar-img2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
:3. No instalador escolher &amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;&amp;#039;Express Desktop Install&amp;#039;&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; e seleccionar QGIS, GDAL, e GRASS GIS&lt;br /&gt;
&lt;br /&gt;
::[[File:Qgis-instalar-img3.png|300px]] [[File:Qgis-instalar-img4.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:4. Seguir o instalador (aceitar licenças, aguardar downloads)&lt;br /&gt;
&lt;br /&gt;
:5. Quando o instalador terminar premir concluir. Já é possível utilizar o QGIS, ou através dos atalhos criados ou correndo o programa directamente a partir de &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; inline&amp;gt;C:\OSGeo4W64\bin\qgis-bin.exe&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Instalação sem permissões de administrador ===&lt;br /&gt;
&lt;br /&gt;
Ter em atenção que:&lt;br /&gt;
* os antivírus/firewalls podem bloquear conteúdos&lt;br /&gt;
* os proxies podem limitar o acesso&lt;br /&gt;
&lt;br /&gt;
https://gis.stackexchange.com/questions/322197/why-is-osgeo4w-w-qgis-3-6-2-asking-for-admin-rights&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Instala%C3%A7%C3%A3o_QGIS_no_Windows_com_base_no_OSGeo4W&amp;diff=951</id>
		<title>Instalação QGIS no Windows com base no OSGeo4W</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Instala%C3%A7%C3%A3o_QGIS_no_Windows_com_base_no_OSGeo4W&amp;diff=951"/>
		<updated>2019-09-26T09:35:01Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;O [https://www.qgis.org/pt_PT/site/ QGIS] é um software livre e de código aberto para sistemas de informação geográfica que permite a visualização, edição, e análise de dados georreferenciados.&lt;br /&gt;
&lt;br /&gt;
O [https://trac.osgeo.org/osgeo4w/ OSGeo4W] é uma distribuição binária de um amplo conjunto de software geoespacial livre para ambientes Windows (Windows 10 até XP). OSGeo4W inclui QGIS, GDAL/OGR, GRASS, assim como muitos outros pacotes. Este projecto permite uma gestão integrada e mais sistematizada de todo o software geoespacial que necessitamos.&lt;br /&gt;
&lt;br /&gt;
Este guia delineia os passos necessários para instalar o QGIS (e outras ferramentas necessárias) em ambiente Windows a partir do OSGeo4W:&lt;br /&gt;
&lt;br /&gt;
:1. Aceder no browser ao site do [https://www.qgis.org/pt_PT/site/ QGIS] e seguir o link &amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;&amp;#039;Transfira agora&amp;#039;&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
::[[File:Qgis-instalar-img1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
:2. Na secção &amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;&amp;#039;Transferir para Windows&amp;#039;&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; seguir o link &amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;&amp;#039;Instalador a partir da rede OSGeo4W&amp;#039;&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; para fazer download do instalador&lt;br /&gt;
&lt;br /&gt;
::[[File:Qgis-instalar-img2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
:3. No instalador escolher &amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;&amp;#039;Express Desktop Install&amp;#039;&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; e seleccionar QGIS, GDAL, e GRASS GIS&lt;br /&gt;
&lt;br /&gt;
::[[File:Qgis-instalar-img3.png|300px]] [[File:Qgis-instalar-img4.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:4. Seguir o instalador (aceitar licenças, aguardar downloads)&lt;br /&gt;
&lt;br /&gt;
:5. Quando o instalador terminar premir concluir. Já é possível utilizar o QGIS, ou através dos atalhos criados ou correndo o programa directamente a partir de &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; inline&amp;gt;C:\OSGeo4W64\bin\qgis-bin.exe&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Instalação sem permissões de administrador ===&lt;br /&gt;
&lt;br /&gt;
https://gis.stackexchange.com/questions/322197/why-is-osgeo4w-w-qgis-3-6-2-asking-for-admin-rights&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Como_gravar_cursos_em_v%C3%ADdeo&amp;diff=949</id>
		<title>Como gravar cursos em vídeo</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Como_gravar_cursos_em_v%C3%ADdeo&amp;diff=949"/>
		<updated>2019-05-16T19:07:57Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Telemóvel como WebCam */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Aplicações ===&lt;br /&gt;
&lt;br /&gt;
==== Screen capture ====&lt;br /&gt;
&lt;br /&gt;
RecordMyDesktop - Só a área da janela da aplicação (QGIS, Firefox, etc). Nas opções retirar as decorações (da janela).&lt;br /&gt;
&lt;br /&gt;
Por o fundo do desktop amarelo&lt;br /&gt;
&lt;br /&gt;
Preparar a janela&lt;br /&gt;
&lt;br /&gt;
Usar a resolução 1280x720&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;Usar a resolução 1366x768 &amp;#039;&amp;#039;(Standardized HDTV 720p/1080i displays or “HD ready”, used in most cheaper notebooks)&amp;#039;&amp;#039;&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install wmctrl&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/dev/scrcpy/x$ wmctrl -lG&lt;br /&gt;
0x02200002 -1 7054 54   313  763  zoe conky (zoe)&lt;br /&gt;
0x05a00010  0 1930 64   1808 1052 zoe command line - How do I find the window dimensions and position accurately including decorations? - Unix &amp;amp; Linux Stack Exchange - Mozilla Firefox&lt;br /&gt;
0x06c00006  0 10   91   960  1025 zoe jgr@zoe: ~/dev/scrcpy/x&lt;br /&gt;
0x07a00003  0 87   171  567  692  zoe Controlo de Volume&lt;br /&gt;
0x06009d29  0 3964 96   1299 939  zoe Formulários&lt;br /&gt;
0x06e00010  0 440  208  1280 720  N/A *exercicio - QGIS 6a2c31d897&lt;br /&gt;
0x0605e92f  0 -72  -10  1583 1097 zoe Pasta pessoal&lt;br /&gt;
0x07800017  0 0    83   1920 1025 N/A Untitled* / HD 1080p 25 fps — Kdenlive&lt;br /&gt;
0x06c0672a  0 34   566  654  434  zoe jgr@zoe: ~&lt;br /&gt;
&lt;br /&gt;
wmctrl -r &amp;quot;Untitled Project - QGIS 6a2c31d897&amp;quot; -e 0,633,265,1280,720&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Anotações no ecrã ====&lt;br /&gt;
&lt;br /&gt;
http://manpages.ubuntu.com/manpages/cosmic/man1/gromit-mpx.1.html&lt;br /&gt;
&lt;br /&gt;
sudo apt install gromit-mpx&lt;br /&gt;
&lt;br /&gt;
Começa: F9&lt;br /&gt;
Shift F9&lt;br /&gt;
draw/Shift draw&lt;br /&gt;
&lt;br /&gt;
==== Telemóvel como WebCam ====&lt;br /&gt;
&lt;br /&gt;
Usar o [https://github.com/Genymobile/scrcpy scrcpy] para controlar a câmara.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/dev/scrcpy&lt;br /&gt;
git pull origin master&lt;br /&gt;
rm -rf x&lt;br /&gt;
export ANDROID_HOME=~/Android/Sdk&lt;br /&gt;
meson x --buildtype release --strip -Db_lto=true&lt;br /&gt;
cd x&lt;br /&gt;
ninja&lt;br /&gt;
sudo ninja install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-11-18 16-50-59.png]]&lt;br /&gt;
&lt;br /&gt;
Ligar por Wifi (na mesma rede)&lt;br /&gt;
&lt;br /&gt;
Começar com a ligação por USB, para configurar o &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;adb&amp;lt;/syntaxhighlight&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ligar USB. (Tem que se permitir &amp;quot;Depuração por USB&amp;quot;, nas &amp;quot;Opções do programador&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~$ adb devices&lt;br /&gt;
List of devices attached&lt;br /&gt;
ce071717210b872104	device&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descobrir o IP do telefone&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~$ arp -a&lt;br /&gt;
unknown80b234059058.lan (192.168.1.65) em 80:b2:34:05:90:58 [ether] em wlp2s0&lt;br /&gt;
vodafonegw (192.168.1.1) em 50:1d:93:b8:f6:21 [ether] em wlp2s0&lt;br /&gt;
Sternschanze.lan (192.168.1.66) em 24:18:1d:0e:c3:66 [ether] em wlp2s0&lt;br /&gt;
&lt;br /&gt;
adb tcpip 5555&lt;br /&gt;
adb connect 192.168.1.66:5555&lt;br /&gt;
&lt;br /&gt;
# desligar o cabo USB (para não ter dois devices, um por USB e outro por rede)&lt;br /&gt;
&lt;br /&gt;
scrcpy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Kdenlive ====&lt;br /&gt;
&lt;br /&gt;
==== Audacity ====&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Microfone - KIMU PRO: ligar ao telemóvel&lt;br /&gt;
&lt;br /&gt;
Webcam: usar a câmara do telemóvel&lt;br /&gt;
&lt;br /&gt;
Computador&lt;br /&gt;
&lt;br /&gt;
=== Guiões ===&lt;br /&gt;
&lt;br /&gt;
[[Curso de QGIS]]&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=OpenStreetMap_API&amp;diff=947</id>
		<title>OpenStreetMap API</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=OpenStreetMap_API&amp;diff=947"/>
		<updated>2019-05-16T08:57:31Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Wizard */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Wizard ===&lt;br /&gt;
&lt;br /&gt;
Usar o Wizard do overpass&lt;br /&gt;
&lt;br /&gt;
No Wizard escrever: &amp;#039;bakery or supermarket in Braga&amp;#039;&lt;br /&gt;
&lt;br /&gt;
No Wizard escrever: &amp;#039;pharmacy in porto&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
This has been generated by the overpass-turbo wizard.&lt;br /&gt;
The original search was:&lt;br /&gt;
“pharmacy in porto”&lt;br /&gt;
*/&lt;br /&gt;
[out:json][timeout:25];&lt;br /&gt;
// fetch area “porto” to search in&lt;br /&gt;
{{geocodeArea:porto}}-&amp;gt;.searchArea;&lt;br /&gt;
// gather results&lt;br /&gt;
(&lt;br /&gt;
  // query part for: “pharmacy”&lt;br /&gt;
  node[&amp;quot;amenity&amp;quot;=&amp;quot;pharmacy&amp;quot;](area.searchArea);&lt;br /&gt;
  way[&amp;quot;amenity&amp;quot;=&amp;quot;pharmacy&amp;quot;](area.searchArea);&lt;br /&gt;
  relation[&amp;quot;amenity&amp;quot;=&amp;quot;pharmacy&amp;quot;](area.searchArea);&lt;br /&gt;
);&lt;br /&gt;
// print results&lt;br /&gt;
out body;&lt;br /&gt;
&amp;gt;;&lt;br /&gt;
out skel qt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Melhorias ===&lt;br /&gt;
&lt;br /&gt;
Trocar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
// print results&lt;br /&gt;
out body;&lt;br /&gt;
&amp;gt;;&lt;br /&gt;
out skel qt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
para sair o centroid, se for um polígono:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
// print results&lt;br /&gt;
out center;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Trocar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
  // query part for: “pharmacy”&lt;br /&gt;
  node[&amp;quot;amenity&amp;quot;=&amp;quot;pharmacy&amp;quot;](area.searchArea);&lt;br /&gt;
  way[&amp;quot;amenity&amp;quot;=&amp;quot;pharmacy&amp;quot;](area.searchArea);&lt;br /&gt;
  relation[&amp;quot;amenity&amp;quot;=&amp;quot;pharmacy&amp;quot;](area.searchArea);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
  // query part for: “pharmacy”&lt;br /&gt;
  nwr[&amp;quot;amenity&amp;quot;=&amp;quot;pharmacy&amp;quot;](area.searchArea);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Resultado final:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
This has been generated by the overpass-turbo wizard.&lt;br /&gt;
The original search was:&lt;br /&gt;
“pharmacy in porto”&lt;br /&gt;
*/&lt;br /&gt;
[out:json][timeout:25];&lt;br /&gt;
// fetch area “porto” to search in&lt;br /&gt;
{{geocodeArea:porto}}-&amp;gt;.searchArea;&lt;br /&gt;
// gather results&lt;br /&gt;
(&lt;br /&gt;
  // query part for: “pharmacy”&lt;br /&gt;
  nwr[&amp;quot;amenity&amp;quot;=&amp;quot;pharmacy&amp;quot;](area.searchArea);&lt;br /&gt;
);&lt;br /&gt;
// print results&lt;br /&gt;
out center;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manual... ===&lt;br /&gt;
&lt;br /&gt;
Abrir http://overpass-turbo.eu/&lt;br /&gt;
&lt;br /&gt;
Procurar no mapa por: Porto&lt;br /&gt;
&lt;br /&gt;
Escrever a seguinte consulta:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
procurar por restaurantes&lt;br /&gt;
*/&lt;br /&gt;
[out:json];&lt;br /&gt;
// gather results&lt;br /&gt;
(&lt;br /&gt;
  node[&amp;quot;amenity&amp;quot;=&amp;quot;restaurant&amp;quot;]({{bbox}});&lt;br /&gt;
);&lt;br /&gt;
// print results&lt;br /&gt;
out body;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Executar a consulta&lt;br /&gt;
&lt;br /&gt;
[[File:Restaurantes porto osm.png]]&lt;br /&gt;
&lt;br /&gt;
Exportar e escolher descarregar como geojson&lt;br /&gt;
&lt;br /&gt;
Abrir o geojson no QGIS&lt;br /&gt;
&lt;br /&gt;
A codificação dos caracteres no GeoJson é UTF-8.&lt;br /&gt;
&lt;br /&gt;
No QGIS, a camada é apresentada com a indicação de que se trata (e bem) do sistema de coordenadas EPSG:4326 (WGS84).&lt;br /&gt;
&lt;br /&gt;
Ao passar a camada para a base de dados, indicar que pretendemos uma transformação do sistema EPSG:4326 para EPSG:3763.&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=OpenStreetMap_API&amp;diff=945</id>
		<title>OpenStreetMap API</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=OpenStreetMap_API&amp;diff=945"/>
		<updated>2019-05-14T23:30:17Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Wizard ===&lt;br /&gt;
&lt;br /&gt;
Usar o Wizard do overpass&lt;br /&gt;
&lt;br /&gt;
No Wizard escrever: &amp;#039;bakery or supermarket in Braga&amp;#039;&lt;br /&gt;
&lt;br /&gt;
No Wizard escrever: &amp;#039;pharmacy in porto&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
This has been generated by the overpass-turbo wizard.&lt;br /&gt;
The original search was:&lt;br /&gt;
“pharmacy in porto”&lt;br /&gt;
*/&lt;br /&gt;
[out:json][timeout:25];&lt;br /&gt;
// fetch area “porto” to search in&lt;br /&gt;
{{geocodeArea:porto}}-&amp;gt;.searchArea;&lt;br /&gt;
// gather results&lt;br /&gt;
(&lt;br /&gt;
  // query part for: “pharmacy”&lt;br /&gt;
  node[&amp;quot;amenity&amp;quot;=&amp;quot;pharmacy&amp;quot;](area.searchArea);&lt;br /&gt;
  way[&amp;quot;amenity&amp;quot;=&amp;quot;pharmacy&amp;quot;](area.searchArea);&lt;br /&gt;
  relation[&amp;quot;amenity&amp;quot;=&amp;quot;pharmacy&amp;quot;](area.searchArea);&lt;br /&gt;
);&lt;br /&gt;
// print results&lt;br /&gt;
out body;&lt;br /&gt;
&amp;gt;;&lt;br /&gt;
out skel qt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manual... ===&lt;br /&gt;
&lt;br /&gt;
Abrir http://overpass-turbo.eu/&lt;br /&gt;
&lt;br /&gt;
Procurar no mapa por: Porto&lt;br /&gt;
&lt;br /&gt;
Escrever a seguinte consulta:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
procurar por restaurantes&lt;br /&gt;
*/&lt;br /&gt;
[out:json];&lt;br /&gt;
// gather results&lt;br /&gt;
(&lt;br /&gt;
  node[&amp;quot;amenity&amp;quot;=&amp;quot;restaurant&amp;quot;]({{bbox}});&lt;br /&gt;
);&lt;br /&gt;
// print results&lt;br /&gt;
out body;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Executar a consulta&lt;br /&gt;
&lt;br /&gt;
[[File:Restaurantes porto osm.png]]&lt;br /&gt;
&lt;br /&gt;
Exportar e escolher descarregar como geojson&lt;br /&gt;
&lt;br /&gt;
Abrir o geojson no QGIS&lt;br /&gt;
&lt;br /&gt;
A codificação dos caracteres no GeoJson é UTF-8.&lt;br /&gt;
&lt;br /&gt;
No QGIS, a camada é apresentada com a indicação de que se trata (e bem) do sistema de coordenadas EPSG:4326 (WGS84).&lt;br /&gt;
&lt;br /&gt;
Ao passar a camada para a base de dados, indicar que pretendemos uma transformação do sistema EPSG:4326 para EPSG:3763.&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Main_Page&amp;diff=943</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Main_Page&amp;diff=943"/>
		<updated>2019-05-10T16:36:49Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* QGIS na área da Arqueologia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Apresentação =&lt;br /&gt;
&lt;br /&gt;
A formação e a disponibilização de conteúdos faz parte do ADN da Geomaster. Neste espaço, estamos a juntar todos os conteúdos das nossas formações, que ainda estão dispersos por vários sítios.&lt;br /&gt;
&lt;br /&gt;
== Onde e como pedir ajuda? ==&lt;br /&gt;
&lt;br /&gt;
[https://lists.osgeo.org/mailman/listinfo/portugal Lista portuguesa da OSGeo]&lt;br /&gt;
&lt;br /&gt;
[https://lists.osgeo.org/mailman/listinfo/qgis-user Lista internacional do QGIS]&lt;br /&gt;
&lt;br /&gt;
https://gis.stackexchange.com/&lt;br /&gt;
&lt;br /&gt;
A Geomaster está oferecer suporte ao QGIS, de forma gratuita. Use o centro de suporte disponível em [https://ticket.geomaster.pt/open.php?lang=pt_PT ticket.geomaster.pt].&lt;br /&gt;
&lt;br /&gt;
Antes de pedir ajuda, faça o trabalho de casa. Pesquise na net se a questão já foi levantada e resolvida.&lt;br /&gt;
&lt;br /&gt;
Para procurar nas listas do QGIS, use o endereço: http://osgeo-org.1560.x6.nabble.com/QGIS-f4099105.html&lt;br /&gt;
&lt;br /&gt;
= Requisitos =&lt;br /&gt;
&lt;br /&gt;
Para fazer os exercícios propostos, precisa de ter algum espaço livre e o software necessário instalado. Os exercícios são independentes do sistema operativo: tanto pode usar Linux, Windows ou macOS.&lt;br /&gt;
&lt;br /&gt;
== Máquina virtual OSGeo Live ==&lt;br /&gt;
&lt;br /&gt;
Uma boa alternativa para a formação é a utilização da máquina virtual [https://live.osgeo.org/en/index.html OSGeo Live] que já tem todo o software SIG necessário.&lt;br /&gt;
&lt;br /&gt;
= Conteúdos =&lt;br /&gt;
&lt;br /&gt;
== Sentinel-2 Image processing using QGIS+SCP ==&lt;br /&gt;
&lt;br /&gt;
Notes from Sentinel-2 Image processing using QGIS+SCP course at Skovskolen, Nødebo.&lt;br /&gt;
&lt;br /&gt;
Documentation:&lt;br /&gt;
&lt;br /&gt;
[https://readthedocs.org/projects/semiautomaticclassificationmanual/downloads/pdf/latest/ Semi-Automatic Classification Plugin Documentation]&lt;br /&gt;
&lt;br /&gt;
[[Installing SCP in Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
[[Create a Copernicus Open Access Hub account]]&lt;br /&gt;
&lt;br /&gt;
[[Search and download Sentinel-2 images]]&lt;br /&gt;
&lt;br /&gt;
[[Search and download Landsat 8 images]]&lt;br /&gt;
&lt;br /&gt;
[[Radiance to reflectance]]&lt;br /&gt;
&lt;br /&gt;
[[Clip Sentinel-2 images]]&lt;br /&gt;
&lt;br /&gt;
[[Band compositions]]&lt;br /&gt;
&lt;br /&gt;
[[Export band compositions]]&lt;br /&gt;
&lt;br /&gt;
[[Raster algebra: calculating indexes]]&lt;br /&gt;
&lt;br /&gt;
[[Unsupervised classification]]&lt;br /&gt;
&lt;br /&gt;
[[Supervised  classification]]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
https://earth.esa.int/web/sentinel/technical-guides/sentinel-2-msi/msi-instrument&lt;br /&gt;
&lt;br /&gt;
http://esa-sen4cap.org/content/eo-products&lt;br /&gt;
&lt;br /&gt;
https://sentinel.esa.int/web/sentinel/user-guides/sentinel-2-msi/document-library&lt;br /&gt;
&lt;br /&gt;
https://www.indexdatabase.de/db/s-single.php?id=96&lt;br /&gt;
&lt;br /&gt;
https://land.copernicus.eu/global/products/ba&lt;br /&gt;
&lt;br /&gt;
https://fromgistors.blogspot.com/2016/11/from-image-download-to-ndvi-calculation.html&lt;br /&gt;
&lt;br /&gt;
http://www.qgis.pt/blog/2016/12/14/detecao-remota-com-o-qgis/ (em Português)&lt;br /&gt;
&lt;br /&gt;
== Wikidata Sixth Birthday ==&lt;br /&gt;
&lt;br /&gt;
[[File:Birthday banner for 4th Wikidata Birthday.png]]&lt;br /&gt;
&lt;br /&gt;
=== Objectivo ===&lt;br /&gt;
&lt;br /&gt;
Fazer uma mapa:&lt;br /&gt;
# Mostrar as ruas, largos, praças e outros espaços com topónimos&lt;br /&gt;
# Poder filtrar por:&lt;br /&gt;
## sexo&lt;br /&gt;
## ocupação (religioso, militar poeta, escritor, político...&lt;br /&gt;
## século&lt;br /&gt;
## etc&lt;br /&gt;
&lt;br /&gt;
Eventualmente, fazer um quantos gráficos, com percentagens:&lt;br /&gt;
# topónimos com nome de pessoas versus outras origens&lt;br /&gt;
# nomes de mulheres versus nomes de homens&lt;br /&gt;
# políticos versus artes e ciências&lt;br /&gt;
&lt;br /&gt;
=== Problema ===&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap não existe informação sobre as propriedades do topónimo. O topónimo pode estar escrito de diversas formas e contém partes que não interessam (Rua, Avenida, Prof, Doutor, etc). (Nota: cruzar com o dataset da [http://centraldedados.pt/codigos_postais/ Central de Dados dos Códigos Postais]).&lt;br /&gt;
&lt;br /&gt;
A [https://www.openstreetmap.org/way/35997529#map=16/41.1809/-8.6094 Rua de São Tomé] refere-se a uma pessoa? &lt;br /&gt;
&lt;br /&gt;
Rua Egas Moniz. Qual [https://pt.wikipedia.org/wiki/Egas_Moniz Egas Moniz]?&lt;br /&gt;
&lt;br /&gt;
==== Solução ====&lt;br /&gt;
&lt;br /&gt;
Wikidata! Diferença entre a página da [https://pt.wikipedia.org/wiki/Ant%C3%B3nio_Egas_Moniz Wikipédia do Egas Moniz] e a da [https://www.wikidata.org/wiki/Q273219 Wikidata da mesma pessoa].&lt;br /&gt;
&lt;br /&gt;
Criei a entidade: https://www.wikidata.org/wiki/Q58129518&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap já se usa uma tag [https://wiki.openstreetmap.org/wiki/Key:wikidata wikidata] para entidades geográficas bem conhecidas, como a [https://www.openstreetmap.org/way/247168260 Torre dos Clérigos].&lt;br /&gt;
&lt;br /&gt;
Existe uma proposta para acrescentar a origem de um determinado nome, usando a tag [https://wiki.openstreetmap.org/wiki/Key:name:etymology name:etymology].&lt;br /&gt;
&lt;br /&gt;
==== Limitações ====&lt;br /&gt;
&lt;br /&gt;
Nem tudo está na Wikidata. Na verdade, existe pouca informação (sobre Portugal) no Wikidata.&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap também não há muitas tags wikidata.&lt;br /&gt;
&lt;br /&gt;
==== Resolução das limitações ====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Editar o OpenStreetMap e a Wikidata!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Nota: área pantanosa em relação às licenças: CC-0 versus ODBL.&lt;br /&gt;
&lt;br /&gt;
==== Outras fontes de dados ====&lt;br /&gt;
&lt;br /&gt;
Central de dados&lt;br /&gt;
&lt;br /&gt;
http://centraldedados.pt/nomes_proprios/&lt;br /&gt;
&lt;br /&gt;
https://genderize.io/&lt;br /&gt;
&lt;br /&gt;
==== Algum código de base ====&lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/pdiasalmeida/osm-street-names&lt;br /&gt;
&lt;br /&gt;
== Open Data Day, 2018 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Logo odd 2018.png]]&lt;br /&gt;
&lt;br /&gt;
[[Introdução ao OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
[[Serviços sobre os dados do OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
[[Dados OpenStreetMap no QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Dados OpenStreetMap no PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
[[OpenStreetMap API]]&lt;br /&gt;
&lt;br /&gt;
[[Routing com os dados do OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
== SIG desktop com QGIS ==&lt;br /&gt;
&lt;br /&gt;
Introdução à interface do QGIS, a visualização complementar de geometrias e dados, filtrar, selecionar, expressões, trabalhar com a seleção, etc.&lt;br /&gt;
&lt;br /&gt;
[[Instalação QGIS no Windows com base no OSGeo4W]]&lt;br /&gt;
&lt;br /&gt;
Instalação da primeira extensão [https://plugins.qgis.org/plugins/quick_map_services/ QuickMapServices].&lt;br /&gt;
&lt;br /&gt;
Os dados vectoriais referem-se a entidades que têm uma componente espacial (geográfica) e um conjunto de atributos.&lt;br /&gt;
&lt;br /&gt;
[[Explorar dados vectoriais]]&lt;br /&gt;
&lt;br /&gt;
[[Georreferenciação de imagens e criação de camadas]]&lt;br /&gt;
&lt;br /&gt;
[[Edição de dados vetoriais]]&lt;br /&gt;
&lt;br /&gt;
[[Geração de um modelo digital do terreno]]&lt;br /&gt;
&lt;br /&gt;
Acrescentar melhorias aos formulários:&lt;br /&gt;
# campos que se atualizam automaticamente&lt;br /&gt;
# joins e formulários com combox&lt;br /&gt;
# um exemplo de uma relação master → detail&lt;br /&gt;
&lt;br /&gt;
[[Ligação a uma base de dados Postgresql]]&lt;br /&gt;
&lt;br /&gt;
[[Análise espacial com rasters]]&lt;br /&gt;
&lt;br /&gt;
==== Para rever ou eliminar... ====&lt;br /&gt;
&lt;br /&gt;
[[Geoprocessamento]]&lt;br /&gt;
&lt;br /&gt;
[[Criar camadas vectoriais]]&lt;br /&gt;
&lt;br /&gt;
Os dados raster referem-se a superfícies contínuas, cujas propriedades se vão alterando ao longo da superfície.&lt;br /&gt;
&lt;br /&gt;
Visualizar dados raster, calculadora raster, calcular o aspecto, declives, mostrar um perfil.&lt;br /&gt;
&lt;br /&gt;
[[Explorar dados raster]]&lt;br /&gt;
&lt;br /&gt;
Cruzar camadas, associar imagens, associar ações a entidades geográficas&lt;br /&gt;
&lt;br /&gt;
[[Cruzar dados vectoriais]]&lt;br /&gt;
&lt;br /&gt;
Introdução à análise espacial: cálculo de áreas de influência, recorte em função da localização, etc.&lt;br /&gt;
&lt;br /&gt;
[[Introdução à análise espacial]]&lt;br /&gt;
&lt;br /&gt;
[[Georreferenciação de mapas]]&lt;br /&gt;
&lt;br /&gt;
[[Criação de camadas]]&lt;br /&gt;
&lt;br /&gt;
[[Teste de auto-avaliação]]&lt;br /&gt;
&lt;br /&gt;
== SIG desktop com QGIS: Tópicos avançados ==&lt;br /&gt;
&lt;br /&gt;
[[Exercício de aquecimento]]&lt;br /&gt;
&lt;br /&gt;
[[QGIS com Postgresql]]&lt;br /&gt;
&lt;br /&gt;
[[Edição de informação geográfica]]&lt;br /&gt;
&lt;br /&gt;
O processamento com o QGIS é tão assustador como fabuloso. Assustador pela diversidade de alternativas que apresenta e fabuloso pela mesma razão. Além de todas as capacidades de processamento que tem no próprio código, O QGIS liga-se muito bem a outros software de processamento, como o GRASS, SAGA, Orfeo Toolbox, etc.&lt;br /&gt;
&lt;br /&gt;
[[Processamento em QGIS]]&lt;br /&gt;
&lt;br /&gt;
As imagens Sentinel são disponibilizadas pela ESA. O tratamento de imagens Sentinel-2 com a extensão [https://fromgistors.blogspot.com/p/semi-automatic-classification-plugin.html Semi-Automatic Classification Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Tratamento de imagens Sentinel]]&lt;br /&gt;
&lt;br /&gt;
As imagens raster podem ser geridas a partir do sistema de ficheiros ou a partir da base de dados Postgresql.&lt;br /&gt;
&lt;br /&gt;
[[Suporte Postgresql para rasters]]&lt;br /&gt;
&lt;br /&gt;
O QGIS está escrito em C++ que é uma linguagem orientado a objetos, que gera código muito eficiente. O QGIS usa a biblioteca QT para todas as componentes de interface com o utilizador.&lt;br /&gt;
Embora todo o núcleo esteja em C++, todas as funcionalidades são expostas para outras aplicações através de uma API que pode ser invocada a partir do Python. Ou seja, a partir de um programa Python, podemos comandar o QGIS e tirar partido de todas as suas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
[[Explorar o QGIS a partir do Python]]&lt;br /&gt;
&lt;br /&gt;
[[QField: o QGIS ao ar livre]]&lt;br /&gt;
&lt;br /&gt;
[[Sobre a preparação desta formação]]&lt;br /&gt;
&lt;br /&gt;
== Base de dados espaciais com Postgresql ==&lt;br /&gt;
&lt;br /&gt;
== Data ==&lt;br /&gt;
&lt;br /&gt;
[https://resourcewatch.org/ Resource Watch – Monitoring the Planet&amp;#039;s Pulse]&lt;br /&gt;
&lt;br /&gt;
== Spatial Data Mining ==&lt;br /&gt;
&lt;br /&gt;
* [https://geodacenter.github.io/ GeoDa] is a free and open source software tool that serves as an introduction to spatial data analysis.&lt;br /&gt;
* [https://github.com/MapPlus/spatial_statistics_for_geotools_udig GeoAnalysis library] is a java-based open source for geospatial analysis.&lt;br /&gt;
&lt;br /&gt;
== QGIS na área da Saúde ==&lt;br /&gt;
&lt;br /&gt;
[https://plugins.qgis.org/plugins/GeoHealth/ Plugin GeoHealth]&lt;br /&gt;
&lt;br /&gt;
== QGIS na área da Arqueologia ==&lt;br /&gt;
&lt;br /&gt;
Tratamento dos arqueossítios em http://www.geira.pt/arqueo/ListaArqueossitios.html&lt;br /&gt;
&lt;br /&gt;
xml disponível em: http://www4.di.uminho.pt/~jcr/XML/didac/xmldocs/arq.xml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget http://www4.di.uminho.pt/~jcr/XML/didac/xmldocs/arq.xml&lt;br /&gt;
xsltproc sample.xsl arq.xml &amp;gt; arq.csv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:output type=&amp;quot;text&amp;quot; indent=&amp;quot;no&amp;quot; omit-xml-declaration=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;xsl:strip-space elements=&amp;quot;*&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;//ARQELEM&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:value-of select=&amp;quot;normalize-space(IDENTI)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(DESCRI)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(CRONO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(FREGUE)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(CONCEL)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(LATITU)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(LONGIT)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(ALTITU)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(ACESSO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(QUADRO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(TRAARQ)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(DESARQ)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(INTERP)&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tratamento manual:&lt;br /&gt;
&lt;br /&gt;
coordenadas: multiplicar por 1000&lt;br /&gt;
&lt;br /&gt;
usar o separador de campos: |&lt;br /&gt;
&lt;br /&gt;
usar o delimitador de campos: &amp;#039;&lt;br /&gt;
&lt;br /&gt;
Sistemas de coordenadas: EPSG:20790&lt;br /&gt;
&lt;br /&gt;
Resultado final: arqueossitios.csv&lt;br /&gt;
&lt;br /&gt;
=== Portal do Arqueólogo ===&lt;br /&gt;
&lt;br /&gt;
Acabei por sacar pelo QGIS, ligando-me ao servidor.&lt;br /&gt;
&lt;br /&gt;
Dados de ligação:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sacar lista de sítios ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
mkdir -p portalarqueologo&lt;br /&gt;
for i in {1..1735}&lt;br /&gt;
do&lt;br /&gt;
	curl &amp;quot;http://arqueologia.patrimoniocultural.pt/index.php?sid=sitios&amp;amp;p=$i&amp;quot; -o portalarqueologo/$i.html&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd portalarqueologo/&lt;br /&gt;
sed -n -e &amp;#039;s/&amp;lt;td data-label=&amp;quot;Designação&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;\/index.php?sid=sitios\&amp;amp;subsid=\([0-9]\+\)&amp;quot;&amp;gt;\([^&amp;lt;]\+\)&amp;lt;\/a&amp;gt;&amp;lt;\/td&amp;gt;/\1\t\2\thttp:\/\/arqueologia.patrimoniocultural.pt\/index.php?sid=sitios\&amp;amp;subsid=\1/p&amp;#039; *.html | sed &amp;#039;s/^\s\+//g&amp;#039; &amp;gt; lista_sitios.csv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sacar sítios ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Extrair coordenadas ====&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/bin/sitios$ grep  &amp;#039;&amp;lt;div id=&amp;quot;singleListingMap&amp;quot; data-latitude=&amp;quot;[^&amp;quot;]\+&amp;quot; data-longitude=&amp;quot;[^&amp;quot;]\+&amp;quot; data-map-icon&amp;#039; *.html &amp;gt; x&lt;br /&gt;
&lt;br /&gt;
sed -n -e &amp;#039;s/\(^[0-9]\+\).html:\s\+&amp;lt;div id=&amp;quot;singleListingMap&amp;quot; data-latitude=&amp;quot;\([0-9.]\+\)&amp;quot; data-longitude=&amp;quot;\([-0-9.]\+\)&amp;quot;.\+$/\1\t\2\t\3/p&amp;#039; x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Monte da Matosa 2&amp;lt;/h2&amp;gt; Sítio &amp;lt;span title=&amp;quot;CNS&amp;quot;&amp;gt;(13709)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
grep &amp;#039;&amp;lt;h2&amp;gt;[^&amp;lt;]\+&amp;lt;/h2&amp;gt; Sítio &amp;lt;span title=&amp;quot;CNS&amp;quot;&amp;gt;([\d]\+)&amp;lt;/span&amp;gt;&amp;#039; *.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== QGIS ====&lt;br /&gt;
&lt;br /&gt;
Abrir lista_sitios.csv&lt;br /&gt;
&lt;br /&gt;
Abrir&lt;br /&gt;
&lt;br /&gt;
== Dados do OpenStreetMap ==&lt;br /&gt;
&lt;br /&gt;
* Introdução ao OpenStreetMap&lt;br /&gt;
* Dados do OpenStreetMap no QGIS&lt;br /&gt;
* Dados do OpenStreetMap no Postgresql&lt;br /&gt;
* Queries com OverPass API, http://overpass-turbo.eu/&lt;br /&gt;
* Routing com os dados do OpenStreetMap (OpenTripPlanner)&lt;br /&gt;
* Routing com MAPS.ME&lt;br /&gt;
* Usar os mapas do OpenStreetMap num blog&lt;br /&gt;
&lt;br /&gt;
=== Requisitos ===&lt;br /&gt;
&lt;br /&gt;
* Computador c/ algum espaço livre&lt;br /&gt;
* Dados: serão descarregados na hora, a partir de: http://openstreetmap.pt/wp-content/uploads/&lt;br /&gt;
* Software&lt;br /&gt;
** QGIS 2.18.17 LTR&lt;br /&gt;
** Postgresql v9.6 + PostGIS (não é preciso instalar; haverá um servidor na sala)&lt;br /&gt;
** Instalar o MAPS.ME no telemóvel&lt;br /&gt;
&lt;br /&gt;
== Publicação na Web com Geoserver ==&lt;br /&gt;
&lt;br /&gt;
[[Servidores de mapas: conceitos]]&lt;br /&gt;
&lt;br /&gt;
[[Instalação do Geoserver]]&lt;br /&gt;
&lt;br /&gt;
[[Disponibilização de uma camada WMS/WFS]]&lt;br /&gt;
&lt;br /&gt;
[[Disponibilização de uma camada WMTS]]&lt;br /&gt;
&lt;br /&gt;
[[Publicação de grupos]]&lt;br /&gt;
&lt;br /&gt;
== Publicação na Web com uMap ==&lt;br /&gt;
&lt;br /&gt;
A plataforma uMap permite criar mapas de uma forma simples. Os mapas criados podem ser incorporados num blog ou num site.&lt;br /&gt;
&lt;br /&gt;
[[O meu primeiro mapa com o uMap]]&lt;br /&gt;
&lt;br /&gt;
== Drones ==&lt;br /&gt;
&lt;br /&gt;
[[DJI MAVIC 2 PRO]]&lt;br /&gt;
&lt;br /&gt;
[[Flight planner]]&lt;br /&gt;
&lt;br /&gt;
[[Running OpenDroneMap]]&lt;br /&gt;
&lt;br /&gt;
== Contribuir para projectos Open Source no domínio dos SIG ==&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o Nominatim]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para plugins QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o OpenTripPlanner]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o GeoExt]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o PostGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o curso PostGIS com Rasters]]&lt;br /&gt;
&lt;br /&gt;
= Outros cursos e recursos =&lt;br /&gt;
&lt;br /&gt;
[http://training.gismentors.eu/isprs-summer-school-2016/index.html ISPRS Congress 2016 Summer School]&lt;br /&gt;
&lt;br /&gt;
[http://training.gismentors.eu/grass-gis-workshop-jena-2018/index.html GRASS GIS Workshop in Jena]&lt;br /&gt;
&lt;br /&gt;
[https://www.hatarilabs.com/ih-en/working-with-sentinel-2-imagery-on-qgis Working with Sentinel 2 Imagery on QGIS]&lt;br /&gt;
&lt;br /&gt;
[https://uwgis.wordpress.com/gis-practicals/flood-risk-mapping/ QGIS Flood Risk Mapping]&lt;br /&gt;
&lt;br /&gt;
[[Como gravar cursos em vídeo]]&lt;br /&gt;
&lt;br /&gt;
= Propostas =&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Generalização Cartográfica]], em parceria com IBGE&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Deteção de estradas em imagens Sentinel-2]], em parceria com IBGE&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Ler cartas náuticas]], em parceria com a comunidade QGIS e de acordo com esta [https://github.com/faunalia/qnavigate proposta de melhoramento]&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Carregar informação meteorológica]], em parceria com a comunidade QGIS e de acordo com esta [https://github.com/faunalia/qnavigate proposta de melhoramento]&lt;br /&gt;
&lt;br /&gt;
[[QGIS:Plugin para dados do INE]]&lt;br /&gt;
&lt;br /&gt;
[[QGIS:Plugin para sobre a Saúde em Portugal]]&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Main_Page&amp;diff=941</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Main_Page&amp;diff=941"/>
		<updated>2019-04-26T00:25:48Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* QGIS na área da Saúde */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Apresentação =&lt;br /&gt;
&lt;br /&gt;
A formação e a disponibilização de conteúdos faz parte do ADN da Geomaster. Neste espaço, estamos a juntar todos os conteúdos das nossas formações, que ainda estão dispersos por vários sítios.&lt;br /&gt;
&lt;br /&gt;
== Onde e como pedir ajuda? ==&lt;br /&gt;
&lt;br /&gt;
[https://lists.osgeo.org/mailman/listinfo/portugal Lista portuguesa da OSGeo]&lt;br /&gt;
&lt;br /&gt;
[https://lists.osgeo.org/mailman/listinfo/qgis-user Lista internacional do QGIS]&lt;br /&gt;
&lt;br /&gt;
https://gis.stackexchange.com/&lt;br /&gt;
&lt;br /&gt;
A Geomaster está oferecer suporte ao QGIS, de forma gratuita. Use o centro de suporte disponível em [https://ticket.geomaster.pt/open.php?lang=pt_PT ticket.geomaster.pt].&lt;br /&gt;
&lt;br /&gt;
Antes de pedir ajuda, faça o trabalho de casa. Pesquise na net se a questão já foi levantada e resolvida.&lt;br /&gt;
&lt;br /&gt;
Para procurar nas listas do QGIS, use o endereço: http://osgeo-org.1560.x6.nabble.com/QGIS-f4099105.html&lt;br /&gt;
&lt;br /&gt;
= Requisitos =&lt;br /&gt;
&lt;br /&gt;
Para fazer os exercícios propostos, precisa de ter algum espaço livre e o software necessário instalado. Os exercícios são independentes do sistema operativo: tanto pode usar Linux, Windows ou macOS.&lt;br /&gt;
&lt;br /&gt;
== Máquina virtual OSGeo Live ==&lt;br /&gt;
&lt;br /&gt;
Uma boa alternativa para a formação é a utilização da máquina virtual [https://live.osgeo.org/en/index.html OSGeo Live] que já tem todo o software SIG necessário.&lt;br /&gt;
&lt;br /&gt;
= Conteúdos =&lt;br /&gt;
&lt;br /&gt;
== Sentinel-2 Image processing using QGIS+SCP ==&lt;br /&gt;
&lt;br /&gt;
Notes from Sentinel-2 Image processing using QGIS+SCP course at Skovskolen, Nødebo.&lt;br /&gt;
&lt;br /&gt;
Documentation:&lt;br /&gt;
&lt;br /&gt;
[https://readthedocs.org/projects/semiautomaticclassificationmanual/downloads/pdf/latest/ Semi-Automatic Classification Plugin Documentation]&lt;br /&gt;
&lt;br /&gt;
[[Installing SCP in Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
[[Create a Copernicus Open Access Hub account]]&lt;br /&gt;
&lt;br /&gt;
[[Search and download Sentinel-2 images]]&lt;br /&gt;
&lt;br /&gt;
[[Search and download Landsat 8 images]]&lt;br /&gt;
&lt;br /&gt;
[[Radiance to reflectance]]&lt;br /&gt;
&lt;br /&gt;
[[Clip Sentinel-2 images]]&lt;br /&gt;
&lt;br /&gt;
[[Band compositions]]&lt;br /&gt;
&lt;br /&gt;
[[Export band compositions]]&lt;br /&gt;
&lt;br /&gt;
[[Raster algebra: calculating indexes]]&lt;br /&gt;
&lt;br /&gt;
[[Unsupervised classification]]&lt;br /&gt;
&lt;br /&gt;
[[Supervised  classification]]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
https://earth.esa.int/web/sentinel/technical-guides/sentinel-2-msi/msi-instrument&lt;br /&gt;
&lt;br /&gt;
http://esa-sen4cap.org/content/eo-products&lt;br /&gt;
&lt;br /&gt;
https://sentinel.esa.int/web/sentinel/user-guides/sentinel-2-msi/document-library&lt;br /&gt;
&lt;br /&gt;
https://www.indexdatabase.de/db/s-single.php?id=96&lt;br /&gt;
&lt;br /&gt;
https://land.copernicus.eu/global/products/ba&lt;br /&gt;
&lt;br /&gt;
https://fromgistors.blogspot.com/2016/11/from-image-download-to-ndvi-calculation.html&lt;br /&gt;
&lt;br /&gt;
http://www.qgis.pt/blog/2016/12/14/detecao-remota-com-o-qgis/ (em Português)&lt;br /&gt;
&lt;br /&gt;
== Wikidata Sixth Birthday ==&lt;br /&gt;
&lt;br /&gt;
[[File:Birthday banner for 4th Wikidata Birthday.png]]&lt;br /&gt;
&lt;br /&gt;
=== Objectivo ===&lt;br /&gt;
&lt;br /&gt;
Fazer uma mapa:&lt;br /&gt;
# Mostrar as ruas, largos, praças e outros espaços com topónimos&lt;br /&gt;
# Poder filtrar por:&lt;br /&gt;
## sexo&lt;br /&gt;
## ocupação (religioso, militar poeta, escritor, político...&lt;br /&gt;
## século&lt;br /&gt;
## etc&lt;br /&gt;
&lt;br /&gt;
Eventualmente, fazer um quantos gráficos, com percentagens:&lt;br /&gt;
# topónimos com nome de pessoas versus outras origens&lt;br /&gt;
# nomes de mulheres versus nomes de homens&lt;br /&gt;
# políticos versus artes e ciências&lt;br /&gt;
&lt;br /&gt;
=== Problema ===&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap não existe informação sobre as propriedades do topónimo. O topónimo pode estar escrito de diversas formas e contém partes que não interessam (Rua, Avenida, Prof, Doutor, etc). (Nota: cruzar com o dataset da [http://centraldedados.pt/codigos_postais/ Central de Dados dos Códigos Postais]).&lt;br /&gt;
&lt;br /&gt;
A [https://www.openstreetmap.org/way/35997529#map=16/41.1809/-8.6094 Rua de São Tomé] refere-se a uma pessoa? &lt;br /&gt;
&lt;br /&gt;
Rua Egas Moniz. Qual [https://pt.wikipedia.org/wiki/Egas_Moniz Egas Moniz]?&lt;br /&gt;
&lt;br /&gt;
==== Solução ====&lt;br /&gt;
&lt;br /&gt;
Wikidata! Diferença entre a página da [https://pt.wikipedia.org/wiki/Ant%C3%B3nio_Egas_Moniz Wikipédia do Egas Moniz] e a da [https://www.wikidata.org/wiki/Q273219 Wikidata da mesma pessoa].&lt;br /&gt;
&lt;br /&gt;
Criei a entidade: https://www.wikidata.org/wiki/Q58129518&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap já se usa uma tag [https://wiki.openstreetmap.org/wiki/Key:wikidata wikidata] para entidades geográficas bem conhecidas, como a [https://www.openstreetmap.org/way/247168260 Torre dos Clérigos].&lt;br /&gt;
&lt;br /&gt;
Existe uma proposta para acrescentar a origem de um determinado nome, usando a tag [https://wiki.openstreetmap.org/wiki/Key:name:etymology name:etymology].&lt;br /&gt;
&lt;br /&gt;
==== Limitações ====&lt;br /&gt;
&lt;br /&gt;
Nem tudo está na Wikidata. Na verdade, existe pouca informação (sobre Portugal) no Wikidata.&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap também não há muitas tags wikidata.&lt;br /&gt;
&lt;br /&gt;
==== Resolução das limitações ====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Editar o OpenStreetMap e a Wikidata!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Nota: área pantanosa em relação às licenças: CC-0 versus ODBL.&lt;br /&gt;
&lt;br /&gt;
==== Outras fontes de dados ====&lt;br /&gt;
&lt;br /&gt;
Central de dados&lt;br /&gt;
&lt;br /&gt;
http://centraldedados.pt/nomes_proprios/&lt;br /&gt;
&lt;br /&gt;
https://genderize.io/&lt;br /&gt;
&lt;br /&gt;
==== Algum código de base ====&lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/pdiasalmeida/osm-street-names&lt;br /&gt;
&lt;br /&gt;
== Open Data Day, 2018 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Logo odd 2018.png]]&lt;br /&gt;
&lt;br /&gt;
[[Introdução ao OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
[[Serviços sobre os dados do OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
[[Dados OpenStreetMap no QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Dados OpenStreetMap no PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
[[OpenStreetMap API]]&lt;br /&gt;
&lt;br /&gt;
[[Routing com os dados do OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
== SIG desktop com QGIS ==&lt;br /&gt;
&lt;br /&gt;
Introdução à interface do QGIS, a visualização complementar de geometrias e dados, filtrar, selecionar, expressões, trabalhar com a seleção, etc.&lt;br /&gt;
&lt;br /&gt;
[[Instalação QGIS no Windows com base no OSGeo4W]]&lt;br /&gt;
&lt;br /&gt;
Instalação da primeira extensão [https://plugins.qgis.org/plugins/quick_map_services/ QuickMapServices].&lt;br /&gt;
&lt;br /&gt;
Os dados vectoriais referem-se a entidades que têm uma componente espacial (geográfica) e um conjunto de atributos.&lt;br /&gt;
&lt;br /&gt;
[[Explorar dados vectoriais]]&lt;br /&gt;
&lt;br /&gt;
[[Georreferenciação de imagens e criação de camadas]]&lt;br /&gt;
&lt;br /&gt;
[[Edição de dados vetoriais]]&lt;br /&gt;
&lt;br /&gt;
[[Geração de um modelo digital do terreno]]&lt;br /&gt;
&lt;br /&gt;
Acrescentar melhorias aos formulários:&lt;br /&gt;
# campos que se atualizam automaticamente&lt;br /&gt;
# joins e formulários com combox&lt;br /&gt;
# um exemplo de uma relação master → detail&lt;br /&gt;
&lt;br /&gt;
[[Ligação a uma base de dados Postgresql]]&lt;br /&gt;
&lt;br /&gt;
[[Análise espacial com rasters]]&lt;br /&gt;
&lt;br /&gt;
==== Para rever ou eliminar... ====&lt;br /&gt;
&lt;br /&gt;
[[Geoprocessamento]]&lt;br /&gt;
&lt;br /&gt;
[[Criar camadas vectoriais]]&lt;br /&gt;
&lt;br /&gt;
Os dados raster referem-se a superfícies contínuas, cujas propriedades se vão alterando ao longo da superfície.&lt;br /&gt;
&lt;br /&gt;
Visualizar dados raster, calculadora raster, calcular o aspecto, declives, mostrar um perfil.&lt;br /&gt;
&lt;br /&gt;
[[Explorar dados raster]]&lt;br /&gt;
&lt;br /&gt;
Cruzar camadas, associar imagens, associar ações a entidades geográficas&lt;br /&gt;
&lt;br /&gt;
[[Cruzar dados vectoriais]]&lt;br /&gt;
&lt;br /&gt;
Introdução à análise espacial: cálculo de áreas de influência, recorte em função da localização, etc.&lt;br /&gt;
&lt;br /&gt;
[[Introdução à análise espacial]]&lt;br /&gt;
&lt;br /&gt;
[[Georreferenciação de mapas]]&lt;br /&gt;
&lt;br /&gt;
[[Criação de camadas]]&lt;br /&gt;
&lt;br /&gt;
[[Teste de auto-avaliação]]&lt;br /&gt;
&lt;br /&gt;
== SIG desktop com QGIS: Tópicos avançados ==&lt;br /&gt;
&lt;br /&gt;
[[Exercício de aquecimento]]&lt;br /&gt;
&lt;br /&gt;
[[QGIS com Postgresql]]&lt;br /&gt;
&lt;br /&gt;
[[Edição de informação geográfica]]&lt;br /&gt;
&lt;br /&gt;
O processamento com o QGIS é tão assustador como fabuloso. Assustador pela diversidade de alternativas que apresenta e fabuloso pela mesma razão. Além de todas as capacidades de processamento que tem no próprio código, O QGIS liga-se muito bem a outros software de processamento, como o GRASS, SAGA, Orfeo Toolbox, etc.&lt;br /&gt;
&lt;br /&gt;
[[Processamento em QGIS]]&lt;br /&gt;
&lt;br /&gt;
As imagens Sentinel são disponibilizadas pela ESA. O tratamento de imagens Sentinel-2 com a extensão [https://fromgistors.blogspot.com/p/semi-automatic-classification-plugin.html Semi-Automatic Classification Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Tratamento de imagens Sentinel]]&lt;br /&gt;
&lt;br /&gt;
As imagens raster podem ser geridas a partir do sistema de ficheiros ou a partir da base de dados Postgresql.&lt;br /&gt;
&lt;br /&gt;
[[Suporte Postgresql para rasters]]&lt;br /&gt;
&lt;br /&gt;
O QGIS está escrito em C++ que é uma linguagem orientado a objetos, que gera código muito eficiente. O QGIS usa a biblioteca QT para todas as componentes de interface com o utilizador.&lt;br /&gt;
Embora todo o núcleo esteja em C++, todas as funcionalidades são expostas para outras aplicações através de uma API que pode ser invocada a partir do Python. Ou seja, a partir de um programa Python, podemos comandar o QGIS e tirar partido de todas as suas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
[[Explorar o QGIS a partir do Python]]&lt;br /&gt;
&lt;br /&gt;
[[QField: o QGIS ao ar livre]]&lt;br /&gt;
&lt;br /&gt;
[[Sobre a preparação desta formação]]&lt;br /&gt;
&lt;br /&gt;
== Base de dados espaciais com Postgresql ==&lt;br /&gt;
&lt;br /&gt;
== Data ==&lt;br /&gt;
&lt;br /&gt;
[https://resourcewatch.org/ Resource Watch – Monitoring the Planet&amp;#039;s Pulse]&lt;br /&gt;
&lt;br /&gt;
== Spatial Data Mining ==&lt;br /&gt;
&lt;br /&gt;
* [https://geodacenter.github.io/ GeoDa] is a free and open source software tool that serves as an introduction to spatial data analysis.&lt;br /&gt;
* [https://github.com/MapPlus/spatial_statistics_for_geotools_udig GeoAnalysis library] is a java-based open source for geospatial analysis.&lt;br /&gt;
&lt;br /&gt;
== QGIS na área da Saúde ==&lt;br /&gt;
&lt;br /&gt;
[https://plugins.qgis.org/plugins/GeoHealth/ Plugin GeoHealth]&lt;br /&gt;
&lt;br /&gt;
== QGIS na área da Arqueologia ==&lt;br /&gt;
&lt;br /&gt;
Tratamento dos arqueossítios em http://www.geira.pt/arqueo/ListaArqueossitios.html&lt;br /&gt;
&lt;br /&gt;
xml disponível em: http://www4.di.uminho.pt/~jcr/XML/didac/xmldocs/arq.xml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget http://www4.di.uminho.pt/~jcr/XML/didac/xmldocs/arq.xml&lt;br /&gt;
xsltproc sample.xsl arq.xml &amp;gt; arq.csv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:output type=&amp;quot;text&amp;quot; indent=&amp;quot;no&amp;quot; omit-xml-declaration=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;xsl:strip-space elements=&amp;quot;*&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;//ARQELEM&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:value-of select=&amp;quot;normalize-space(IDENTI)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(DESCRI)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(CRONO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(FREGUE)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(CONCEL)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(LATITU)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(LONGIT)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(ALTITU)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(ACESSO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(QUADRO)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(TRAARQ)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(DESARQ)&amp;quot;/&amp;gt;|&amp;lt;xsl:value-of select=&amp;quot;normalize-space(INTERP)&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tratamento manual:&lt;br /&gt;
&lt;br /&gt;
coordenadas: multiplicar por 1000&lt;br /&gt;
&lt;br /&gt;
usar o separador de campos: |&lt;br /&gt;
&lt;br /&gt;
usar o delimitador de campos: &amp;#039;&lt;br /&gt;
&lt;br /&gt;
Sistemas de coordenadas: EPSG:20790&lt;br /&gt;
&lt;br /&gt;
Resultado final: arqueossitios.csv&lt;br /&gt;
&lt;br /&gt;
== Dados do OpenStreetMap ==&lt;br /&gt;
&lt;br /&gt;
* Introdução ao OpenStreetMap&lt;br /&gt;
* Dados do OpenStreetMap no QGIS&lt;br /&gt;
* Dados do OpenStreetMap no Postgresql&lt;br /&gt;
* Queries com OverPass API, http://overpass-turbo.eu/&lt;br /&gt;
* Routing com os dados do OpenStreetMap (OpenTripPlanner)&lt;br /&gt;
* Routing com MAPS.ME&lt;br /&gt;
* Usar os mapas do OpenStreetMap num blog&lt;br /&gt;
&lt;br /&gt;
=== Requisitos ===&lt;br /&gt;
&lt;br /&gt;
* Computador c/ algum espaço livre&lt;br /&gt;
* Dados: serão descarregados na hora, a partir de: http://openstreetmap.pt/wp-content/uploads/&lt;br /&gt;
* Software&lt;br /&gt;
** QGIS 2.18.17 LTR&lt;br /&gt;
** Postgresql v9.6 + PostGIS (não é preciso instalar; haverá um servidor na sala)&lt;br /&gt;
** Instalar o MAPS.ME no telemóvel&lt;br /&gt;
&lt;br /&gt;
== Publicação na Web com Geoserver ==&lt;br /&gt;
&lt;br /&gt;
[[Servidores de mapas: conceitos]]&lt;br /&gt;
&lt;br /&gt;
[[Instalação do Geoserver]]&lt;br /&gt;
&lt;br /&gt;
[[Disponibilização de uma camada WMS/WFS]]&lt;br /&gt;
&lt;br /&gt;
[[Disponibilização de uma camada WMTS]]&lt;br /&gt;
&lt;br /&gt;
[[Publicação de grupos]]&lt;br /&gt;
&lt;br /&gt;
== Publicação na Web com uMap ==&lt;br /&gt;
&lt;br /&gt;
A plataforma uMap permite criar mapas de uma forma simples. Os mapas criados podem ser incorporados num blog ou num site.&lt;br /&gt;
&lt;br /&gt;
[[O meu primeiro mapa com o uMap]]&lt;br /&gt;
&lt;br /&gt;
== Drones ==&lt;br /&gt;
&lt;br /&gt;
[[DJI MAVIC 2 PRO]]&lt;br /&gt;
&lt;br /&gt;
[[Flight planner]]&lt;br /&gt;
&lt;br /&gt;
[[Running OpenDroneMap]]&lt;br /&gt;
&lt;br /&gt;
== Contribuir para projectos Open Source no domínio dos SIG ==&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o Nominatim]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para plugins QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o OpenTripPlanner]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o GeoExt]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o PostGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o curso PostGIS com Rasters]]&lt;br /&gt;
&lt;br /&gt;
= Outros cursos e recursos =&lt;br /&gt;
&lt;br /&gt;
[http://training.gismentors.eu/isprs-summer-school-2016/index.html ISPRS Congress 2016 Summer School]&lt;br /&gt;
&lt;br /&gt;
[http://training.gismentors.eu/grass-gis-workshop-jena-2018/index.html GRASS GIS Workshop in Jena]&lt;br /&gt;
&lt;br /&gt;
[https://www.hatarilabs.com/ih-en/working-with-sentinel-2-imagery-on-qgis Working with Sentinel 2 Imagery on QGIS]&lt;br /&gt;
&lt;br /&gt;
[https://uwgis.wordpress.com/gis-practicals/flood-risk-mapping/ QGIS Flood Risk Mapping]&lt;br /&gt;
&lt;br /&gt;
[[Como gravar cursos em vídeo]]&lt;br /&gt;
&lt;br /&gt;
= Propostas =&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Generalização Cartográfica]], em parceria com IBGE&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Deteção de estradas em imagens Sentinel-2]], em parceria com IBGE&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Ler cartas náuticas]], em parceria com a comunidade QGIS e de acordo com esta [https://github.com/faunalia/qnavigate proposta de melhoramento]&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Carregar informação meteorológica]], em parceria com a comunidade QGIS e de acordo com esta [https://github.com/faunalia/qnavigate proposta de melhoramento]&lt;br /&gt;
&lt;br /&gt;
[[QGIS:Plugin para dados do INE]]&lt;br /&gt;
&lt;br /&gt;
[[QGIS:Plugin para sobre a Saúde em Portugal]]&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Como_gravar_cursos_em_v%C3%ADdeo&amp;diff=939</id>
		<title>Como gravar cursos em vídeo</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Como_gravar_cursos_em_v%C3%ADdeo&amp;diff=939"/>
		<updated>2019-04-11T10:34:20Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Telemóvel como WebCam */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Aplicações ===&lt;br /&gt;
&lt;br /&gt;
==== Screen capture ====&lt;br /&gt;
&lt;br /&gt;
RecordMyDesktop - Só a área da janela da aplicação (QGIS, Firefox, etc). Nas opções retirar as decorações (da janela).&lt;br /&gt;
&lt;br /&gt;
Por o fundo do desktop amarelo&lt;br /&gt;
&lt;br /&gt;
Preparar a janela&lt;br /&gt;
&lt;br /&gt;
Usar a resolução 1280x720&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;Usar a resolução 1366x768 &amp;#039;&amp;#039;(Standardized HDTV 720p/1080i displays or “HD ready”, used in most cheaper notebooks)&amp;#039;&amp;#039;&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install wmctrl&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/dev/scrcpy/x$ wmctrl -lG&lt;br /&gt;
0x02200002 -1 7054 54   313  763  zoe conky (zoe)&lt;br /&gt;
0x05a00010  0 1930 64   1808 1052 zoe command line - How do I find the window dimensions and position accurately including decorations? - Unix &amp;amp; Linux Stack Exchange - Mozilla Firefox&lt;br /&gt;
0x06c00006  0 10   91   960  1025 zoe jgr@zoe: ~/dev/scrcpy/x&lt;br /&gt;
0x07a00003  0 87   171  567  692  zoe Controlo de Volume&lt;br /&gt;
0x06009d29  0 3964 96   1299 939  zoe Formulários&lt;br /&gt;
0x06e00010  0 440  208  1280 720  N/A *exercicio - QGIS 6a2c31d897&lt;br /&gt;
0x0605e92f  0 -72  -10  1583 1097 zoe Pasta pessoal&lt;br /&gt;
0x07800017  0 0    83   1920 1025 N/A Untitled* / HD 1080p 25 fps — Kdenlive&lt;br /&gt;
0x06c0672a  0 34   566  654  434  zoe jgr@zoe: ~&lt;br /&gt;
&lt;br /&gt;
wmctrl -r &amp;quot;Untitled Project - QGIS 6a2c31d897&amp;quot; -e 0,633,265,1280,720&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Anotações no ecrã ====&lt;br /&gt;
&lt;br /&gt;
http://manpages.ubuntu.com/manpages/cosmic/man1/gromit-mpx.1.html&lt;br /&gt;
&lt;br /&gt;
sudo apt install gromit-mpx&lt;br /&gt;
&lt;br /&gt;
Começa: F9&lt;br /&gt;
Shift F9&lt;br /&gt;
draw/Shift draw&lt;br /&gt;
&lt;br /&gt;
==== Telemóvel como WebCam ====&lt;br /&gt;
&lt;br /&gt;
Usar o [https://github.com/Genymobile/scrcpy scrcpy] para controlar a câmara.&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-11-18 16-50-59.png]]&lt;br /&gt;
&lt;br /&gt;
Ligar por Wifi (na mesma rede)&lt;br /&gt;
&lt;br /&gt;
Começar com a ligação por USB, para configurar o &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;adb&amp;lt;/syntaxhighlight&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ligar USB. (Tem que se permitir &amp;quot;Depuração por USB&amp;quot;, nas &amp;quot;Opções do programador&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~$ adb devices&lt;br /&gt;
List of devices attached&lt;br /&gt;
ce071717210b872104	device&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descobrir o IP do telefone&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~$ arp -a&lt;br /&gt;
unknown80b234059058.lan (192.168.1.65) em 80:b2:34:05:90:58 [ether] em wlp2s0&lt;br /&gt;
vodafonegw (192.168.1.1) em 50:1d:93:b8:f6:21 [ether] em wlp2s0&lt;br /&gt;
Sternschanze.lan (192.168.1.66) em 24:18:1d:0e:c3:66 [ether] em wlp2s0&lt;br /&gt;
&lt;br /&gt;
adb tcpip 5555&lt;br /&gt;
adb connect 192.168.1.66:5555&lt;br /&gt;
&lt;br /&gt;
# desligar o cabo USB (para não ter dois devices, um por USB e outro por rede)&lt;br /&gt;
&lt;br /&gt;
scrcpy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Kdenlive ====&lt;br /&gt;
&lt;br /&gt;
==== Audacity ====&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Microfone - KIMU PRO: ligar ao telemóvel&lt;br /&gt;
&lt;br /&gt;
Webcam: usar a câmara do telemóvel&lt;br /&gt;
&lt;br /&gt;
Computador&lt;br /&gt;
&lt;br /&gt;
=== Guiões ===&lt;br /&gt;
&lt;br /&gt;
[[Curso de QGIS]]&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Main_Page&amp;diff=937</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Main_Page&amp;diff=937"/>
		<updated>2019-04-04T13:26:14Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Propostas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Apresentação =&lt;br /&gt;
&lt;br /&gt;
A formação e a disponibilização de conteúdos faz parte do ADN da Geomaster. Neste espaço, estamos a juntar todos os conteúdos das nossas formações, que ainda estão dispersos por vários sítios.&lt;br /&gt;
&lt;br /&gt;
== Onde e como pedir ajuda? ==&lt;br /&gt;
&lt;br /&gt;
[https://lists.osgeo.org/mailman/listinfo/portugal Lista portuguesa da OSGeo]&lt;br /&gt;
&lt;br /&gt;
[https://lists.osgeo.org/mailman/listinfo/qgis-user Lista internacional do QGIS]&lt;br /&gt;
&lt;br /&gt;
https://gis.stackexchange.com/&lt;br /&gt;
&lt;br /&gt;
A Geomaster está oferecer suporte ao QGIS, de forma gratuita. Use o centro de suporte disponível em [https://ticket.geomaster.pt/open.php?lang=pt_PT ticket.geomaster.pt].&lt;br /&gt;
&lt;br /&gt;
Antes de pedir ajuda, faça o trabalho de casa. Pesquise na net se a questão já foi levantada e resolvida.&lt;br /&gt;
&lt;br /&gt;
Para procurar nas listas do QGIS, use o endereço: http://osgeo-org.1560.x6.nabble.com/QGIS-f4099105.html&lt;br /&gt;
&lt;br /&gt;
= Requisitos =&lt;br /&gt;
&lt;br /&gt;
Para fazer os exercícios propostos, precisa de ter algum espaço livre e o software necessário instalado. Os exercícios são independentes do sistema operativo: tanto pode usar Linux, Windows ou macOS.&lt;br /&gt;
&lt;br /&gt;
== Máquina virtual OSGeo Live ==&lt;br /&gt;
&lt;br /&gt;
Uma boa alternativa para a formação é a utilização da máquina virtual [https://live.osgeo.org/en/index.html OSGeo Live] que já tem todo o software SIG necessário.&lt;br /&gt;
&lt;br /&gt;
= Conteúdos =&lt;br /&gt;
&lt;br /&gt;
== Sentinel-2 Image processing using QGIS+SCP ==&lt;br /&gt;
&lt;br /&gt;
Notes from Sentinel-2 Image processing using QGIS+SCP course at Skovskolen, Nødebo.&lt;br /&gt;
&lt;br /&gt;
Documentation:&lt;br /&gt;
&lt;br /&gt;
[https://readthedocs.org/projects/semiautomaticclassificationmanual/downloads/pdf/latest/ Semi-Automatic Classification Plugin Documentation]&lt;br /&gt;
&lt;br /&gt;
[[Installing SCP in Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
[[Create a Copernicus Open Access Hub account]]&lt;br /&gt;
&lt;br /&gt;
[[Search and download Sentinel-2 images]]&lt;br /&gt;
&lt;br /&gt;
[[Search and download Landsat 8 images]]&lt;br /&gt;
&lt;br /&gt;
[[Radiance to reflectance]]&lt;br /&gt;
&lt;br /&gt;
[[Clip Sentinel-2 images]]&lt;br /&gt;
&lt;br /&gt;
[[Band compositions]]&lt;br /&gt;
&lt;br /&gt;
[[Export band compositions]]&lt;br /&gt;
&lt;br /&gt;
[[Raster algebra: calculating indexes]]&lt;br /&gt;
&lt;br /&gt;
[[Unsupervised classification]]&lt;br /&gt;
&lt;br /&gt;
[[Supervised  classification]]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
https://earth.esa.int/web/sentinel/technical-guides/sentinel-2-msi/msi-instrument&lt;br /&gt;
&lt;br /&gt;
http://esa-sen4cap.org/content/eo-products&lt;br /&gt;
&lt;br /&gt;
https://sentinel.esa.int/web/sentinel/user-guides/sentinel-2-msi/document-library&lt;br /&gt;
&lt;br /&gt;
https://www.indexdatabase.de/db/s-single.php?id=96&lt;br /&gt;
&lt;br /&gt;
https://land.copernicus.eu/global/products/ba&lt;br /&gt;
&lt;br /&gt;
https://fromgistors.blogspot.com/2016/11/from-image-download-to-ndvi-calculation.html&lt;br /&gt;
&lt;br /&gt;
http://www.qgis.pt/blog/2016/12/14/detecao-remota-com-o-qgis/ (em Português)&lt;br /&gt;
&lt;br /&gt;
== Wikidata Sixth Birthday ==&lt;br /&gt;
&lt;br /&gt;
[[File:Birthday banner for 4th Wikidata Birthday.png]]&lt;br /&gt;
&lt;br /&gt;
=== Objectivo ===&lt;br /&gt;
&lt;br /&gt;
Fazer uma mapa:&lt;br /&gt;
# Mostrar as ruas, largos, praças e outros espaços com topónimos&lt;br /&gt;
# Poder filtrar por:&lt;br /&gt;
## sexo&lt;br /&gt;
## ocupação (religioso, militar poeta, escritor, político...&lt;br /&gt;
## século&lt;br /&gt;
## etc&lt;br /&gt;
&lt;br /&gt;
Eventualmente, fazer um quantos gráficos, com percentagens:&lt;br /&gt;
# topónimos com nome de pessoas versus outras origens&lt;br /&gt;
# nomes de mulheres versus nomes de homens&lt;br /&gt;
# políticos versus artes e ciências&lt;br /&gt;
&lt;br /&gt;
=== Problema ===&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap não existe informação sobre as propriedades do topónimo. O topónimo pode estar escrito de diversas formas e contém partes que não interessam (Rua, Avenida, Prof, Doutor, etc). (Nota: cruzar com o dataset da [http://centraldedados.pt/codigos_postais/ Central de Dados dos Códigos Postais]).&lt;br /&gt;
&lt;br /&gt;
A [https://www.openstreetmap.org/way/35997529#map=16/41.1809/-8.6094 Rua de São Tomé] refere-se a uma pessoa? &lt;br /&gt;
&lt;br /&gt;
Rua Egas Moniz. Qual [https://pt.wikipedia.org/wiki/Egas_Moniz Egas Moniz]?&lt;br /&gt;
&lt;br /&gt;
==== Solução ====&lt;br /&gt;
&lt;br /&gt;
Wikidata! Diferença entre a página da [https://pt.wikipedia.org/wiki/Ant%C3%B3nio_Egas_Moniz Wikipédia do Egas Moniz] e a da [https://www.wikidata.org/wiki/Q273219 Wikidata da mesma pessoa].&lt;br /&gt;
&lt;br /&gt;
Criei a entidade: https://www.wikidata.org/wiki/Q58129518&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap já se usa uma tag [https://wiki.openstreetmap.org/wiki/Key:wikidata wikidata] para entidades geográficas bem conhecidas, como a [https://www.openstreetmap.org/way/247168260 Torre dos Clérigos].&lt;br /&gt;
&lt;br /&gt;
Existe uma proposta para acrescentar a origem de um determinado nome, usando a tag [https://wiki.openstreetmap.org/wiki/Key:name:etymology name:etymology].&lt;br /&gt;
&lt;br /&gt;
==== Limitações ====&lt;br /&gt;
&lt;br /&gt;
Nem tudo está na Wikidata. Na verdade, existe pouca informação (sobre Portugal) no Wikidata.&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap também não há muitas tags wikidata.&lt;br /&gt;
&lt;br /&gt;
==== Resolução das limitações ====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Editar o OpenStreetMap e a Wikidata!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Nota: área pantanosa em relação às licenças: CC-0 versus ODBL.&lt;br /&gt;
&lt;br /&gt;
==== Outras fontes de dados ====&lt;br /&gt;
&lt;br /&gt;
Central de dados&lt;br /&gt;
&lt;br /&gt;
http://centraldedados.pt/nomes_proprios/&lt;br /&gt;
&lt;br /&gt;
https://genderize.io/&lt;br /&gt;
&lt;br /&gt;
==== Algum código de base ====&lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/pdiasalmeida/osm-street-names&lt;br /&gt;
&lt;br /&gt;
== Open Data Day, 2018 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Logo odd 2018.png]]&lt;br /&gt;
&lt;br /&gt;
[[Introdução ao OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
[[Serviços sobre os dados do OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
[[Dados OpenStreetMap no QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Dados OpenStreetMap no PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
[[OpenStreetMap API]]&lt;br /&gt;
&lt;br /&gt;
[[Routing com os dados do OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
== SIG desktop com QGIS ==&lt;br /&gt;
&lt;br /&gt;
Introdução à interface do QGIS, a visualização complementar de geometrias e dados, filtrar, selecionar, expressões, trabalhar com a seleção, etc.&lt;br /&gt;
&lt;br /&gt;
[[Instalação QGIS no Windows com base no OSGeo4W]]&lt;br /&gt;
&lt;br /&gt;
Instalação da primeira extensão [https://plugins.qgis.org/plugins/quick_map_services/ QuickMapServices].&lt;br /&gt;
&lt;br /&gt;
Os dados vectoriais referem-se a entidades que têm uma componente espacial (geográfica) e um conjunto de atributos.&lt;br /&gt;
&lt;br /&gt;
[[Explorar dados vectoriais]]&lt;br /&gt;
&lt;br /&gt;
[[Georreferenciação de imagens e criação de camadas]]&lt;br /&gt;
&lt;br /&gt;
[[Edição de dados vetoriais]]&lt;br /&gt;
&lt;br /&gt;
[[Geração de um modelo digital do terreno]]&lt;br /&gt;
&lt;br /&gt;
Acrescentar melhorias aos formulários:&lt;br /&gt;
# campos que se atualizam automaticamente&lt;br /&gt;
# joins e formulários com combox&lt;br /&gt;
# um exemplo de uma relação master → detail&lt;br /&gt;
&lt;br /&gt;
[[Ligação a uma base de dados Postgresql]]&lt;br /&gt;
&lt;br /&gt;
[[Análise espacial com rasters]]&lt;br /&gt;
&lt;br /&gt;
==== Para rever ou eliminar... ====&lt;br /&gt;
&lt;br /&gt;
[[Geoprocessamento]]&lt;br /&gt;
&lt;br /&gt;
[[Criar camadas vectoriais]]&lt;br /&gt;
&lt;br /&gt;
Os dados raster referem-se a superfícies contínuas, cujas propriedades se vão alterando ao longo da superfície.&lt;br /&gt;
&lt;br /&gt;
Visualizar dados raster, calculadora raster, calcular o aspecto, declives, mostrar um perfil.&lt;br /&gt;
&lt;br /&gt;
[[Explorar dados raster]]&lt;br /&gt;
&lt;br /&gt;
Cruzar camadas, associar imagens, associar ações a entidades geográficas&lt;br /&gt;
&lt;br /&gt;
[[Cruzar dados vectoriais]]&lt;br /&gt;
&lt;br /&gt;
Introdução à análise espacial: cálculo de áreas de influência, recorte em função da localização, etc.&lt;br /&gt;
&lt;br /&gt;
[[Introdução à análise espacial]]&lt;br /&gt;
&lt;br /&gt;
[[Georreferenciação de mapas]]&lt;br /&gt;
&lt;br /&gt;
[[Criação de camadas]]&lt;br /&gt;
&lt;br /&gt;
[[Teste de auto-avaliação]]&lt;br /&gt;
&lt;br /&gt;
== SIG desktop com QGIS: Tópicos avançados ==&lt;br /&gt;
&lt;br /&gt;
[[Exercício de aquecimento]]&lt;br /&gt;
&lt;br /&gt;
[[QGIS com Postgresql]]&lt;br /&gt;
&lt;br /&gt;
[[Edição de informação geográfica]]&lt;br /&gt;
&lt;br /&gt;
O processamento com o QGIS é tão assustador como fabuloso. Assustador pela diversidade de alternativas que apresenta e fabuloso pela mesma razão. Além de todas as capacidades de processamento que tem no próprio código, O QGIS liga-se muito bem a outros software de processamento, como o GRASS, SAGA, Orfeo Toolbox, etc.&lt;br /&gt;
&lt;br /&gt;
[[Processamento em QGIS]]&lt;br /&gt;
&lt;br /&gt;
As imagens Sentinel são disponibilizadas pela ESA. O tratamento de imagens Sentinel-2 com a extensão [https://fromgistors.blogspot.com/p/semi-automatic-classification-plugin.html Semi-Automatic Classification Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Tratamento de imagens Sentinel]]&lt;br /&gt;
&lt;br /&gt;
As imagens raster podem ser geridas a partir do sistema de ficheiros ou a partir da base de dados Postgresql.&lt;br /&gt;
&lt;br /&gt;
[[Suporte Postgresql para rasters]]&lt;br /&gt;
&lt;br /&gt;
O QGIS está escrito em C++ que é uma linguagem orientado a objetos, que gera código muito eficiente. O QGIS usa a biblioteca QT para todas as componentes de interface com o utilizador.&lt;br /&gt;
Embora todo o núcleo esteja em C++, todas as funcionalidades são expostas para outras aplicações através de uma API que pode ser invocada a partir do Python. Ou seja, a partir de um programa Python, podemos comandar o QGIS e tirar partido de todas as suas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
[[Explorar o QGIS a partir do Python]]&lt;br /&gt;
&lt;br /&gt;
[[QField: o QGIS ao ar livre]]&lt;br /&gt;
&lt;br /&gt;
[[Sobre a preparação desta formação]]&lt;br /&gt;
&lt;br /&gt;
== Base de dados espaciais com Postgresql ==&lt;br /&gt;
&lt;br /&gt;
== Data ==&lt;br /&gt;
&lt;br /&gt;
[https://resourcewatch.org/ Resource Watch – Monitoring the Planet&amp;#039;s Pulse]&lt;br /&gt;
&lt;br /&gt;
== Spatial Data Mining ==&lt;br /&gt;
&lt;br /&gt;
* [https://geodacenter.github.io/ GeoDa] is a free and open source software tool that serves as an introduction to spatial data analysis.&lt;br /&gt;
* [https://github.com/MapPlus/spatial_statistics_for_geotools_udig GeoAnalysis library] is a java-based open source for geospatial analysis.&lt;br /&gt;
&lt;br /&gt;
== QGIS na área da Saúde ==&lt;br /&gt;
&lt;br /&gt;
[https://plugins.qgis.org/plugins/GeoHealth/ Plugin GeoHealth]&lt;br /&gt;
&lt;br /&gt;
== Dados do OpenStreetMap ==&lt;br /&gt;
&lt;br /&gt;
* Introdução ao OpenStreetMap&lt;br /&gt;
* Dados do OpenStreetMap no QGIS&lt;br /&gt;
* Dados do OpenStreetMap no Postgresql&lt;br /&gt;
* Queries com OverPass API, http://overpass-turbo.eu/&lt;br /&gt;
* Routing com os dados do OpenStreetMap (OpenTripPlanner)&lt;br /&gt;
* Routing com MAPS.ME&lt;br /&gt;
* Usar os mapas do OpenStreetMap num blog&lt;br /&gt;
&lt;br /&gt;
=== Requisitos ===&lt;br /&gt;
&lt;br /&gt;
* Computador c/ algum espaço livre&lt;br /&gt;
* Dados: serão descarregados na hora, a partir de: http://openstreetmap.pt/wp-content/uploads/&lt;br /&gt;
* Software&lt;br /&gt;
** QGIS 2.18.17 LTR&lt;br /&gt;
** Postgresql v9.6 + PostGIS (não é preciso instalar; haverá um servidor na sala)&lt;br /&gt;
** Instalar o MAPS.ME no telemóvel&lt;br /&gt;
&lt;br /&gt;
== Publicação na Web com Geoserver ==&lt;br /&gt;
&lt;br /&gt;
[[Servidores de mapas: conceitos]]&lt;br /&gt;
&lt;br /&gt;
[[Instalação do Geoserver]]&lt;br /&gt;
&lt;br /&gt;
[[Disponibilização de uma camada WMS/WFS]]&lt;br /&gt;
&lt;br /&gt;
[[Disponibilização de uma camada WMTS]]&lt;br /&gt;
&lt;br /&gt;
[[Publicação de grupos]]&lt;br /&gt;
&lt;br /&gt;
== Publicação na Web com uMap ==&lt;br /&gt;
&lt;br /&gt;
A plataforma uMap permite criar mapas de uma forma simples. Os mapas criados podem ser incorporados num blog ou num site.&lt;br /&gt;
&lt;br /&gt;
[[O meu primeiro mapa com o uMap]]&lt;br /&gt;
&lt;br /&gt;
== Drones ==&lt;br /&gt;
&lt;br /&gt;
[[DJI MAVIC 2 PRO]]&lt;br /&gt;
&lt;br /&gt;
[[Flight planner]]&lt;br /&gt;
&lt;br /&gt;
[[Running OpenDroneMap]]&lt;br /&gt;
&lt;br /&gt;
== Contribuir para projectos Open Source no domínio dos SIG ==&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o Nominatim]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para plugins QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o OpenTripPlanner]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o GeoExt]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o PostGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o curso PostGIS com Rasters]]&lt;br /&gt;
&lt;br /&gt;
= Outros cursos e recursos =&lt;br /&gt;
&lt;br /&gt;
[http://training.gismentors.eu/isprs-summer-school-2016/index.html ISPRS Congress 2016 Summer School]&lt;br /&gt;
&lt;br /&gt;
[http://training.gismentors.eu/grass-gis-workshop-jena-2018/index.html GRASS GIS Workshop in Jena]&lt;br /&gt;
&lt;br /&gt;
[https://www.hatarilabs.com/ih-en/working-with-sentinel-2-imagery-on-qgis Working with Sentinel 2 Imagery on QGIS]&lt;br /&gt;
&lt;br /&gt;
[https://uwgis.wordpress.com/gis-practicals/flood-risk-mapping/ QGIS Flood Risk Mapping]&lt;br /&gt;
&lt;br /&gt;
[[Como gravar cursos em vídeo]]&lt;br /&gt;
&lt;br /&gt;
= Propostas =&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Generalização Cartográfica]], em parceria com IBGE&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Deteção de estradas em imagens Sentinel-2]], em parceria com IBGE&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Ler cartas náuticas]], em parceria com a comunidade QGIS e de acordo com esta [https://github.com/faunalia/qnavigate proposta de melhoramento]&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Carregar informação meteorológica]], em parceria com a comunidade QGIS e de acordo com esta [https://github.com/faunalia/qnavigate proposta de melhoramento]&lt;br /&gt;
&lt;br /&gt;
[[QGIS:Plugin para dados do INE]]&lt;br /&gt;
&lt;br /&gt;
[[QGIS:Plugin para sobre a Saúde em Portugal]]&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=935</id>
		<title>Running OpenDroneMap</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=935"/>
		<updated>2019-03-06T16:49:50Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Drone Workshop ===&lt;br /&gt;
&lt;br /&gt;
Part I&lt;br /&gt;
&lt;br /&gt;
0. The data&lt;br /&gt;
&lt;br /&gt;
EPSG:25832&lt;br /&gt;
&lt;br /&gt;
0.1 The images&lt;br /&gt;
&lt;br /&gt;
0.2 The ground control points&lt;br /&gt;
&lt;br /&gt;
0.2.1 Discuss how to get GCP: survey or from a reference dataset&lt;br /&gt;
&lt;br /&gt;
0.3 The flight path&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. WebODM&lt;br /&gt;
&lt;br /&gt;
1.2 Preparation and Installation&lt;br /&gt;
&lt;br /&gt;
1.3 Run our first task&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Overview of the products&lt;br /&gt;
&lt;br /&gt;
2.1 Orthophoto&lt;br /&gt;
&lt;br /&gt;
2.2 Point cloud&lt;br /&gt;
&lt;br /&gt;
2.3 DSM&lt;br /&gt;
&lt;br /&gt;
2.4 DTM&lt;br /&gt;
&lt;br /&gt;
Part II&lt;br /&gt;
&lt;br /&gt;
3. Fine tunning the data&lt;br /&gt;
&lt;br /&gt;
3.1 Clip orthophoto&lt;br /&gt;
&lt;br /&gt;
Create a mask layer&lt;br /&gt;
&lt;br /&gt;
Clip&lt;br /&gt;
&lt;br /&gt;
Enable JPG compression&lt;br /&gt;
&lt;br /&gt;
3.2 Point cloud&lt;br /&gt;
&lt;br /&gt;
Clip with pdal&lt;br /&gt;
&lt;br /&gt;
Classify with pdal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Taking advantagle of the artifacts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Drone workshop print screens]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Flight&lt;br /&gt;
&lt;br /&gt;
WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install docker-compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10:54&lt;br /&gt;
&lt;br /&gt;
2. Data products&lt;br /&gt;
&lt;br /&gt;
2.1 Orthophoto&lt;br /&gt;
&lt;br /&gt;
Discussion: GCP, impact on the elevation model&lt;br /&gt;
&lt;br /&gt;
Swipe tool&lt;br /&gt;
&lt;br /&gt;
Point value: check ortho values&lt;br /&gt;
&lt;br /&gt;
2.2 DEM/DSM&lt;br /&gt;
&lt;br /&gt;
Discussion: difference between&lt;br /&gt;
&lt;br /&gt;
Raster value&lt;br /&gt;
&lt;br /&gt;
Profile tool&lt;br /&gt;
&lt;br /&gt;
Visualization: hillshade&lt;br /&gt;
&lt;br /&gt;
http://plas.io/&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/tutorial/pcl_ground/index.html#pcl-ground&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-- original&lt;br /&gt;
pdal translate -i /code/odm_georeferencing/odm_georeferenced_model.laz -o /code/odm_georeferencing/odm_georeferenced_model.laz smrf --filters.smrf.cell=2 --filters.smrf.slope=10 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- VERY GOOD&lt;br /&gt;
pdal translate -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_2.laz smrf --filters.smrf.cell=2 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- good&lt;br /&gt;
pdal ground -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_3.laz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PotreeConverter odm_georeferenced_model.ply -o ~/dev/potree/examples/odm -p qgis.drone.workshop --overwrite --projection &amp;quot;+proj=utm +zone=32 +ellps=GRS80 +towgs84=0.0.0.0.0.0.0 +units=m&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/dev/potree$ gulp watch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/dev/PotreeConverter/master/build/PotreeConverter$ PotreeConverter ~/Documentos/workshop2/odm_georeferencing/odm_georeferenced_model.ply -o ~/dev/potree/examples/odm -p qgis.drone.workshop --overwrite --projection &amp;quot;+proj=utm +zone=32 +ellps=GRS80 +towgs84=0.0.0.0.0.0.0 +units=m&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.3 Point cloud&lt;br /&gt;
&lt;br /&gt;
What we get from the software&lt;br /&gt;
&lt;br /&gt;
Visualization tools&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/workshop/exercises/analysis/dtm/dtm.html&lt;br /&gt;
&lt;br /&gt;
3. Processing data products&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1 Better classification&lt;br /&gt;
&lt;br /&gt;
lasground&lt;br /&gt;
&lt;br /&gt;
3.2 lasheight&lt;br /&gt;
&lt;br /&gt;
3.3 lasclassify&lt;br /&gt;
&lt;br /&gt;
=== DJI Mavic 2 PRO ===&lt;br /&gt;
&lt;br /&gt;
[https://forum.dji.com/thread-167017-1-1.html Sensor size], [https://www.youtube.com/watch?v=xIncVCe6pg0 Video about sensor size]&lt;br /&gt;
&lt;br /&gt;
==== Erro ====&lt;br /&gt;
&lt;br /&gt;
Culpado: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;/home/jgr/PycharmProjects/OpenDroneMap/modules/odm_extract_utm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todas as imagens estão com Exif.GPSInfo.GPSAltitude = 0.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
      if (lon == 0.0 || lat == 0.0 || alt == 0.0) {&lt;br /&gt;
        std::string error(&amp;quot;Failed parsing GPS position for &amp;quot; + imageFilename);&lt;br /&gt;
        throw UtmExtractorException(error);&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remendo ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.0 m&lt;br /&gt;
&lt;br /&gt;
exiv2 -M&amp;quot;set Exif.GPSInfo.GPSAltitude Rational 1/10&amp;quot; DJI_0210.JPG&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.1 m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chamada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Wrote images database: /code/images.json&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_extract_utm -imagesPath /code/images/ -imageListFile /code/img_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt  -logFile /code/odm_georeferencing/odm_georeferencing_utm_log.txt&lt;br /&gt;
Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[WARNING] Could not generate coordinates file. Ignore if there is a GCP file. Error: Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Building objmodel:&lt;br /&gt;
	Saving model... done.&lt;br /&gt;
Whole texturing procedure took: 225.586s&lt;br /&gt;
[INFO]    Running ODM Texturing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell&lt;br /&gt;
[WARNING] Georeferencing failed. Make sure your photos have geotags in the EXIF or you have provided a GCP file. &lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM DEM Cell&lt;br /&gt;
[INFO]    Classify: True&lt;br /&gt;
[INFO]    Create DSM: True&lt;br /&gt;
[INFO]    Create DTM: True&lt;br /&gt;
[INFO]    DEM input file /code/odm_georeferencing/odm_georeferenced_model.las found: False&lt;br /&gt;
[WARNING] DEM will not be generated&lt;br /&gt;
[INFO]    Running ODM DEM Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Orthophoto Cell&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_orthophoto -inputFile /code/odm_texturing/odm_textured_model.obj -logFile /code/odm_orthophoto/odm_orthophoto_log.txt -outputFile /code/odm_orthophoto/odm_orthophoto.png -resolution 10.0  -outputCornerFile /code/odm_orthophoto/odm_orthophoto_corners.txt&lt;br /&gt;
[WARNING] No geo-referenced orthophoto created due to missing geo-referencing or corner coordinates.&lt;br /&gt;
[INFO]    Running ODM OrthoPhoto Cell - Finished&lt;br /&gt;
[INFO]    OpenDroneMap app finished - Sat Dec 29 22:12:22  2018&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running docker OpenDroneMap ===&lt;br /&gt;
&lt;br /&gt;
==== Update to last OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker pull opendronemap/opendronemap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
# Install docker&lt;br /&gt;
# Add you user to docker group&lt;br /&gt;
# sudo -H pip install requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir OpenDroneMap&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git clone git@github.com:OpenDroneMap/odm_data_aukerman.git&lt;br /&gt;
cd odm_data_aukerman&lt;br /&gt;
&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
ls -l $odmi&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
opendronemap/opendronemap --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sem GCP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado/&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: os ortos estão a ficar com muitas interferências do modelo 3D, nas áreas urbanas.&lt;br /&gt;
&lt;br /&gt;
Related problem: http://community.opendronemap.org/t/buildings/929&lt;br /&gt;
&lt;br /&gt;
Será que voar com a câmara a 75 graus ajuda? Fiz um voo com Double Grid, com a camara a 70 graus (default do Pix4d capture).&lt;br /&gt;
&lt;br /&gt;
==== Mac ====&lt;br /&gt;
&lt;br /&gt;
1. Install Docker&lt;br /&gt;
&lt;br /&gt;
2. &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $(pwd)/images:/code/images -v $(pwd)/odm_orthophoto:/code/odm_orthophoto -v $(pwd)/odm_texturing:/code/odm_texturing -v $(pwd)/odm_georeferencing:/code/odm_georeferencing -v $(pwd)/odm_meshing:/code/odm_meshing -v $(pwd)/opensfm:/code/opensfm -v $(pwd)/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With GCP (calculating 3000-y coordinate)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $(pwd)/images:/code/images -v $(pwd)/odm_orthophoto:/code/odm_orthophoto -v $(pwd)/odm_texturing:/code/odm_texturing -v $(pwd)/odm_georeferencing:/code/odm_georeferencing -v $(pwd)/odm_meshing:/code/odm_meshing -v $(pwd)/opensfm:/code/opensfm -v $(pwd)/odm_dem:/code/odm_dem -v $(pwd)/gcp_list.txt:/code/gcp_list.txt opendronemap/opendronemap --dtm --dsm --gcp gcp_list.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With GCP (ignoring de - in y coordinate)&lt;br /&gt;
&lt;br /&gt;
TIP: ignore the - (minus) in y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd uav_nysted-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $(pwd)/images:/code/images -v $(pwd)/odm_orthophoto:/code/odm_orthophoto -v $(pwd)/odm_texturing:/code/odm_texturing -v $(pwd)/odm_georeferencing:/code/odm_georeferencing -v $(pwd)/odm_meshing:/code/odm_meshing -v $(pwd)/opensfm:/code/opensfm -v $(pwd)/odm_dem:/code/odm_dem -v $(pwd)/gcp_list.txt:/code/gcp_list.txt opendronemap/opendronemap --dtm --dsm --gcp gcp_list.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
Install Docker&lt;br /&gt;
&lt;br /&gt;
Configure docker (more CPU, more memory)&lt;br /&gt;
&lt;br /&gt;
CPUs: 6&lt;br /&gt;
&lt;br /&gt;
Memory: 12032 Mb&lt;br /&gt;
&lt;br /&gt;
Swap: 4096 Mb&lt;br /&gt;
&lt;br /&gt;
Create the projet folder structure&lt;br /&gt;
&lt;br /&gt;
Project folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\&lt;br /&gt;
&lt;br /&gt;
Image folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\images&lt;br /&gt;
&lt;br /&gt;
Create folders for the OpenDroneMap output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd Documents\uav_sckovskolen_feb20018_incl_GCP&lt;br /&gt;
md odm_orthophoto&lt;br /&gt;
md odm_texturing&lt;br /&gt;
md odm_georeferencing&lt;br /&gt;
md odm_meshing&lt;br /&gt;
md opensfm&lt;br /&gt;
md odm_dem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $pwd/images:/code/images -v $pwd/odm_orthophoto:/code/odm_orthophoto -v $pwd/odm_texturing:/code/odm_texturing -v $pwd/odm_georeferencing:/code/odm_georeferencing -v $pwd/odm_meshing:/code/odm_meshing -v $pwd/opensfm:/code/opensfm -v $pwd/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado2xgrid&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0 --mesh-octree-depth 10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer (update) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo chown -R jgr:jgr *&lt;br /&gt;
git clone https://github.com/mapillary/OpenSfM.git&lt;br /&gt;
cd OpenSfM/viewer&lt;br /&gt;
ln -s ../../images .&lt;br /&gt;
python2 -m SimpleHTTPServer 7777&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ sudo chown -R jgr:jgr *&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cp -r ~/dev/OpenSfM/viewer opensfm&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cd opensfm/&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ ln -s ../images .&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ python -m SimpleHTTPServer&lt;br /&gt;
Serving HTTP on 0.0.0.0 port 8000 ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://localhost:8000/viewer/reconstruction.html#file=/reconstruction.json&lt;br /&gt;
&lt;br /&gt;
==== OpenSFM view images on QGIS ====&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/images/DJI_0595.JPG&lt;br /&gt;
&lt;br /&gt;
-8.7515052, 40.6114774, 22.4100000, 2018:08:23 10:05:11&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/opensfm/reference_lla.json&lt;br /&gt;
&lt;br /&gt;
Centro aproximado do ortophoto resultante (adicionado ao projeto QGIS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;latitude&amp;quot;: 40.61272372901514, &lt;br /&gt;
    &amp;quot;altitude&amp;quot;: 0, &lt;br /&gt;
    &amp;quot;longitude&amp;quot;: -8.752983409509966&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;quot;DJI_0595.JPG&amp;quot;: {&lt;br /&gt;
                &amp;quot;orientation&amp;quot;: 1, &lt;br /&gt;
                &amp;quot;camera&amp;quot;: &amp;quot;v2 dji fc220 4000 3000 perspective 0.7222&amp;quot;, &lt;br /&gt;
                &amp;quot;gps_position&amp;quot;: [&lt;br /&gt;
                    125.10012061257521, &lt;br /&gt;
                    -138.4010433354888, &lt;br /&gt;
                    22.407269606366754&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;gps_dop&amp;quot;: 15.0, &lt;br /&gt;
                &amp;quot;rotation&amp;quot;: [&lt;br /&gt;
                    2.1445873611073996, &lt;br /&gt;
                    -2.2856282209697523, &lt;br /&gt;
                    0.20066193557381898&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;translation&amp;quot;: [&lt;br /&gt;
                    -132.67853610360638, &lt;br /&gt;
                    133.40968771622724, &lt;br /&gt;
                    1.9668907291333997&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;capture_time&amp;quot;: 1535018711.0&lt;br /&gt;
            }, &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://github.com/mapillary/OpenSfM/blob/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ wget https://raw.githubusercontent.com/mapillary/OpenSfM/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
NÃO FUNCIONOU...&lt;br /&gt;
&lt;br /&gt;
export_geocoords.py -dataset costanova&lt;br /&gt;
&lt;br /&gt;
Ver: https://github.com/mapillary/OpenSfM/issues/183&lt;br /&gt;
&lt;br /&gt;
=== webODM ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/OpenDroneMap/WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input&lt;br /&gt;
cd WebODM&lt;br /&gt;
./webodm.sh start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jgrocha/xxbatata&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
&lt;br /&gt;
CloudCompare&lt;br /&gt;
&lt;br /&gt;
QGIS Plugin Photo2Shape&lt;br /&gt;
&lt;br /&gt;
Criar uma shapefile photos&lt;br /&gt;
&lt;br /&gt;
Nas propriedades, no campo &amp;lt;syntaxhighlight inline lang=&amp;quot;bash&amp;quot;&amp;gt;filepath&amp;lt;/syntaxhighlight&amp;gt; mudar para o tipo Fotografia.&lt;br /&gt;
&lt;br /&gt;
=== Ground Control File ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo -7.778152 41.833203 957.575989  | cs2cs +init=epsg:4326 +to +init=epsg:3763&lt;br /&gt;
echo 708610.702 6209972.025 26.085 | cs2cs +init=epsg:25832 +to +init=epsg:32633&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:32633 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;#039;&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:25832 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs &amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make my own OpenDroneMap image ==&lt;br /&gt;
&lt;br /&gt;
=== Fork and clone ODM repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone git@github.com:jgrocha/OpenDroneMap.git&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git checkout -b generate-laz-output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change source ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Build new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/PycharmProjects/OpenDroneMap$ docker build --no-cache -t odm_altitude_0 .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t odm_laz_image .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cd &amp;quot;/mnt/bonn/nextCloud/Photos/DJI MAVIC PRO 2 Paradela/100MEDIA&amp;quot;&lt;br /&gt;
cd /mnt/bonn/nextCloud/Photos&lt;br /&gt;
ln -s &amp;#039;DJI MAVIC PRO 2 Paradela/100MEDIA&amp;#039; images&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
docker run --cpus 8 -it --rm -v $odmi/images:/code/images -v $odmi/odm_orthophoto:/code/odm_orthophoto -v $odmi/odm_texturing:/code/odm_texturing -v $odmi/odm_georeferencing:/code/odm_georeferencing -v $odmi/odm_meshing:/code/odm_meshing -v $odmi/opensfm:/code/opensfm -v $odmi/odm_dem:/code/odm_dem odm_altitude_0 --dtm --dsm --force-ccd 13.2&lt;br /&gt;
# --orthophoto-resolution 2.0 --mesh-octree-depth 2 --opensfm-processes 8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
sudo rm -rf odm_georeferencing odm_meshing odm_orthophoto odm_texturing opensfm&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options for rerunning are: &amp;#039;resize&amp;#039;, &amp;#039;opensfm&amp;#039;, &amp;#039;slam&amp;#039;, &amp;#039;cmvs&amp;#039;, &amp;#039;pmvs&amp;#039;, &amp;#039;odm_meshing&amp;#039;, &amp;#039;mvs_texturing&amp;#039;, &amp;#039;odm_georeferencing&amp;#039;, &amp;#039;odm_orthophoto&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm --rerun-from odm_georeferencing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check the output ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
running /code/build/bin/odm_georef -bundleFile /code/opensfm/bundle_r000.out -imagesPath /code/images -imagesListPath /code/opensfm/list_r000.out -inputFile /code/odm_texturing/odm_textured_model.obj -outputFile /code/odm_texturing/odm_textured_model_geo.obj -inputPointCloudFile /code/opensfm/depthmaps/merged.ply -outputPointCloudFile /code/odm_georeferencing/odm_georeferenced_model.ply  -logFile /code/odm_georeferencing/odm_georeferencing_log.txt -outputTransformFile /code/odm_georeferencing/odm_georeferencing_transform.txt -georefFileOutputPath /code/odm_georeferencing/odm_georeferencing_model_geo.txt -gcpFile gcp_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt&lt;br /&gt;
[DEBUG]   running /code/SuperBuild/build/pdal/bin/pdal pipeline -i /code/odm_georeferencing/las.json --readers.ply.filename=/code/odm_georeferencing/odm_georeferenced_model.ply&lt;br /&gt;
PDAL: writers.las: Can&amp;#039;t write LAZ output.  PDAL not built with LASzip or LAZperf.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pipeline&amp;quot;: [&lt;br /&gt;
    &amp;quot;untransformed.ply&amp;quot;,&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;writers.las&amp;quot;,&lt;br /&gt;
      &amp;quot;a_srs&amp;quot;: &amp;quot;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;quot;,&lt;br /&gt;
      &amp;quot;offset_x&amp;quot;: &amp;quot;334230.28164&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_y&amp;quot;: &amp;quot;6208095.41529&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_z&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;compression&amp;quot;: &amp;quot;laszip&amp;quot;,&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;/code/odm_georeferencing/odm_georeferenced_model.laz&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-17 14-34-10.png]]&lt;br /&gt;
&lt;br /&gt;
=== Local pdal+LASzip ===&lt;br /&gt;
&lt;br /&gt;
Build from source!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/bin/pdal pipeline -i las.json --readers.ply.filename=odm_georeferenced_model.ply&lt;br /&gt;
-rw-r--r-- 1 jgr jgr  22661583 jun 17 11:47 odm_georeferenced_model.laz&lt;br /&gt;
-rw-r--r-- 1 jgr jgr 121586206 jun 17 11:42 odm_georeferenced_model.ply&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Previous result ====&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-16 12-26-36.png]]&lt;br /&gt;
&lt;br /&gt;
==== New result ====&lt;br /&gt;
&lt;br /&gt;
=== Create Pull Request ===&lt;br /&gt;
&lt;br /&gt;
close #845&lt;br /&gt;
&lt;br /&gt;
=== Other fixes ===&lt;br /&gt;
&lt;br /&gt;
epsg versus EPSG&lt;br /&gt;
&lt;br /&gt;
== Point cloud classification ==&lt;br /&gt;
&lt;br /&gt;
[DEBUG]   running pdal info --boundary --filters.hexbin.edge_length=1 --filters.hexbin.threshold=0 /code/odm_georeferencing/odm_georeferenced_model.filtered.las &amp;gt; /code/odm_georeferencing/odm_georeferenced_model.boundary.json&lt;br /&gt;
PDAL: Argument references invalid/unused stage: &amp;#039;filters.hexbin&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=933</id>
		<title>Running OpenDroneMap</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=933"/>
		<updated>2019-03-04T06:06:34Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Drone Workshop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Drone Workshop ===&lt;br /&gt;
&lt;br /&gt;
Part I&lt;br /&gt;
&lt;br /&gt;
0. The data&lt;br /&gt;
&lt;br /&gt;
EPSG:25832&lt;br /&gt;
&lt;br /&gt;
0.1 The images&lt;br /&gt;
&lt;br /&gt;
0.2 The ground control points&lt;br /&gt;
&lt;br /&gt;
0.2.1 Discuss how to get GCP: survey or from a reference dataset&lt;br /&gt;
&lt;br /&gt;
0.3 The flight path&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. WebODM&lt;br /&gt;
&lt;br /&gt;
1.2 Preparation and Installation&lt;br /&gt;
&lt;br /&gt;
1.3 Run our first task&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Overview of the products&lt;br /&gt;
&lt;br /&gt;
2.1 Orthophoto&lt;br /&gt;
&lt;br /&gt;
2.2 Point cloud&lt;br /&gt;
&lt;br /&gt;
2.3 DSM&lt;br /&gt;
&lt;br /&gt;
2.4 DTM&lt;br /&gt;
&lt;br /&gt;
Part II&lt;br /&gt;
&lt;br /&gt;
3. Fine tunning the data&lt;br /&gt;
&lt;br /&gt;
3.1 Clip orthophoto&lt;br /&gt;
&lt;br /&gt;
Create a mask layer&lt;br /&gt;
&lt;br /&gt;
Clip&lt;br /&gt;
&lt;br /&gt;
Enable JPG compression&lt;br /&gt;
&lt;br /&gt;
3.2 Point cloud&lt;br /&gt;
&lt;br /&gt;
Clip with pdal&lt;br /&gt;
&lt;br /&gt;
Classify with pdal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Taking advantagle of the artifacts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Drone workshop print screens]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Flight&lt;br /&gt;
&lt;br /&gt;
WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install docker-compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10:54&lt;br /&gt;
&lt;br /&gt;
2. Data products&lt;br /&gt;
&lt;br /&gt;
2.1 Orthophoto&lt;br /&gt;
&lt;br /&gt;
Discussion: GCP, impact on the elevation model&lt;br /&gt;
&lt;br /&gt;
Swipe tool&lt;br /&gt;
&lt;br /&gt;
Point value: check ortho values&lt;br /&gt;
&lt;br /&gt;
2.2 DEM/DSM&lt;br /&gt;
&lt;br /&gt;
Discussion: difference between&lt;br /&gt;
&lt;br /&gt;
Raster value&lt;br /&gt;
&lt;br /&gt;
Profile tool&lt;br /&gt;
&lt;br /&gt;
Visualization: hillshade&lt;br /&gt;
&lt;br /&gt;
http://plas.io/&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/tutorial/pcl_ground/index.html#pcl-ground&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-- original&lt;br /&gt;
pdal translate -i /code/odm_georeferencing/odm_georeferenced_model.laz -o /code/odm_georeferencing/odm_georeferenced_model.laz smrf --filters.smrf.cell=2 --filters.smrf.slope=10 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- VERY GOOD&lt;br /&gt;
pdal translate -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_2.laz smrf --filters.smrf.cell=2 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- good&lt;br /&gt;
pdal ground -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_3.laz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.3 Point cloud&lt;br /&gt;
&lt;br /&gt;
What we get from the software&lt;br /&gt;
&lt;br /&gt;
Visualization tools&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/workshop/exercises/analysis/dtm/dtm.html&lt;br /&gt;
&lt;br /&gt;
3. Processing data products&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1 Better classification&lt;br /&gt;
&lt;br /&gt;
lasground&lt;br /&gt;
&lt;br /&gt;
3.2 lasheight&lt;br /&gt;
&lt;br /&gt;
3.3 lasclassify&lt;br /&gt;
&lt;br /&gt;
=== DJI Mavic 2 PRO ===&lt;br /&gt;
&lt;br /&gt;
[https://forum.dji.com/thread-167017-1-1.html Sensor size], [https://www.youtube.com/watch?v=xIncVCe6pg0 Video about sensor size]&lt;br /&gt;
&lt;br /&gt;
==== Erro ====&lt;br /&gt;
&lt;br /&gt;
Culpado: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;/home/jgr/PycharmProjects/OpenDroneMap/modules/odm_extract_utm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todas as imagens estão com Exif.GPSInfo.GPSAltitude = 0.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
      if (lon == 0.0 || lat == 0.0 || alt == 0.0) {&lt;br /&gt;
        std::string error(&amp;quot;Failed parsing GPS position for &amp;quot; + imageFilename);&lt;br /&gt;
        throw UtmExtractorException(error);&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remendo ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.0 m&lt;br /&gt;
&lt;br /&gt;
exiv2 -M&amp;quot;set Exif.GPSInfo.GPSAltitude Rational 1/10&amp;quot; DJI_0210.JPG&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.1 m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chamada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Wrote images database: /code/images.json&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_extract_utm -imagesPath /code/images/ -imageListFile /code/img_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt  -logFile /code/odm_georeferencing/odm_georeferencing_utm_log.txt&lt;br /&gt;
Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[WARNING] Could not generate coordinates file. Ignore if there is a GCP file. Error: Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Building objmodel:&lt;br /&gt;
	Saving model... done.&lt;br /&gt;
Whole texturing procedure took: 225.586s&lt;br /&gt;
[INFO]    Running ODM Texturing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell&lt;br /&gt;
[WARNING] Georeferencing failed. Make sure your photos have geotags in the EXIF or you have provided a GCP file. &lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM DEM Cell&lt;br /&gt;
[INFO]    Classify: True&lt;br /&gt;
[INFO]    Create DSM: True&lt;br /&gt;
[INFO]    Create DTM: True&lt;br /&gt;
[INFO]    DEM input file /code/odm_georeferencing/odm_georeferenced_model.las found: False&lt;br /&gt;
[WARNING] DEM will not be generated&lt;br /&gt;
[INFO]    Running ODM DEM Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Orthophoto Cell&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_orthophoto -inputFile /code/odm_texturing/odm_textured_model.obj -logFile /code/odm_orthophoto/odm_orthophoto_log.txt -outputFile /code/odm_orthophoto/odm_orthophoto.png -resolution 10.0  -outputCornerFile /code/odm_orthophoto/odm_orthophoto_corners.txt&lt;br /&gt;
[WARNING] No geo-referenced orthophoto created due to missing geo-referencing or corner coordinates.&lt;br /&gt;
[INFO]    Running ODM OrthoPhoto Cell - Finished&lt;br /&gt;
[INFO]    OpenDroneMap app finished - Sat Dec 29 22:12:22  2018&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running docker OpenDroneMap ===&lt;br /&gt;
&lt;br /&gt;
==== Update to last OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker pull opendronemap/opendronemap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
# Install docker&lt;br /&gt;
# Add you user to docker group&lt;br /&gt;
# sudo -H pip install requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir OpenDroneMap&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git clone git@github.com:OpenDroneMap/odm_data_aukerman.git&lt;br /&gt;
cd odm_data_aukerman&lt;br /&gt;
&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
ls -l $odmi&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
opendronemap/opendronemap --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sem GCP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado/&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: os ortos estão a ficar com muitas interferências do modelo 3D, nas áreas urbanas.&lt;br /&gt;
&lt;br /&gt;
Related problem: http://community.opendronemap.org/t/buildings/929&lt;br /&gt;
&lt;br /&gt;
Será que voar com a câmara a 75 graus ajuda? Fiz um voo com Double Grid, com a camara a 70 graus (default do Pix4d capture).&lt;br /&gt;
&lt;br /&gt;
==== Mac ====&lt;br /&gt;
&lt;br /&gt;
1. Install Docker&lt;br /&gt;
&lt;br /&gt;
2. &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $(pwd)/images:/code/images -v $(pwd)/odm_orthophoto:/code/odm_orthophoto -v $(pwd)/odm_texturing:/code/odm_texturing -v $(pwd)/odm_georeferencing:/code/odm_georeferencing -v $(pwd)/odm_meshing:/code/odm_meshing -v $(pwd)/opensfm:/code/opensfm -v $(pwd)/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With GCP (calculating 3000-y coordinate)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $(pwd)/images:/code/images -v $(pwd)/odm_orthophoto:/code/odm_orthophoto -v $(pwd)/odm_texturing:/code/odm_texturing -v $(pwd)/odm_georeferencing:/code/odm_georeferencing -v $(pwd)/odm_meshing:/code/odm_meshing -v $(pwd)/opensfm:/code/opensfm -v $(pwd)/odm_dem:/code/odm_dem -v $(pwd)/gcp_list.txt:/code/gcp_list.txt opendronemap/opendronemap --dtm --dsm --gcp gcp_list.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With GCP (ignoring de - in y coordinate)&lt;br /&gt;
&lt;br /&gt;
TIP: ignore the - (minus) in y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd uav_nysted-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $(pwd)/images:/code/images -v $(pwd)/odm_orthophoto:/code/odm_orthophoto -v $(pwd)/odm_texturing:/code/odm_texturing -v $(pwd)/odm_georeferencing:/code/odm_georeferencing -v $(pwd)/odm_meshing:/code/odm_meshing -v $(pwd)/opensfm:/code/opensfm -v $(pwd)/odm_dem:/code/odm_dem -v $(pwd)/gcp_list.txt:/code/gcp_list.txt opendronemap/opendronemap --dtm --dsm --gcp gcp_list.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
Install Docker&lt;br /&gt;
&lt;br /&gt;
Configure docker (more CPU, more memory)&lt;br /&gt;
&lt;br /&gt;
CPUs: 6&lt;br /&gt;
&lt;br /&gt;
Memory: 12032 Mb&lt;br /&gt;
&lt;br /&gt;
Swap: 4096 Mb&lt;br /&gt;
&lt;br /&gt;
Create the projet folder structure&lt;br /&gt;
&lt;br /&gt;
Project folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\&lt;br /&gt;
&lt;br /&gt;
Image folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\images&lt;br /&gt;
&lt;br /&gt;
Create folders for the OpenDroneMap output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd Documents\uav_sckovskolen_feb20018_incl_GCP&lt;br /&gt;
md odm_orthophoto&lt;br /&gt;
md odm_texturing&lt;br /&gt;
md odm_georeferencing&lt;br /&gt;
md odm_meshing&lt;br /&gt;
md opensfm&lt;br /&gt;
md odm_dem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $pwd/images:/code/images -v $pwd/odm_orthophoto:/code/odm_orthophoto -v $pwd/odm_texturing:/code/odm_texturing -v $pwd/odm_georeferencing:/code/odm_georeferencing -v $pwd/odm_meshing:/code/odm_meshing -v $pwd/opensfm:/code/opensfm -v $pwd/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado2xgrid&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0 --mesh-octree-depth 10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer (update) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo chown -R jgr:jgr *&lt;br /&gt;
git clone https://github.com/mapillary/OpenSfM.git&lt;br /&gt;
cd OpenSfM/viewer&lt;br /&gt;
ln -s ../../images .&lt;br /&gt;
python2 -m SimpleHTTPServer 7777&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ sudo chown -R jgr:jgr *&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cp -r ~/dev/OpenSfM/viewer opensfm&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cd opensfm/&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ ln -s ../images .&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ python -m SimpleHTTPServer&lt;br /&gt;
Serving HTTP on 0.0.0.0 port 8000 ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://localhost:8000/viewer/reconstruction.html#file=/reconstruction.json&lt;br /&gt;
&lt;br /&gt;
==== OpenSFM view images on QGIS ====&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/images/DJI_0595.JPG&lt;br /&gt;
&lt;br /&gt;
-8.7515052, 40.6114774, 22.4100000, 2018:08:23 10:05:11&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/opensfm/reference_lla.json&lt;br /&gt;
&lt;br /&gt;
Centro aproximado do ortophoto resultante (adicionado ao projeto QGIS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;latitude&amp;quot;: 40.61272372901514, &lt;br /&gt;
    &amp;quot;altitude&amp;quot;: 0, &lt;br /&gt;
    &amp;quot;longitude&amp;quot;: -8.752983409509966&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;quot;DJI_0595.JPG&amp;quot;: {&lt;br /&gt;
                &amp;quot;orientation&amp;quot;: 1, &lt;br /&gt;
                &amp;quot;camera&amp;quot;: &amp;quot;v2 dji fc220 4000 3000 perspective 0.7222&amp;quot;, &lt;br /&gt;
                &amp;quot;gps_position&amp;quot;: [&lt;br /&gt;
                    125.10012061257521, &lt;br /&gt;
                    -138.4010433354888, &lt;br /&gt;
                    22.407269606366754&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;gps_dop&amp;quot;: 15.0, &lt;br /&gt;
                &amp;quot;rotation&amp;quot;: [&lt;br /&gt;
                    2.1445873611073996, &lt;br /&gt;
                    -2.2856282209697523, &lt;br /&gt;
                    0.20066193557381898&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;translation&amp;quot;: [&lt;br /&gt;
                    -132.67853610360638, &lt;br /&gt;
                    133.40968771622724, &lt;br /&gt;
                    1.9668907291333997&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;capture_time&amp;quot;: 1535018711.0&lt;br /&gt;
            }, &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://github.com/mapillary/OpenSfM/blob/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ wget https://raw.githubusercontent.com/mapillary/OpenSfM/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
NÃO FUNCIONOU...&lt;br /&gt;
&lt;br /&gt;
export_geocoords.py -dataset costanova&lt;br /&gt;
&lt;br /&gt;
Ver: https://github.com/mapillary/OpenSfM/issues/183&lt;br /&gt;
&lt;br /&gt;
=== webODM ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/OpenDroneMap/WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input&lt;br /&gt;
cd WebODM&lt;br /&gt;
./webodm.sh start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jgrocha/xxbatata&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
&lt;br /&gt;
CloudCompare&lt;br /&gt;
&lt;br /&gt;
QGIS Plugin Photo2Shape&lt;br /&gt;
&lt;br /&gt;
Criar uma shapefile photos&lt;br /&gt;
&lt;br /&gt;
Nas propriedades, no campo &amp;lt;syntaxhighlight inline lang=&amp;quot;bash&amp;quot;&amp;gt;filepath&amp;lt;/syntaxhighlight&amp;gt; mudar para o tipo Fotografia.&lt;br /&gt;
&lt;br /&gt;
=== Ground Control File ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo -7.778152 41.833203 957.575989  | cs2cs +init=epsg:4326 +to +init=epsg:3763&lt;br /&gt;
echo 708610.702 6209972.025 26.085 | cs2cs +init=epsg:25832 +to +init=epsg:32633&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:32633 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;#039;&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:25832 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs &amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make my own OpenDroneMap image ==&lt;br /&gt;
&lt;br /&gt;
=== Fork and clone ODM repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone git@github.com:jgrocha/OpenDroneMap.git&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git checkout -b generate-laz-output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change source ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Build new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/PycharmProjects/OpenDroneMap$ docker build --no-cache -t odm_altitude_0 .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t odm_laz_image .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cd &amp;quot;/mnt/bonn/nextCloud/Photos/DJI MAVIC PRO 2 Paradela/100MEDIA&amp;quot;&lt;br /&gt;
cd /mnt/bonn/nextCloud/Photos&lt;br /&gt;
ln -s &amp;#039;DJI MAVIC PRO 2 Paradela/100MEDIA&amp;#039; images&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
docker run --cpus 8 -it --rm -v $odmi/images:/code/images -v $odmi/odm_orthophoto:/code/odm_orthophoto -v $odmi/odm_texturing:/code/odm_texturing -v $odmi/odm_georeferencing:/code/odm_georeferencing -v $odmi/odm_meshing:/code/odm_meshing -v $odmi/opensfm:/code/opensfm -v $odmi/odm_dem:/code/odm_dem odm_altitude_0 --dtm --dsm --force-ccd 13.2&lt;br /&gt;
# --orthophoto-resolution 2.0 --mesh-octree-depth 2 --opensfm-processes 8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
sudo rm -rf odm_georeferencing odm_meshing odm_orthophoto odm_texturing opensfm&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options for rerunning are: &amp;#039;resize&amp;#039;, &amp;#039;opensfm&amp;#039;, &amp;#039;slam&amp;#039;, &amp;#039;cmvs&amp;#039;, &amp;#039;pmvs&amp;#039;, &amp;#039;odm_meshing&amp;#039;, &amp;#039;mvs_texturing&amp;#039;, &amp;#039;odm_georeferencing&amp;#039;, &amp;#039;odm_orthophoto&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm --rerun-from odm_georeferencing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check the output ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
running /code/build/bin/odm_georef -bundleFile /code/opensfm/bundle_r000.out -imagesPath /code/images -imagesListPath /code/opensfm/list_r000.out -inputFile /code/odm_texturing/odm_textured_model.obj -outputFile /code/odm_texturing/odm_textured_model_geo.obj -inputPointCloudFile /code/opensfm/depthmaps/merged.ply -outputPointCloudFile /code/odm_georeferencing/odm_georeferenced_model.ply  -logFile /code/odm_georeferencing/odm_georeferencing_log.txt -outputTransformFile /code/odm_georeferencing/odm_georeferencing_transform.txt -georefFileOutputPath /code/odm_georeferencing/odm_georeferencing_model_geo.txt -gcpFile gcp_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt&lt;br /&gt;
[DEBUG]   running /code/SuperBuild/build/pdal/bin/pdal pipeline -i /code/odm_georeferencing/las.json --readers.ply.filename=/code/odm_georeferencing/odm_georeferenced_model.ply&lt;br /&gt;
PDAL: writers.las: Can&amp;#039;t write LAZ output.  PDAL not built with LASzip or LAZperf.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pipeline&amp;quot;: [&lt;br /&gt;
    &amp;quot;untransformed.ply&amp;quot;,&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;writers.las&amp;quot;,&lt;br /&gt;
      &amp;quot;a_srs&amp;quot;: &amp;quot;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;quot;,&lt;br /&gt;
      &amp;quot;offset_x&amp;quot;: &amp;quot;334230.28164&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_y&amp;quot;: &amp;quot;6208095.41529&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_z&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;compression&amp;quot;: &amp;quot;laszip&amp;quot;,&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;/code/odm_georeferencing/odm_georeferenced_model.laz&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-17 14-34-10.png]]&lt;br /&gt;
&lt;br /&gt;
=== Local pdal+LASzip ===&lt;br /&gt;
&lt;br /&gt;
Build from source!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/bin/pdal pipeline -i las.json --readers.ply.filename=odm_georeferenced_model.ply&lt;br /&gt;
-rw-r--r-- 1 jgr jgr  22661583 jun 17 11:47 odm_georeferenced_model.laz&lt;br /&gt;
-rw-r--r-- 1 jgr jgr 121586206 jun 17 11:42 odm_georeferenced_model.ply&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Previous result ====&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-16 12-26-36.png]]&lt;br /&gt;
&lt;br /&gt;
==== New result ====&lt;br /&gt;
&lt;br /&gt;
=== Create Pull Request ===&lt;br /&gt;
&lt;br /&gt;
close #845&lt;br /&gt;
&lt;br /&gt;
=== Other fixes ===&lt;br /&gt;
&lt;br /&gt;
epsg versus EPSG&lt;br /&gt;
&lt;br /&gt;
== Point cloud classification ==&lt;br /&gt;
&lt;br /&gt;
[DEBUG]   running pdal info --boundary --filters.hexbin.edge_length=1 --filters.hexbin.threshold=0 /code/odm_georeferencing/odm_georeferenced_model.filtered.las &amp;gt; /code/odm_georeferencing/odm_georeferenced_model.boundary.json&lt;br /&gt;
PDAL: Argument references invalid/unused stage: &amp;#039;filters.hexbin&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=931</id>
		<title>Running OpenDroneMap</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=931"/>
		<updated>2019-02-28T03:07:17Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Mac */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Drone Workshop ===&lt;br /&gt;
&lt;br /&gt;
[[Drone workshop print screens]]&lt;br /&gt;
&lt;br /&gt;
1. Flight&lt;br /&gt;
&lt;br /&gt;
WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install docker-compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10:54&lt;br /&gt;
&lt;br /&gt;
2. Data products&lt;br /&gt;
&lt;br /&gt;
2.1 Orthophoto&lt;br /&gt;
&lt;br /&gt;
Discussion: GCP, impact on the elevation model&lt;br /&gt;
&lt;br /&gt;
Swipe tool&lt;br /&gt;
&lt;br /&gt;
Point value: check ortho values&lt;br /&gt;
&lt;br /&gt;
2.2 DEM/DSM&lt;br /&gt;
&lt;br /&gt;
Discussion: difference between&lt;br /&gt;
&lt;br /&gt;
Raster value&lt;br /&gt;
&lt;br /&gt;
Profile tool&lt;br /&gt;
&lt;br /&gt;
Visualization: hillshade&lt;br /&gt;
&lt;br /&gt;
http://plas.io/&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/tutorial/pcl_ground/index.html#pcl-ground&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-- original&lt;br /&gt;
pdal translate -i /code/odm_georeferencing/odm_georeferenced_model.laz -o /code/odm_georeferencing/odm_georeferenced_model.laz smrf --filters.smrf.cell=2 --filters.smrf.slope=10 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- VERY GOOD&lt;br /&gt;
pdal translate -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_2.laz smrf --filters.smrf.cell=2 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- good&lt;br /&gt;
pdal ground -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_3.laz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.3 Point cloud&lt;br /&gt;
&lt;br /&gt;
What we get from the software&lt;br /&gt;
&lt;br /&gt;
Visualization tools&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/workshop/exercises/analysis/dtm/dtm.html&lt;br /&gt;
&lt;br /&gt;
3. Processing data products&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1 Better classification&lt;br /&gt;
&lt;br /&gt;
lasground&lt;br /&gt;
&lt;br /&gt;
3.2 lasheight&lt;br /&gt;
&lt;br /&gt;
3.3 lasclassify&lt;br /&gt;
&lt;br /&gt;
=== DJI Mavic 2 PRO ===&lt;br /&gt;
&lt;br /&gt;
[https://forum.dji.com/thread-167017-1-1.html Sensor size], [https://www.youtube.com/watch?v=xIncVCe6pg0 Video about sensor size]&lt;br /&gt;
&lt;br /&gt;
==== Erro ====&lt;br /&gt;
&lt;br /&gt;
Culpado: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;/home/jgr/PycharmProjects/OpenDroneMap/modules/odm_extract_utm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todas as imagens estão com Exif.GPSInfo.GPSAltitude = 0.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
      if (lon == 0.0 || lat == 0.0 || alt == 0.0) {&lt;br /&gt;
        std::string error(&amp;quot;Failed parsing GPS position for &amp;quot; + imageFilename);&lt;br /&gt;
        throw UtmExtractorException(error);&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remendo ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.0 m&lt;br /&gt;
&lt;br /&gt;
exiv2 -M&amp;quot;set Exif.GPSInfo.GPSAltitude Rational 1/10&amp;quot; DJI_0210.JPG&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.1 m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chamada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Wrote images database: /code/images.json&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_extract_utm -imagesPath /code/images/ -imageListFile /code/img_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt  -logFile /code/odm_georeferencing/odm_georeferencing_utm_log.txt&lt;br /&gt;
Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[WARNING] Could not generate coordinates file. Ignore if there is a GCP file. Error: Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Building objmodel:&lt;br /&gt;
	Saving model... done.&lt;br /&gt;
Whole texturing procedure took: 225.586s&lt;br /&gt;
[INFO]    Running ODM Texturing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell&lt;br /&gt;
[WARNING] Georeferencing failed. Make sure your photos have geotags in the EXIF or you have provided a GCP file. &lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM DEM Cell&lt;br /&gt;
[INFO]    Classify: True&lt;br /&gt;
[INFO]    Create DSM: True&lt;br /&gt;
[INFO]    Create DTM: True&lt;br /&gt;
[INFO]    DEM input file /code/odm_georeferencing/odm_georeferenced_model.las found: False&lt;br /&gt;
[WARNING] DEM will not be generated&lt;br /&gt;
[INFO]    Running ODM DEM Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Orthophoto Cell&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_orthophoto -inputFile /code/odm_texturing/odm_textured_model.obj -logFile /code/odm_orthophoto/odm_orthophoto_log.txt -outputFile /code/odm_orthophoto/odm_orthophoto.png -resolution 10.0  -outputCornerFile /code/odm_orthophoto/odm_orthophoto_corners.txt&lt;br /&gt;
[WARNING] No geo-referenced orthophoto created due to missing geo-referencing or corner coordinates.&lt;br /&gt;
[INFO]    Running ODM OrthoPhoto Cell - Finished&lt;br /&gt;
[INFO]    OpenDroneMap app finished - Sat Dec 29 22:12:22  2018&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running docker OpenDroneMap ===&lt;br /&gt;
&lt;br /&gt;
==== Update to last OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker pull opendronemap/opendronemap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
# Install docker&lt;br /&gt;
# Add you user to docker group&lt;br /&gt;
# sudo -H pip install requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir OpenDroneMap&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git clone git@github.com:OpenDroneMap/odm_data_aukerman.git&lt;br /&gt;
cd odm_data_aukerman&lt;br /&gt;
&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
ls -l $odmi&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
opendronemap/opendronemap --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sem GCP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado/&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: os ortos estão a ficar com muitas interferências do modelo 3D, nas áreas urbanas.&lt;br /&gt;
&lt;br /&gt;
Related problem: http://community.opendronemap.org/t/buildings/929&lt;br /&gt;
&lt;br /&gt;
Será que voar com a câmara a 75 graus ajuda? Fiz um voo com Double Grid, com a camara a 70 graus (default do Pix4d capture).&lt;br /&gt;
&lt;br /&gt;
==== Mac ====&lt;br /&gt;
&lt;br /&gt;
1. Install Docker&lt;br /&gt;
&lt;br /&gt;
2. &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $(pwd)/images:/code/images -v $(pwd)/odm_orthophoto:/code/odm_orthophoto -v $(pwd)/odm_texturing:/code/odm_texturing -v $(pwd)/odm_georeferencing:/code/odm_georeferencing -v $(pwd)/odm_meshing:/code/odm_meshing -v $(pwd)/opensfm:/code/opensfm -v $(pwd)/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With GCP (calculating 3000-y coordinate)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $(pwd)/images:/code/images -v $(pwd)/odm_orthophoto:/code/odm_orthophoto -v $(pwd)/odm_texturing:/code/odm_texturing -v $(pwd)/odm_georeferencing:/code/odm_georeferencing -v $(pwd)/odm_meshing:/code/odm_meshing -v $(pwd)/opensfm:/code/opensfm -v $(pwd)/odm_dem:/code/odm_dem -v $(pwd)/gcp_list.txt:/code/gcp_list.txt opendronemap/opendronemap --dtm --dsm --gcp gcp_list.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With GCP (ignoring de - in y coordinate)&lt;br /&gt;
&lt;br /&gt;
TIP: ignore the - (minus) in y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd uav_nysted-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $(pwd)/images:/code/images -v $(pwd)/odm_orthophoto:/code/odm_orthophoto -v $(pwd)/odm_texturing:/code/odm_texturing -v $(pwd)/odm_georeferencing:/code/odm_georeferencing -v $(pwd)/odm_meshing:/code/odm_meshing -v $(pwd)/opensfm:/code/opensfm -v $(pwd)/odm_dem:/code/odm_dem -v $(pwd)/gcp_list.txt:/code/gcp_list.txt opendronemap/opendronemap --dtm --dsm --gcp gcp_list.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
Install Docker&lt;br /&gt;
&lt;br /&gt;
Configure docker (more CPU, more memory)&lt;br /&gt;
&lt;br /&gt;
CPUs: 6&lt;br /&gt;
&lt;br /&gt;
Memory: 12032 Mb&lt;br /&gt;
&lt;br /&gt;
Swap: 4096 Mb&lt;br /&gt;
&lt;br /&gt;
Create the projet folder structure&lt;br /&gt;
&lt;br /&gt;
Project folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\&lt;br /&gt;
&lt;br /&gt;
Image folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\images&lt;br /&gt;
&lt;br /&gt;
Create folders for the OpenDroneMap output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd Documents\uav_sckovskolen_feb20018_incl_GCP&lt;br /&gt;
md odm_orthophoto&lt;br /&gt;
md odm_texturing&lt;br /&gt;
md odm_georeferencing&lt;br /&gt;
md odm_meshing&lt;br /&gt;
md opensfm&lt;br /&gt;
md odm_dem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $pwd/images:/code/images -v $pwd/odm_orthophoto:/code/odm_orthophoto -v $pwd/odm_texturing:/code/odm_texturing -v $pwd/odm_georeferencing:/code/odm_georeferencing -v $pwd/odm_meshing:/code/odm_meshing -v $pwd/opensfm:/code/opensfm -v $pwd/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado2xgrid&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0 --mesh-octree-depth 10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer (update) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo chown -R jgr:jgr *&lt;br /&gt;
git clone https://github.com/mapillary/OpenSfM.git&lt;br /&gt;
cd OpenSfM/viewer&lt;br /&gt;
ln -s ../../images .&lt;br /&gt;
python2 -m SimpleHTTPServer 7777&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ sudo chown -R jgr:jgr *&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cp -r ~/dev/OpenSfM/viewer opensfm&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cd opensfm/&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ ln -s ../images .&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ python -m SimpleHTTPServer&lt;br /&gt;
Serving HTTP on 0.0.0.0 port 8000 ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://localhost:8000/viewer/reconstruction.html#file=/reconstruction.json&lt;br /&gt;
&lt;br /&gt;
==== OpenSFM view images on QGIS ====&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/images/DJI_0595.JPG&lt;br /&gt;
&lt;br /&gt;
-8.7515052, 40.6114774, 22.4100000, 2018:08:23 10:05:11&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/opensfm/reference_lla.json&lt;br /&gt;
&lt;br /&gt;
Centro aproximado do ortophoto resultante (adicionado ao projeto QGIS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;latitude&amp;quot;: 40.61272372901514, &lt;br /&gt;
    &amp;quot;altitude&amp;quot;: 0, &lt;br /&gt;
    &amp;quot;longitude&amp;quot;: -8.752983409509966&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;quot;DJI_0595.JPG&amp;quot;: {&lt;br /&gt;
                &amp;quot;orientation&amp;quot;: 1, &lt;br /&gt;
                &amp;quot;camera&amp;quot;: &amp;quot;v2 dji fc220 4000 3000 perspective 0.7222&amp;quot;, &lt;br /&gt;
                &amp;quot;gps_position&amp;quot;: [&lt;br /&gt;
                    125.10012061257521, &lt;br /&gt;
                    -138.4010433354888, &lt;br /&gt;
                    22.407269606366754&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;gps_dop&amp;quot;: 15.0, &lt;br /&gt;
                &amp;quot;rotation&amp;quot;: [&lt;br /&gt;
                    2.1445873611073996, &lt;br /&gt;
                    -2.2856282209697523, &lt;br /&gt;
                    0.20066193557381898&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;translation&amp;quot;: [&lt;br /&gt;
                    -132.67853610360638, &lt;br /&gt;
                    133.40968771622724, &lt;br /&gt;
                    1.9668907291333997&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;capture_time&amp;quot;: 1535018711.0&lt;br /&gt;
            }, &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://github.com/mapillary/OpenSfM/blob/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ wget https://raw.githubusercontent.com/mapillary/OpenSfM/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
NÃO FUNCIONOU...&lt;br /&gt;
&lt;br /&gt;
export_geocoords.py -dataset costanova&lt;br /&gt;
&lt;br /&gt;
Ver: https://github.com/mapillary/OpenSfM/issues/183&lt;br /&gt;
&lt;br /&gt;
=== webODM ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/OpenDroneMap/WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input&lt;br /&gt;
cd WebODM&lt;br /&gt;
./webodm.sh start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jgrocha/xxbatata&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
&lt;br /&gt;
CloudCompare&lt;br /&gt;
&lt;br /&gt;
QGIS Plugin Photo2Shape&lt;br /&gt;
&lt;br /&gt;
Criar uma shapefile photos&lt;br /&gt;
&lt;br /&gt;
Nas propriedades, no campo &amp;lt;syntaxhighlight inline lang=&amp;quot;bash&amp;quot;&amp;gt;filepath&amp;lt;/syntaxhighlight&amp;gt; mudar para o tipo Fotografia.&lt;br /&gt;
&lt;br /&gt;
=== Ground Control File ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo -7.778152 41.833203 957.575989  | cs2cs +init=epsg:4326 +to +init=epsg:3763&lt;br /&gt;
echo 708610.702 6209972.025 26.085 | cs2cs +init=epsg:25832 +to +init=epsg:32633&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:32633 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;#039;&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:25832 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs &amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make my own OpenDroneMap image ==&lt;br /&gt;
&lt;br /&gt;
=== Fork and clone ODM repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone git@github.com:jgrocha/OpenDroneMap.git&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git checkout -b generate-laz-output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change source ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Build new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/PycharmProjects/OpenDroneMap$ docker build --no-cache -t odm_altitude_0 .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t odm_laz_image .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cd &amp;quot;/mnt/bonn/nextCloud/Photos/DJI MAVIC PRO 2 Paradela/100MEDIA&amp;quot;&lt;br /&gt;
cd /mnt/bonn/nextCloud/Photos&lt;br /&gt;
ln -s &amp;#039;DJI MAVIC PRO 2 Paradela/100MEDIA&amp;#039; images&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
docker run --cpus 8 -it --rm -v $odmi/images:/code/images -v $odmi/odm_orthophoto:/code/odm_orthophoto -v $odmi/odm_texturing:/code/odm_texturing -v $odmi/odm_georeferencing:/code/odm_georeferencing -v $odmi/odm_meshing:/code/odm_meshing -v $odmi/opensfm:/code/opensfm -v $odmi/odm_dem:/code/odm_dem odm_altitude_0 --dtm --dsm --force-ccd 13.2&lt;br /&gt;
# --orthophoto-resolution 2.0 --mesh-octree-depth 2 --opensfm-processes 8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
sudo rm -rf odm_georeferencing odm_meshing odm_orthophoto odm_texturing opensfm&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options for rerunning are: &amp;#039;resize&amp;#039;, &amp;#039;opensfm&amp;#039;, &amp;#039;slam&amp;#039;, &amp;#039;cmvs&amp;#039;, &amp;#039;pmvs&amp;#039;, &amp;#039;odm_meshing&amp;#039;, &amp;#039;mvs_texturing&amp;#039;, &amp;#039;odm_georeferencing&amp;#039;, &amp;#039;odm_orthophoto&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm --rerun-from odm_georeferencing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check the output ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
running /code/build/bin/odm_georef -bundleFile /code/opensfm/bundle_r000.out -imagesPath /code/images -imagesListPath /code/opensfm/list_r000.out -inputFile /code/odm_texturing/odm_textured_model.obj -outputFile /code/odm_texturing/odm_textured_model_geo.obj -inputPointCloudFile /code/opensfm/depthmaps/merged.ply -outputPointCloudFile /code/odm_georeferencing/odm_georeferenced_model.ply  -logFile /code/odm_georeferencing/odm_georeferencing_log.txt -outputTransformFile /code/odm_georeferencing/odm_georeferencing_transform.txt -georefFileOutputPath /code/odm_georeferencing/odm_georeferencing_model_geo.txt -gcpFile gcp_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt&lt;br /&gt;
[DEBUG]   running /code/SuperBuild/build/pdal/bin/pdal pipeline -i /code/odm_georeferencing/las.json --readers.ply.filename=/code/odm_georeferencing/odm_georeferenced_model.ply&lt;br /&gt;
PDAL: writers.las: Can&amp;#039;t write LAZ output.  PDAL not built with LASzip or LAZperf.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pipeline&amp;quot;: [&lt;br /&gt;
    &amp;quot;untransformed.ply&amp;quot;,&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;writers.las&amp;quot;,&lt;br /&gt;
      &amp;quot;a_srs&amp;quot;: &amp;quot;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;quot;,&lt;br /&gt;
      &amp;quot;offset_x&amp;quot;: &amp;quot;334230.28164&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_y&amp;quot;: &amp;quot;6208095.41529&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_z&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;compression&amp;quot;: &amp;quot;laszip&amp;quot;,&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;/code/odm_georeferencing/odm_georeferenced_model.laz&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-17 14-34-10.png]]&lt;br /&gt;
&lt;br /&gt;
=== Local pdal+LASzip ===&lt;br /&gt;
&lt;br /&gt;
Build from source!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/bin/pdal pipeline -i las.json --readers.ply.filename=odm_georeferenced_model.ply&lt;br /&gt;
-rw-r--r-- 1 jgr jgr  22661583 jun 17 11:47 odm_georeferenced_model.laz&lt;br /&gt;
-rw-r--r-- 1 jgr jgr 121586206 jun 17 11:42 odm_georeferenced_model.ply&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Previous result ====&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-16 12-26-36.png]]&lt;br /&gt;
&lt;br /&gt;
==== New result ====&lt;br /&gt;
&lt;br /&gt;
=== Create Pull Request ===&lt;br /&gt;
&lt;br /&gt;
close #845&lt;br /&gt;
&lt;br /&gt;
=== Other fixes ===&lt;br /&gt;
&lt;br /&gt;
epsg versus EPSG&lt;br /&gt;
&lt;br /&gt;
== Point cloud classification ==&lt;br /&gt;
&lt;br /&gt;
[DEBUG]   running pdal info --boundary --filters.hexbin.edge_length=1 --filters.hexbin.threshold=0 /code/odm_georeferencing/odm_georeferenced_model.filtered.las &amp;gt; /code/odm_georeferencing/odm_georeferenced_model.boundary.json&lt;br /&gt;
PDAL: Argument references invalid/unused stage: &amp;#039;filters.hexbin&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=929</id>
		<title>Running OpenDroneMap</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=929"/>
		<updated>2019-02-28T02:41:06Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Mac */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Drone Workshop ===&lt;br /&gt;
&lt;br /&gt;
[[Drone workshop print screens]]&lt;br /&gt;
&lt;br /&gt;
1. Flight&lt;br /&gt;
&lt;br /&gt;
WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install docker-compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10:54&lt;br /&gt;
&lt;br /&gt;
2. Data products&lt;br /&gt;
&lt;br /&gt;
2.1 Orthophoto&lt;br /&gt;
&lt;br /&gt;
Discussion: GCP, impact on the elevation model&lt;br /&gt;
&lt;br /&gt;
Swipe tool&lt;br /&gt;
&lt;br /&gt;
Point value: check ortho values&lt;br /&gt;
&lt;br /&gt;
2.2 DEM/DSM&lt;br /&gt;
&lt;br /&gt;
Discussion: difference between&lt;br /&gt;
&lt;br /&gt;
Raster value&lt;br /&gt;
&lt;br /&gt;
Profile tool&lt;br /&gt;
&lt;br /&gt;
Visualization: hillshade&lt;br /&gt;
&lt;br /&gt;
http://plas.io/&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/tutorial/pcl_ground/index.html#pcl-ground&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-- original&lt;br /&gt;
pdal translate -i /code/odm_georeferencing/odm_georeferenced_model.laz -o /code/odm_georeferencing/odm_georeferenced_model.laz smrf --filters.smrf.cell=2 --filters.smrf.slope=10 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- VERY GOOD&lt;br /&gt;
pdal translate -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_2.laz smrf --filters.smrf.cell=2 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- good&lt;br /&gt;
pdal ground -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_3.laz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.3 Point cloud&lt;br /&gt;
&lt;br /&gt;
What we get from the software&lt;br /&gt;
&lt;br /&gt;
Visualization tools&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/workshop/exercises/analysis/dtm/dtm.html&lt;br /&gt;
&lt;br /&gt;
3. Processing data products&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1 Better classification&lt;br /&gt;
&lt;br /&gt;
lasground&lt;br /&gt;
&lt;br /&gt;
3.2 lasheight&lt;br /&gt;
&lt;br /&gt;
3.3 lasclassify&lt;br /&gt;
&lt;br /&gt;
=== DJI Mavic 2 PRO ===&lt;br /&gt;
&lt;br /&gt;
[https://forum.dji.com/thread-167017-1-1.html Sensor size], [https://www.youtube.com/watch?v=xIncVCe6pg0 Video about sensor size]&lt;br /&gt;
&lt;br /&gt;
==== Erro ====&lt;br /&gt;
&lt;br /&gt;
Culpado: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;/home/jgr/PycharmProjects/OpenDroneMap/modules/odm_extract_utm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todas as imagens estão com Exif.GPSInfo.GPSAltitude = 0.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
      if (lon == 0.0 || lat == 0.0 || alt == 0.0) {&lt;br /&gt;
        std::string error(&amp;quot;Failed parsing GPS position for &amp;quot; + imageFilename);&lt;br /&gt;
        throw UtmExtractorException(error);&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remendo ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.0 m&lt;br /&gt;
&lt;br /&gt;
exiv2 -M&amp;quot;set Exif.GPSInfo.GPSAltitude Rational 1/10&amp;quot; DJI_0210.JPG&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.1 m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chamada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Wrote images database: /code/images.json&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_extract_utm -imagesPath /code/images/ -imageListFile /code/img_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt  -logFile /code/odm_georeferencing/odm_georeferencing_utm_log.txt&lt;br /&gt;
Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[WARNING] Could not generate coordinates file. Ignore if there is a GCP file. Error: Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Building objmodel:&lt;br /&gt;
	Saving model... done.&lt;br /&gt;
Whole texturing procedure took: 225.586s&lt;br /&gt;
[INFO]    Running ODM Texturing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell&lt;br /&gt;
[WARNING] Georeferencing failed. Make sure your photos have geotags in the EXIF or you have provided a GCP file. &lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM DEM Cell&lt;br /&gt;
[INFO]    Classify: True&lt;br /&gt;
[INFO]    Create DSM: True&lt;br /&gt;
[INFO]    Create DTM: True&lt;br /&gt;
[INFO]    DEM input file /code/odm_georeferencing/odm_georeferenced_model.las found: False&lt;br /&gt;
[WARNING] DEM will not be generated&lt;br /&gt;
[INFO]    Running ODM DEM Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Orthophoto Cell&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_orthophoto -inputFile /code/odm_texturing/odm_textured_model.obj -logFile /code/odm_orthophoto/odm_orthophoto_log.txt -outputFile /code/odm_orthophoto/odm_orthophoto.png -resolution 10.0  -outputCornerFile /code/odm_orthophoto/odm_orthophoto_corners.txt&lt;br /&gt;
[WARNING] No geo-referenced orthophoto created due to missing geo-referencing or corner coordinates.&lt;br /&gt;
[INFO]    Running ODM OrthoPhoto Cell - Finished&lt;br /&gt;
[INFO]    OpenDroneMap app finished - Sat Dec 29 22:12:22  2018&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running docker OpenDroneMap ===&lt;br /&gt;
&lt;br /&gt;
==== Update to last OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker pull opendronemap/opendronemap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
# Install docker&lt;br /&gt;
# Add you user to docker group&lt;br /&gt;
# sudo -H pip install requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir OpenDroneMap&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git clone git@github.com:OpenDroneMap/odm_data_aukerman.git&lt;br /&gt;
cd odm_data_aukerman&lt;br /&gt;
&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
ls -l $odmi&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
opendronemap/opendronemap --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sem GCP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado/&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: os ortos estão a ficar com muitas interferências do modelo 3D, nas áreas urbanas.&lt;br /&gt;
&lt;br /&gt;
Related problem: http://community.opendronemap.org/t/buildings/929&lt;br /&gt;
&lt;br /&gt;
Será que voar com a câmara a 75 graus ajuda? Fiz um voo com Double Grid, com a camara a 70 graus (default do Pix4d capture).&lt;br /&gt;
&lt;br /&gt;
==== Mac ====&lt;br /&gt;
&lt;br /&gt;
1. Install Docker&lt;br /&gt;
&lt;br /&gt;
2. &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $(pwd)/images:/code/images -v $(pwd)/odm_orthophoto:/code/odm_orthophoto -v $(pwd)/odm_texturing:/code/odm_texturing -v $(pwd)/odm_georeferencing:/code/odm_georeferencing -v $(pwd)/odm_meshing:/code/odm_meshing -v $(pwd)/opensfm:/code/opensfm -v $(pwd)/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With GCP&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $(pwd)/images:/code/images -v $(pwd)/odm_orthophoto:/code/odm_orthophoto -v $(pwd)/odm_texturing:/code/odm_texturing -v $(pwd)/odm_georeferencing:/code/odm_georeferencing -v $(pwd)/odm_meshing:/code/odm_meshing -v $(pwd)/opensfm:/code/opensfm -v $(pwd)/odm_dem:/code/odm_dem -v $(pwd)/gcp_list.txt:/code/gcp_list.txt opendronemap/opendronemap --dtm --dsm --gcp gcp_list.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
Install Docker&lt;br /&gt;
&lt;br /&gt;
Configure docker (more CPU, more memory)&lt;br /&gt;
&lt;br /&gt;
CPUs: 6&lt;br /&gt;
&lt;br /&gt;
Memory: 12032 Mb&lt;br /&gt;
&lt;br /&gt;
Swap: 4096 Mb&lt;br /&gt;
&lt;br /&gt;
Create the projet folder structure&lt;br /&gt;
&lt;br /&gt;
Project folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\&lt;br /&gt;
&lt;br /&gt;
Image folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\images&lt;br /&gt;
&lt;br /&gt;
Create folders for the OpenDroneMap output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd Documents\uav_sckovskolen_feb20018_incl_GCP&lt;br /&gt;
md odm_orthophoto&lt;br /&gt;
md odm_texturing&lt;br /&gt;
md odm_georeferencing&lt;br /&gt;
md odm_meshing&lt;br /&gt;
md opensfm&lt;br /&gt;
md odm_dem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $pwd/images:/code/images -v $pwd/odm_orthophoto:/code/odm_orthophoto -v $pwd/odm_texturing:/code/odm_texturing -v $pwd/odm_georeferencing:/code/odm_georeferencing -v $pwd/odm_meshing:/code/odm_meshing -v $pwd/opensfm:/code/opensfm -v $pwd/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado2xgrid&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0 --mesh-octree-depth 10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer (update) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo chown -R jgr:jgr *&lt;br /&gt;
git clone https://github.com/mapillary/OpenSfM.git&lt;br /&gt;
cd OpenSfM/viewer&lt;br /&gt;
ln -s ../../images .&lt;br /&gt;
python2 -m SimpleHTTPServer 7777&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ sudo chown -R jgr:jgr *&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cp -r ~/dev/OpenSfM/viewer opensfm&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cd opensfm/&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ ln -s ../images .&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ python -m SimpleHTTPServer&lt;br /&gt;
Serving HTTP on 0.0.0.0 port 8000 ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://localhost:8000/viewer/reconstruction.html#file=/reconstruction.json&lt;br /&gt;
&lt;br /&gt;
==== OpenSFM view images on QGIS ====&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/images/DJI_0595.JPG&lt;br /&gt;
&lt;br /&gt;
-8.7515052, 40.6114774, 22.4100000, 2018:08:23 10:05:11&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/opensfm/reference_lla.json&lt;br /&gt;
&lt;br /&gt;
Centro aproximado do ortophoto resultante (adicionado ao projeto QGIS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;latitude&amp;quot;: 40.61272372901514, &lt;br /&gt;
    &amp;quot;altitude&amp;quot;: 0, &lt;br /&gt;
    &amp;quot;longitude&amp;quot;: -8.752983409509966&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;quot;DJI_0595.JPG&amp;quot;: {&lt;br /&gt;
                &amp;quot;orientation&amp;quot;: 1, &lt;br /&gt;
                &amp;quot;camera&amp;quot;: &amp;quot;v2 dji fc220 4000 3000 perspective 0.7222&amp;quot;, &lt;br /&gt;
                &amp;quot;gps_position&amp;quot;: [&lt;br /&gt;
                    125.10012061257521, &lt;br /&gt;
                    -138.4010433354888, &lt;br /&gt;
                    22.407269606366754&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;gps_dop&amp;quot;: 15.0, &lt;br /&gt;
                &amp;quot;rotation&amp;quot;: [&lt;br /&gt;
                    2.1445873611073996, &lt;br /&gt;
                    -2.2856282209697523, &lt;br /&gt;
                    0.20066193557381898&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;translation&amp;quot;: [&lt;br /&gt;
                    -132.67853610360638, &lt;br /&gt;
                    133.40968771622724, &lt;br /&gt;
                    1.9668907291333997&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;capture_time&amp;quot;: 1535018711.0&lt;br /&gt;
            }, &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://github.com/mapillary/OpenSfM/blob/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ wget https://raw.githubusercontent.com/mapillary/OpenSfM/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
NÃO FUNCIONOU...&lt;br /&gt;
&lt;br /&gt;
export_geocoords.py -dataset costanova&lt;br /&gt;
&lt;br /&gt;
Ver: https://github.com/mapillary/OpenSfM/issues/183&lt;br /&gt;
&lt;br /&gt;
=== webODM ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/OpenDroneMap/WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input&lt;br /&gt;
cd WebODM&lt;br /&gt;
./webodm.sh start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jgrocha/xxbatata&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
&lt;br /&gt;
CloudCompare&lt;br /&gt;
&lt;br /&gt;
QGIS Plugin Photo2Shape&lt;br /&gt;
&lt;br /&gt;
Criar uma shapefile photos&lt;br /&gt;
&lt;br /&gt;
Nas propriedades, no campo &amp;lt;syntaxhighlight inline lang=&amp;quot;bash&amp;quot;&amp;gt;filepath&amp;lt;/syntaxhighlight&amp;gt; mudar para o tipo Fotografia.&lt;br /&gt;
&lt;br /&gt;
=== Ground Control File ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo -7.778152 41.833203 957.575989  | cs2cs +init=epsg:4326 +to +init=epsg:3763&lt;br /&gt;
echo 708610.702 6209972.025 26.085 | cs2cs +init=epsg:25832 +to +init=epsg:32633&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:32633 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;#039;&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:25832 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs &amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make my own OpenDroneMap image ==&lt;br /&gt;
&lt;br /&gt;
=== Fork and clone ODM repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone git@github.com:jgrocha/OpenDroneMap.git&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git checkout -b generate-laz-output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change source ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Build new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/PycharmProjects/OpenDroneMap$ docker build --no-cache -t odm_altitude_0 .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t odm_laz_image .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cd &amp;quot;/mnt/bonn/nextCloud/Photos/DJI MAVIC PRO 2 Paradela/100MEDIA&amp;quot;&lt;br /&gt;
cd /mnt/bonn/nextCloud/Photos&lt;br /&gt;
ln -s &amp;#039;DJI MAVIC PRO 2 Paradela/100MEDIA&amp;#039; images&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
docker run --cpus 8 -it --rm -v $odmi/images:/code/images -v $odmi/odm_orthophoto:/code/odm_orthophoto -v $odmi/odm_texturing:/code/odm_texturing -v $odmi/odm_georeferencing:/code/odm_georeferencing -v $odmi/odm_meshing:/code/odm_meshing -v $odmi/opensfm:/code/opensfm -v $odmi/odm_dem:/code/odm_dem odm_altitude_0 --dtm --dsm --force-ccd 13.2&lt;br /&gt;
# --orthophoto-resolution 2.0 --mesh-octree-depth 2 --opensfm-processes 8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
sudo rm -rf odm_georeferencing odm_meshing odm_orthophoto odm_texturing opensfm&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options for rerunning are: &amp;#039;resize&amp;#039;, &amp;#039;opensfm&amp;#039;, &amp;#039;slam&amp;#039;, &amp;#039;cmvs&amp;#039;, &amp;#039;pmvs&amp;#039;, &amp;#039;odm_meshing&amp;#039;, &amp;#039;mvs_texturing&amp;#039;, &amp;#039;odm_georeferencing&amp;#039;, &amp;#039;odm_orthophoto&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm --rerun-from odm_georeferencing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check the output ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
running /code/build/bin/odm_georef -bundleFile /code/opensfm/bundle_r000.out -imagesPath /code/images -imagesListPath /code/opensfm/list_r000.out -inputFile /code/odm_texturing/odm_textured_model.obj -outputFile /code/odm_texturing/odm_textured_model_geo.obj -inputPointCloudFile /code/opensfm/depthmaps/merged.ply -outputPointCloudFile /code/odm_georeferencing/odm_georeferenced_model.ply  -logFile /code/odm_georeferencing/odm_georeferencing_log.txt -outputTransformFile /code/odm_georeferencing/odm_georeferencing_transform.txt -georefFileOutputPath /code/odm_georeferencing/odm_georeferencing_model_geo.txt -gcpFile gcp_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt&lt;br /&gt;
[DEBUG]   running /code/SuperBuild/build/pdal/bin/pdal pipeline -i /code/odm_georeferencing/las.json --readers.ply.filename=/code/odm_georeferencing/odm_georeferenced_model.ply&lt;br /&gt;
PDAL: writers.las: Can&amp;#039;t write LAZ output.  PDAL not built with LASzip or LAZperf.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pipeline&amp;quot;: [&lt;br /&gt;
    &amp;quot;untransformed.ply&amp;quot;,&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;writers.las&amp;quot;,&lt;br /&gt;
      &amp;quot;a_srs&amp;quot;: &amp;quot;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;quot;,&lt;br /&gt;
      &amp;quot;offset_x&amp;quot;: &amp;quot;334230.28164&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_y&amp;quot;: &amp;quot;6208095.41529&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_z&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;compression&amp;quot;: &amp;quot;laszip&amp;quot;,&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;/code/odm_georeferencing/odm_georeferenced_model.laz&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-17 14-34-10.png]]&lt;br /&gt;
&lt;br /&gt;
=== Local pdal+LASzip ===&lt;br /&gt;
&lt;br /&gt;
Build from source!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/bin/pdal pipeline -i las.json --readers.ply.filename=odm_georeferenced_model.ply&lt;br /&gt;
-rw-r--r-- 1 jgr jgr  22661583 jun 17 11:47 odm_georeferenced_model.laz&lt;br /&gt;
-rw-r--r-- 1 jgr jgr 121586206 jun 17 11:42 odm_georeferenced_model.ply&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Previous result ====&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-16 12-26-36.png]]&lt;br /&gt;
&lt;br /&gt;
==== New result ====&lt;br /&gt;
&lt;br /&gt;
=== Create Pull Request ===&lt;br /&gt;
&lt;br /&gt;
close #845&lt;br /&gt;
&lt;br /&gt;
=== Other fixes ===&lt;br /&gt;
&lt;br /&gt;
epsg versus EPSG&lt;br /&gt;
&lt;br /&gt;
== Point cloud classification ==&lt;br /&gt;
&lt;br /&gt;
[DEBUG]   running pdal info --boundary --filters.hexbin.edge_length=1 --filters.hexbin.threshold=0 /code/odm_georeferencing/odm_georeferenced_model.filtered.las &amp;gt; /code/odm_georeferencing/odm_georeferenced_model.boundary.json&lt;br /&gt;
PDAL: Argument references invalid/unused stage: &amp;#039;filters.hexbin&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=927</id>
		<title>Running OpenDroneMap</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=927"/>
		<updated>2019-02-28T02:37:08Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Mac */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Drone Workshop ===&lt;br /&gt;
&lt;br /&gt;
[[Drone workshop print screens]]&lt;br /&gt;
&lt;br /&gt;
1. Flight&lt;br /&gt;
&lt;br /&gt;
WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install docker-compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10:54&lt;br /&gt;
&lt;br /&gt;
2. Data products&lt;br /&gt;
&lt;br /&gt;
2.1 Orthophoto&lt;br /&gt;
&lt;br /&gt;
Discussion: GCP, impact on the elevation model&lt;br /&gt;
&lt;br /&gt;
Swipe tool&lt;br /&gt;
&lt;br /&gt;
Point value: check ortho values&lt;br /&gt;
&lt;br /&gt;
2.2 DEM/DSM&lt;br /&gt;
&lt;br /&gt;
Discussion: difference between&lt;br /&gt;
&lt;br /&gt;
Raster value&lt;br /&gt;
&lt;br /&gt;
Profile tool&lt;br /&gt;
&lt;br /&gt;
Visualization: hillshade&lt;br /&gt;
&lt;br /&gt;
http://plas.io/&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/tutorial/pcl_ground/index.html#pcl-ground&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-- original&lt;br /&gt;
pdal translate -i /code/odm_georeferencing/odm_georeferenced_model.laz -o /code/odm_georeferencing/odm_georeferenced_model.laz smrf --filters.smrf.cell=2 --filters.smrf.slope=10 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- VERY GOOD&lt;br /&gt;
pdal translate -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_2.laz smrf --filters.smrf.cell=2 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- good&lt;br /&gt;
pdal ground -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_3.laz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.3 Point cloud&lt;br /&gt;
&lt;br /&gt;
What we get from the software&lt;br /&gt;
&lt;br /&gt;
Visualization tools&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/workshop/exercises/analysis/dtm/dtm.html&lt;br /&gt;
&lt;br /&gt;
3. Processing data products&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1 Better classification&lt;br /&gt;
&lt;br /&gt;
lasground&lt;br /&gt;
&lt;br /&gt;
3.2 lasheight&lt;br /&gt;
&lt;br /&gt;
3.3 lasclassify&lt;br /&gt;
&lt;br /&gt;
=== DJI Mavic 2 PRO ===&lt;br /&gt;
&lt;br /&gt;
[https://forum.dji.com/thread-167017-1-1.html Sensor size], [https://www.youtube.com/watch?v=xIncVCe6pg0 Video about sensor size]&lt;br /&gt;
&lt;br /&gt;
==== Erro ====&lt;br /&gt;
&lt;br /&gt;
Culpado: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;/home/jgr/PycharmProjects/OpenDroneMap/modules/odm_extract_utm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todas as imagens estão com Exif.GPSInfo.GPSAltitude = 0.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
      if (lon == 0.0 || lat == 0.0 || alt == 0.0) {&lt;br /&gt;
        std::string error(&amp;quot;Failed parsing GPS position for &amp;quot; + imageFilename);&lt;br /&gt;
        throw UtmExtractorException(error);&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remendo ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.0 m&lt;br /&gt;
&lt;br /&gt;
exiv2 -M&amp;quot;set Exif.GPSInfo.GPSAltitude Rational 1/10&amp;quot; DJI_0210.JPG&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.1 m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chamada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Wrote images database: /code/images.json&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_extract_utm -imagesPath /code/images/ -imageListFile /code/img_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt  -logFile /code/odm_georeferencing/odm_georeferencing_utm_log.txt&lt;br /&gt;
Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[WARNING] Could not generate coordinates file. Ignore if there is a GCP file. Error: Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Building objmodel:&lt;br /&gt;
	Saving model... done.&lt;br /&gt;
Whole texturing procedure took: 225.586s&lt;br /&gt;
[INFO]    Running ODM Texturing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell&lt;br /&gt;
[WARNING] Georeferencing failed. Make sure your photos have geotags in the EXIF or you have provided a GCP file. &lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM DEM Cell&lt;br /&gt;
[INFO]    Classify: True&lt;br /&gt;
[INFO]    Create DSM: True&lt;br /&gt;
[INFO]    Create DTM: True&lt;br /&gt;
[INFO]    DEM input file /code/odm_georeferencing/odm_georeferenced_model.las found: False&lt;br /&gt;
[WARNING] DEM will not be generated&lt;br /&gt;
[INFO]    Running ODM DEM Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Orthophoto Cell&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_orthophoto -inputFile /code/odm_texturing/odm_textured_model.obj -logFile /code/odm_orthophoto/odm_orthophoto_log.txt -outputFile /code/odm_orthophoto/odm_orthophoto.png -resolution 10.0  -outputCornerFile /code/odm_orthophoto/odm_orthophoto_corners.txt&lt;br /&gt;
[WARNING] No geo-referenced orthophoto created due to missing geo-referencing or corner coordinates.&lt;br /&gt;
[INFO]    Running ODM OrthoPhoto Cell - Finished&lt;br /&gt;
[INFO]    OpenDroneMap app finished - Sat Dec 29 22:12:22  2018&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running docker OpenDroneMap ===&lt;br /&gt;
&lt;br /&gt;
==== Update to last OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker pull opendronemap/opendronemap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
# Install docker&lt;br /&gt;
# Add you user to docker group&lt;br /&gt;
# sudo -H pip install requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir OpenDroneMap&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git clone git@github.com:OpenDroneMap/odm_data_aukerman.git&lt;br /&gt;
cd odm_data_aukerman&lt;br /&gt;
&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
ls -l $odmi&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
opendronemap/opendronemap --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sem GCP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado/&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: os ortos estão a ficar com muitas interferências do modelo 3D, nas áreas urbanas.&lt;br /&gt;
&lt;br /&gt;
Related problem: http://community.opendronemap.org/t/buildings/929&lt;br /&gt;
&lt;br /&gt;
Será que voar com a câmara a 75 graus ajuda? Fiz um voo com Double Grid, com a camara a 70 graus (default do Pix4d capture).&lt;br /&gt;
&lt;br /&gt;
==== Mac ====&lt;br /&gt;
&lt;br /&gt;
1. Install Docker&lt;br /&gt;
&lt;br /&gt;
2. &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $(pwd)/images:/code/images -v $(pwd)/odm_orthophoto:/code/odm_orthophoto -v $(pwd)/odm_texturing:/code/odm_texturing -v $(pwd)/odm_georeferencing:/code/odm_georeferencing -v $(pwd)/odm_meshing:/code/odm_meshing -v $(pwd)/opensfm:/code/opensfm -v $(pwd)/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $(pwd)/images:/code/images -v $(pwd)/odm_orthophoto:/code/odm_orthophoto -v $(pwd)/odm_texturing:/code/odm_texturing -v $(pwd)/odm_georeferencing:/code/odm_georeferencing -v $(pwd)/odm_meshing:/code/odm_meshing -v $(pwd)/opensfm:/code/opensfm -v $(pwd)/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
Install Docker&lt;br /&gt;
&lt;br /&gt;
Configure docker (more CPU, more memory)&lt;br /&gt;
&lt;br /&gt;
CPUs: 6&lt;br /&gt;
&lt;br /&gt;
Memory: 12032 Mb&lt;br /&gt;
&lt;br /&gt;
Swap: 4096 Mb&lt;br /&gt;
&lt;br /&gt;
Create the projet folder structure&lt;br /&gt;
&lt;br /&gt;
Project folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\&lt;br /&gt;
&lt;br /&gt;
Image folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\images&lt;br /&gt;
&lt;br /&gt;
Create folders for the OpenDroneMap output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd Documents\uav_sckovskolen_feb20018_incl_GCP&lt;br /&gt;
md odm_orthophoto&lt;br /&gt;
md odm_texturing&lt;br /&gt;
md odm_georeferencing&lt;br /&gt;
md odm_meshing&lt;br /&gt;
md opensfm&lt;br /&gt;
md odm_dem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $pwd/images:/code/images -v $pwd/odm_orthophoto:/code/odm_orthophoto -v $pwd/odm_texturing:/code/odm_texturing -v $pwd/odm_georeferencing:/code/odm_georeferencing -v $pwd/odm_meshing:/code/odm_meshing -v $pwd/opensfm:/code/opensfm -v $pwd/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado2xgrid&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0 --mesh-octree-depth 10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer (update) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo chown -R jgr:jgr *&lt;br /&gt;
git clone https://github.com/mapillary/OpenSfM.git&lt;br /&gt;
cd OpenSfM/viewer&lt;br /&gt;
ln -s ../../images .&lt;br /&gt;
python2 -m SimpleHTTPServer 7777&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ sudo chown -R jgr:jgr *&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cp -r ~/dev/OpenSfM/viewer opensfm&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cd opensfm/&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ ln -s ../images .&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ python -m SimpleHTTPServer&lt;br /&gt;
Serving HTTP on 0.0.0.0 port 8000 ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://localhost:8000/viewer/reconstruction.html#file=/reconstruction.json&lt;br /&gt;
&lt;br /&gt;
==== OpenSFM view images on QGIS ====&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/images/DJI_0595.JPG&lt;br /&gt;
&lt;br /&gt;
-8.7515052, 40.6114774, 22.4100000, 2018:08:23 10:05:11&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/opensfm/reference_lla.json&lt;br /&gt;
&lt;br /&gt;
Centro aproximado do ortophoto resultante (adicionado ao projeto QGIS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;latitude&amp;quot;: 40.61272372901514, &lt;br /&gt;
    &amp;quot;altitude&amp;quot;: 0, &lt;br /&gt;
    &amp;quot;longitude&amp;quot;: -8.752983409509966&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;quot;DJI_0595.JPG&amp;quot;: {&lt;br /&gt;
                &amp;quot;orientation&amp;quot;: 1, &lt;br /&gt;
                &amp;quot;camera&amp;quot;: &amp;quot;v2 dji fc220 4000 3000 perspective 0.7222&amp;quot;, &lt;br /&gt;
                &amp;quot;gps_position&amp;quot;: [&lt;br /&gt;
                    125.10012061257521, &lt;br /&gt;
                    -138.4010433354888, &lt;br /&gt;
                    22.407269606366754&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;gps_dop&amp;quot;: 15.0, &lt;br /&gt;
                &amp;quot;rotation&amp;quot;: [&lt;br /&gt;
                    2.1445873611073996, &lt;br /&gt;
                    -2.2856282209697523, &lt;br /&gt;
                    0.20066193557381898&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;translation&amp;quot;: [&lt;br /&gt;
                    -132.67853610360638, &lt;br /&gt;
                    133.40968771622724, &lt;br /&gt;
                    1.9668907291333997&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;capture_time&amp;quot;: 1535018711.0&lt;br /&gt;
            }, &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://github.com/mapillary/OpenSfM/blob/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ wget https://raw.githubusercontent.com/mapillary/OpenSfM/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
NÃO FUNCIONOU...&lt;br /&gt;
&lt;br /&gt;
export_geocoords.py -dataset costanova&lt;br /&gt;
&lt;br /&gt;
Ver: https://github.com/mapillary/OpenSfM/issues/183&lt;br /&gt;
&lt;br /&gt;
=== webODM ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/OpenDroneMap/WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input&lt;br /&gt;
cd WebODM&lt;br /&gt;
./webodm.sh start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jgrocha/xxbatata&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
&lt;br /&gt;
CloudCompare&lt;br /&gt;
&lt;br /&gt;
QGIS Plugin Photo2Shape&lt;br /&gt;
&lt;br /&gt;
Criar uma shapefile photos&lt;br /&gt;
&lt;br /&gt;
Nas propriedades, no campo &amp;lt;syntaxhighlight inline lang=&amp;quot;bash&amp;quot;&amp;gt;filepath&amp;lt;/syntaxhighlight&amp;gt; mudar para o tipo Fotografia.&lt;br /&gt;
&lt;br /&gt;
=== Ground Control File ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo -7.778152 41.833203 957.575989  | cs2cs +init=epsg:4326 +to +init=epsg:3763&lt;br /&gt;
echo 708610.702 6209972.025 26.085 | cs2cs +init=epsg:25832 +to +init=epsg:32633&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:32633 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;#039;&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:25832 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs &amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make my own OpenDroneMap image ==&lt;br /&gt;
&lt;br /&gt;
=== Fork and clone ODM repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone git@github.com:jgrocha/OpenDroneMap.git&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git checkout -b generate-laz-output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change source ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Build new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/PycharmProjects/OpenDroneMap$ docker build --no-cache -t odm_altitude_0 .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t odm_laz_image .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cd &amp;quot;/mnt/bonn/nextCloud/Photos/DJI MAVIC PRO 2 Paradela/100MEDIA&amp;quot;&lt;br /&gt;
cd /mnt/bonn/nextCloud/Photos&lt;br /&gt;
ln -s &amp;#039;DJI MAVIC PRO 2 Paradela/100MEDIA&amp;#039; images&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
docker run --cpus 8 -it --rm -v $odmi/images:/code/images -v $odmi/odm_orthophoto:/code/odm_orthophoto -v $odmi/odm_texturing:/code/odm_texturing -v $odmi/odm_georeferencing:/code/odm_georeferencing -v $odmi/odm_meshing:/code/odm_meshing -v $odmi/opensfm:/code/opensfm -v $odmi/odm_dem:/code/odm_dem odm_altitude_0 --dtm --dsm --force-ccd 13.2&lt;br /&gt;
# --orthophoto-resolution 2.0 --mesh-octree-depth 2 --opensfm-processes 8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
sudo rm -rf odm_georeferencing odm_meshing odm_orthophoto odm_texturing opensfm&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options for rerunning are: &amp;#039;resize&amp;#039;, &amp;#039;opensfm&amp;#039;, &amp;#039;slam&amp;#039;, &amp;#039;cmvs&amp;#039;, &amp;#039;pmvs&amp;#039;, &amp;#039;odm_meshing&amp;#039;, &amp;#039;mvs_texturing&amp;#039;, &amp;#039;odm_georeferencing&amp;#039;, &amp;#039;odm_orthophoto&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm --rerun-from odm_georeferencing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check the output ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
running /code/build/bin/odm_georef -bundleFile /code/opensfm/bundle_r000.out -imagesPath /code/images -imagesListPath /code/opensfm/list_r000.out -inputFile /code/odm_texturing/odm_textured_model.obj -outputFile /code/odm_texturing/odm_textured_model_geo.obj -inputPointCloudFile /code/opensfm/depthmaps/merged.ply -outputPointCloudFile /code/odm_georeferencing/odm_georeferenced_model.ply  -logFile /code/odm_georeferencing/odm_georeferencing_log.txt -outputTransformFile /code/odm_georeferencing/odm_georeferencing_transform.txt -georefFileOutputPath /code/odm_georeferencing/odm_georeferencing_model_geo.txt -gcpFile gcp_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt&lt;br /&gt;
[DEBUG]   running /code/SuperBuild/build/pdal/bin/pdal pipeline -i /code/odm_georeferencing/las.json --readers.ply.filename=/code/odm_georeferencing/odm_georeferenced_model.ply&lt;br /&gt;
PDAL: writers.las: Can&amp;#039;t write LAZ output.  PDAL not built with LASzip or LAZperf.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pipeline&amp;quot;: [&lt;br /&gt;
    &amp;quot;untransformed.ply&amp;quot;,&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;writers.las&amp;quot;,&lt;br /&gt;
      &amp;quot;a_srs&amp;quot;: &amp;quot;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;quot;,&lt;br /&gt;
      &amp;quot;offset_x&amp;quot;: &amp;quot;334230.28164&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_y&amp;quot;: &amp;quot;6208095.41529&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_z&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;compression&amp;quot;: &amp;quot;laszip&amp;quot;,&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;/code/odm_georeferencing/odm_georeferenced_model.laz&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-17 14-34-10.png]]&lt;br /&gt;
&lt;br /&gt;
=== Local pdal+LASzip ===&lt;br /&gt;
&lt;br /&gt;
Build from source!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/bin/pdal pipeline -i las.json --readers.ply.filename=odm_georeferenced_model.ply&lt;br /&gt;
-rw-r--r-- 1 jgr jgr  22661583 jun 17 11:47 odm_georeferenced_model.laz&lt;br /&gt;
-rw-r--r-- 1 jgr jgr 121586206 jun 17 11:42 odm_georeferenced_model.ply&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Previous result ====&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-16 12-26-36.png]]&lt;br /&gt;
&lt;br /&gt;
==== New result ====&lt;br /&gt;
&lt;br /&gt;
=== Create Pull Request ===&lt;br /&gt;
&lt;br /&gt;
close #845&lt;br /&gt;
&lt;br /&gt;
=== Other fixes ===&lt;br /&gt;
&lt;br /&gt;
epsg versus EPSG&lt;br /&gt;
&lt;br /&gt;
== Point cloud classification ==&lt;br /&gt;
&lt;br /&gt;
[DEBUG]   running pdal info --boundary --filters.hexbin.edge_length=1 --filters.hexbin.threshold=0 /code/odm_georeferencing/odm_georeferenced_model.filtered.las &amp;gt; /code/odm_georeferencing/odm_georeferenced_model.boundary.json&lt;br /&gt;
PDAL: Argument references invalid/unused stage: &amp;#039;filters.hexbin&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Drone_workshop_print_screens&amp;diff=925</id>
		<title>Drone workshop print screens</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Drone_workshop_print_screens&amp;diff=925"/>
		<updated>2019-02-27T00:03:53Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: Created page with &amp;quot; File:Captura de ecrã de 2019-02-26 23-32-43.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[File:Captura de ecrã de 2019-02-26 23-32-43.png]]&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=File:Captura_de_ecr%C3%A3_de_2019-02-26_23-32-43.png&amp;diff=923</id>
		<title>File:Captura de ecrã de 2019-02-26 23-32-43.png</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=File:Captura_de_ecr%C3%A3_de_2019-02-26_23-32-43.png&amp;diff=923"/>
		<updated>2019-02-26T23:33:11Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=921</id>
		<title>Running OpenDroneMap</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=921"/>
		<updated>2019-02-26T23:30:21Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Drone Workshop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Drone Workshop ===&lt;br /&gt;
&lt;br /&gt;
[[Drone workshop print screens]]&lt;br /&gt;
&lt;br /&gt;
1. Flight&lt;br /&gt;
&lt;br /&gt;
WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install docker-compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10:54&lt;br /&gt;
&lt;br /&gt;
2. Data products&lt;br /&gt;
&lt;br /&gt;
2.1 Orthophoto&lt;br /&gt;
&lt;br /&gt;
Discussion: GCP, impact on the elevation model&lt;br /&gt;
&lt;br /&gt;
Swipe tool&lt;br /&gt;
&lt;br /&gt;
Point value: check ortho values&lt;br /&gt;
&lt;br /&gt;
2.2 DEM/DSM&lt;br /&gt;
&lt;br /&gt;
Discussion: difference between&lt;br /&gt;
&lt;br /&gt;
Raster value&lt;br /&gt;
&lt;br /&gt;
Profile tool&lt;br /&gt;
&lt;br /&gt;
Visualization: hillshade&lt;br /&gt;
&lt;br /&gt;
http://plas.io/&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/tutorial/pcl_ground/index.html#pcl-ground&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-- original&lt;br /&gt;
pdal translate -i /code/odm_georeferencing/odm_georeferenced_model.laz -o /code/odm_georeferencing/odm_georeferenced_model.laz smrf --filters.smrf.cell=2 --filters.smrf.slope=10 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- VERY GOOD&lt;br /&gt;
pdal translate -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_2.laz smrf --filters.smrf.cell=2 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- good&lt;br /&gt;
pdal ground -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_3.laz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.3 Point cloud&lt;br /&gt;
&lt;br /&gt;
What we get from the software&lt;br /&gt;
&lt;br /&gt;
Visualization tools&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/workshop/exercises/analysis/dtm/dtm.html&lt;br /&gt;
&lt;br /&gt;
3. Processing data products&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1 Better classification&lt;br /&gt;
&lt;br /&gt;
lasground&lt;br /&gt;
&lt;br /&gt;
3.2 lasheight&lt;br /&gt;
&lt;br /&gt;
3.3 lasclassify&lt;br /&gt;
&lt;br /&gt;
=== DJI Mavic 2 PRO ===&lt;br /&gt;
&lt;br /&gt;
[https://forum.dji.com/thread-167017-1-1.html Sensor size], [https://www.youtube.com/watch?v=xIncVCe6pg0 Video about sensor size]&lt;br /&gt;
&lt;br /&gt;
==== Erro ====&lt;br /&gt;
&lt;br /&gt;
Culpado: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;/home/jgr/PycharmProjects/OpenDroneMap/modules/odm_extract_utm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todas as imagens estão com Exif.GPSInfo.GPSAltitude = 0.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
      if (lon == 0.0 || lat == 0.0 || alt == 0.0) {&lt;br /&gt;
        std::string error(&amp;quot;Failed parsing GPS position for &amp;quot; + imageFilename);&lt;br /&gt;
        throw UtmExtractorException(error);&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remendo ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.0 m&lt;br /&gt;
&lt;br /&gt;
exiv2 -M&amp;quot;set Exif.GPSInfo.GPSAltitude Rational 1/10&amp;quot; DJI_0210.JPG&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.1 m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chamada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Wrote images database: /code/images.json&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_extract_utm -imagesPath /code/images/ -imageListFile /code/img_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt  -logFile /code/odm_georeferencing/odm_georeferencing_utm_log.txt&lt;br /&gt;
Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[WARNING] Could not generate coordinates file. Ignore if there is a GCP file. Error: Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Building objmodel:&lt;br /&gt;
	Saving model... done.&lt;br /&gt;
Whole texturing procedure took: 225.586s&lt;br /&gt;
[INFO]    Running ODM Texturing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell&lt;br /&gt;
[WARNING] Georeferencing failed. Make sure your photos have geotags in the EXIF or you have provided a GCP file. &lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM DEM Cell&lt;br /&gt;
[INFO]    Classify: True&lt;br /&gt;
[INFO]    Create DSM: True&lt;br /&gt;
[INFO]    Create DTM: True&lt;br /&gt;
[INFO]    DEM input file /code/odm_georeferencing/odm_georeferenced_model.las found: False&lt;br /&gt;
[WARNING] DEM will not be generated&lt;br /&gt;
[INFO]    Running ODM DEM Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Orthophoto Cell&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_orthophoto -inputFile /code/odm_texturing/odm_textured_model.obj -logFile /code/odm_orthophoto/odm_orthophoto_log.txt -outputFile /code/odm_orthophoto/odm_orthophoto.png -resolution 10.0  -outputCornerFile /code/odm_orthophoto/odm_orthophoto_corners.txt&lt;br /&gt;
[WARNING] No geo-referenced orthophoto created due to missing geo-referencing or corner coordinates.&lt;br /&gt;
[INFO]    Running ODM OrthoPhoto Cell - Finished&lt;br /&gt;
[INFO]    OpenDroneMap app finished - Sat Dec 29 22:12:22  2018&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running docker OpenDroneMap ===&lt;br /&gt;
&lt;br /&gt;
==== Update to last OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker pull opendronemap/opendronemap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
# Install docker&lt;br /&gt;
# Add you user to docker group&lt;br /&gt;
# sudo -H pip install requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir OpenDroneMap&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git clone git@github.com:OpenDroneMap/odm_data_aukerman.git&lt;br /&gt;
cd odm_data_aukerman&lt;br /&gt;
&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
ls -l $odmi&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
opendronemap/opendronemap --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sem GCP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado/&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: os ortos estão a ficar com muitas interferências do modelo 3D, nas áreas urbanas.&lt;br /&gt;
&lt;br /&gt;
Related problem: http://community.opendronemap.org/t/buildings/929&lt;br /&gt;
&lt;br /&gt;
Será que voar com a câmara a 75 graus ajuda? Fiz um voo com Double Grid, com a camara a 70 graus (default do Pix4d capture).&lt;br /&gt;
&lt;br /&gt;
==== Mac ====&lt;br /&gt;
&lt;br /&gt;
1. Install Docker&lt;br /&gt;
&lt;br /&gt;
2. &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $(pwd)/images:/code/images -v $(pwd)/odm_orthophoto:/code/odm_orthophoto -v $(pwd)/odm_texturing:/code/odm_texturing -v $(pwd)/odm_georeferencing:/code/odm_georeferencing -v $(pwd)/odm_meshing:/code/odm_meshing -v $(pwd)/opensfm:/code/opensfm -v $(pwd)/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
Install Docker&lt;br /&gt;
&lt;br /&gt;
Configure docker (more CPU, more memory)&lt;br /&gt;
&lt;br /&gt;
CPUs: 6&lt;br /&gt;
&lt;br /&gt;
Memory: 12032 Mb&lt;br /&gt;
&lt;br /&gt;
Swap: 4096 Mb&lt;br /&gt;
&lt;br /&gt;
Create the projet folder structure&lt;br /&gt;
&lt;br /&gt;
Project folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\&lt;br /&gt;
&lt;br /&gt;
Image folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\images&lt;br /&gt;
&lt;br /&gt;
Create folders for the OpenDroneMap output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd Documents\uav_sckovskolen_feb20018_incl_GCP&lt;br /&gt;
md odm_orthophoto&lt;br /&gt;
md odm_texturing&lt;br /&gt;
md odm_georeferencing&lt;br /&gt;
md odm_meshing&lt;br /&gt;
md opensfm&lt;br /&gt;
md odm_dem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $pwd/images:/code/images -v $pwd/odm_orthophoto:/code/odm_orthophoto -v $pwd/odm_texturing:/code/odm_texturing -v $pwd/odm_georeferencing:/code/odm_georeferencing -v $pwd/odm_meshing:/code/odm_meshing -v $pwd/opensfm:/code/opensfm -v $pwd/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado2xgrid&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0 --mesh-octree-depth 10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer (update) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo chown -R jgr:jgr *&lt;br /&gt;
git clone https://github.com/mapillary/OpenSfM.git&lt;br /&gt;
cd OpenSfM/viewer&lt;br /&gt;
ln -s ../../images .&lt;br /&gt;
python2 -m SimpleHTTPServer 7777&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ sudo chown -R jgr:jgr *&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cp -r ~/dev/OpenSfM/viewer opensfm&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cd opensfm/&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ ln -s ../images .&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ python -m SimpleHTTPServer&lt;br /&gt;
Serving HTTP on 0.0.0.0 port 8000 ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://localhost:8000/viewer/reconstruction.html#file=/reconstruction.json&lt;br /&gt;
&lt;br /&gt;
==== OpenSFM view images on QGIS ====&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/images/DJI_0595.JPG&lt;br /&gt;
&lt;br /&gt;
-8.7515052, 40.6114774, 22.4100000, 2018:08:23 10:05:11&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/opensfm/reference_lla.json&lt;br /&gt;
&lt;br /&gt;
Centro aproximado do ortophoto resultante (adicionado ao projeto QGIS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;latitude&amp;quot;: 40.61272372901514, &lt;br /&gt;
    &amp;quot;altitude&amp;quot;: 0, &lt;br /&gt;
    &amp;quot;longitude&amp;quot;: -8.752983409509966&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;quot;DJI_0595.JPG&amp;quot;: {&lt;br /&gt;
                &amp;quot;orientation&amp;quot;: 1, &lt;br /&gt;
                &amp;quot;camera&amp;quot;: &amp;quot;v2 dji fc220 4000 3000 perspective 0.7222&amp;quot;, &lt;br /&gt;
                &amp;quot;gps_position&amp;quot;: [&lt;br /&gt;
                    125.10012061257521, &lt;br /&gt;
                    -138.4010433354888, &lt;br /&gt;
                    22.407269606366754&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;gps_dop&amp;quot;: 15.0, &lt;br /&gt;
                &amp;quot;rotation&amp;quot;: [&lt;br /&gt;
                    2.1445873611073996, &lt;br /&gt;
                    -2.2856282209697523, &lt;br /&gt;
                    0.20066193557381898&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;translation&amp;quot;: [&lt;br /&gt;
                    -132.67853610360638, &lt;br /&gt;
                    133.40968771622724, &lt;br /&gt;
                    1.9668907291333997&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;capture_time&amp;quot;: 1535018711.0&lt;br /&gt;
            }, &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://github.com/mapillary/OpenSfM/blob/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ wget https://raw.githubusercontent.com/mapillary/OpenSfM/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
NÃO FUNCIONOU...&lt;br /&gt;
&lt;br /&gt;
export_geocoords.py -dataset costanova&lt;br /&gt;
&lt;br /&gt;
Ver: https://github.com/mapillary/OpenSfM/issues/183&lt;br /&gt;
&lt;br /&gt;
=== webODM ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/OpenDroneMap/WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input&lt;br /&gt;
cd WebODM&lt;br /&gt;
./webodm.sh start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jgrocha/xxbatata&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
&lt;br /&gt;
CloudCompare&lt;br /&gt;
&lt;br /&gt;
QGIS Plugin Photo2Shape&lt;br /&gt;
&lt;br /&gt;
Criar uma shapefile photos&lt;br /&gt;
&lt;br /&gt;
Nas propriedades, no campo &amp;lt;syntaxhighlight inline lang=&amp;quot;bash&amp;quot;&amp;gt;filepath&amp;lt;/syntaxhighlight&amp;gt; mudar para o tipo Fotografia.&lt;br /&gt;
&lt;br /&gt;
=== Ground Control File ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo -7.778152 41.833203 957.575989  | cs2cs +init=epsg:4326 +to +init=epsg:3763&lt;br /&gt;
echo 708610.702 6209972.025 26.085 | cs2cs +init=epsg:25832 +to +init=epsg:32633&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:32633 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;#039;&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:25832 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs &amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make my own OpenDroneMap image ==&lt;br /&gt;
&lt;br /&gt;
=== Fork and clone ODM repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone git@github.com:jgrocha/OpenDroneMap.git&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git checkout -b generate-laz-output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change source ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Build new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/PycharmProjects/OpenDroneMap$ docker build --no-cache -t odm_altitude_0 .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t odm_laz_image .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cd &amp;quot;/mnt/bonn/nextCloud/Photos/DJI MAVIC PRO 2 Paradela/100MEDIA&amp;quot;&lt;br /&gt;
cd /mnt/bonn/nextCloud/Photos&lt;br /&gt;
ln -s &amp;#039;DJI MAVIC PRO 2 Paradela/100MEDIA&amp;#039; images&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
docker run --cpus 8 -it --rm -v $odmi/images:/code/images -v $odmi/odm_orthophoto:/code/odm_orthophoto -v $odmi/odm_texturing:/code/odm_texturing -v $odmi/odm_georeferencing:/code/odm_georeferencing -v $odmi/odm_meshing:/code/odm_meshing -v $odmi/opensfm:/code/opensfm -v $odmi/odm_dem:/code/odm_dem odm_altitude_0 --dtm --dsm --force-ccd 13.2&lt;br /&gt;
# --orthophoto-resolution 2.0 --mesh-octree-depth 2 --opensfm-processes 8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
sudo rm -rf odm_georeferencing odm_meshing odm_orthophoto odm_texturing opensfm&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options for rerunning are: &amp;#039;resize&amp;#039;, &amp;#039;opensfm&amp;#039;, &amp;#039;slam&amp;#039;, &amp;#039;cmvs&amp;#039;, &amp;#039;pmvs&amp;#039;, &amp;#039;odm_meshing&amp;#039;, &amp;#039;mvs_texturing&amp;#039;, &amp;#039;odm_georeferencing&amp;#039;, &amp;#039;odm_orthophoto&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm --rerun-from odm_georeferencing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check the output ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
running /code/build/bin/odm_georef -bundleFile /code/opensfm/bundle_r000.out -imagesPath /code/images -imagesListPath /code/opensfm/list_r000.out -inputFile /code/odm_texturing/odm_textured_model.obj -outputFile /code/odm_texturing/odm_textured_model_geo.obj -inputPointCloudFile /code/opensfm/depthmaps/merged.ply -outputPointCloudFile /code/odm_georeferencing/odm_georeferenced_model.ply  -logFile /code/odm_georeferencing/odm_georeferencing_log.txt -outputTransformFile /code/odm_georeferencing/odm_georeferencing_transform.txt -georefFileOutputPath /code/odm_georeferencing/odm_georeferencing_model_geo.txt -gcpFile gcp_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt&lt;br /&gt;
[DEBUG]   running /code/SuperBuild/build/pdal/bin/pdal pipeline -i /code/odm_georeferencing/las.json --readers.ply.filename=/code/odm_georeferencing/odm_georeferenced_model.ply&lt;br /&gt;
PDAL: writers.las: Can&amp;#039;t write LAZ output.  PDAL not built with LASzip or LAZperf.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pipeline&amp;quot;: [&lt;br /&gt;
    &amp;quot;untransformed.ply&amp;quot;,&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;writers.las&amp;quot;,&lt;br /&gt;
      &amp;quot;a_srs&amp;quot;: &amp;quot;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;quot;,&lt;br /&gt;
      &amp;quot;offset_x&amp;quot;: &amp;quot;334230.28164&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_y&amp;quot;: &amp;quot;6208095.41529&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_z&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;compression&amp;quot;: &amp;quot;laszip&amp;quot;,&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;/code/odm_georeferencing/odm_georeferenced_model.laz&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-17 14-34-10.png]]&lt;br /&gt;
&lt;br /&gt;
=== Local pdal+LASzip ===&lt;br /&gt;
&lt;br /&gt;
Build from source!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/bin/pdal pipeline -i las.json --readers.ply.filename=odm_georeferenced_model.ply&lt;br /&gt;
-rw-r--r-- 1 jgr jgr  22661583 jun 17 11:47 odm_georeferenced_model.laz&lt;br /&gt;
-rw-r--r-- 1 jgr jgr 121586206 jun 17 11:42 odm_georeferenced_model.ply&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Previous result ====&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-16 12-26-36.png]]&lt;br /&gt;
&lt;br /&gt;
==== New result ====&lt;br /&gt;
&lt;br /&gt;
=== Create Pull Request ===&lt;br /&gt;
&lt;br /&gt;
close #845&lt;br /&gt;
&lt;br /&gt;
=== Other fixes ===&lt;br /&gt;
&lt;br /&gt;
epsg versus EPSG&lt;br /&gt;
&lt;br /&gt;
== Point cloud classification ==&lt;br /&gt;
&lt;br /&gt;
[DEBUG]   running pdal info --boundary --filters.hexbin.edge_length=1 --filters.hexbin.threshold=0 /code/odm_georeferencing/odm_georeferenced_model.filtered.las &amp;gt; /code/odm_georeferencing/odm_georeferenced_model.boundary.json&lt;br /&gt;
PDAL: Argument references invalid/unused stage: &amp;#039;filters.hexbin&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=An%C3%A1lise_espacial_com_rasters&amp;diff=919</id>
		<title>Análise espacial com rasters</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=An%C3%A1lise_espacial_com_rasters&amp;diff=919"/>
		<updated>2019-02-10T19:04:23Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dados do exercício&lt;br /&gt;
&lt;br /&gt;
Critérios:&lt;br /&gt;
* Magnitude dos tremores de terra (em função da magnitude; usar interpolação IDW)&lt;br /&gt;
** Reclassificar&lt;br /&gt;
* Densidade dos tremores de terra (em função da distância; usar interpolação Heatmap)&lt;br /&gt;
** Reclassificar&lt;br /&gt;
* Distância estradas/railways/built-up areas&lt;br /&gt;
** Buffers ?&lt;br /&gt;
** Interpolação por classes ???&lt;br /&gt;
&lt;br /&gt;
Resultado final&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Interpolação IDW&lt;br /&gt;
&lt;br /&gt;
Reclassificação com base em 4 critérios&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2019-02-10 11-15-12.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2019-02-10 11-13-51.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Heatmap&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2019-02-10 18-32-30.png]]&lt;br /&gt;
&lt;br /&gt;
Resultado&lt;br /&gt;
&lt;br /&gt;
[[File:Heatmap.png]]&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=File:Heatmap.png&amp;diff=917</id>
		<title>File:Heatmap.png</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=File:Heatmap.png&amp;diff=917"/>
		<updated>2019-02-10T18:35:55Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=File:Captura_de_ecr%C3%A3_de_2019-02-10_18-32-30.png&amp;diff=915</id>
		<title>File:Captura de ecrã de 2019-02-10 18-32-30.png</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=File:Captura_de_ecr%C3%A3_de_2019-02-10_18-32-30.png&amp;diff=915"/>
		<updated>2019-02-10T18:34:31Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=An%C3%A1lise_espacial_com_rasters&amp;diff=913</id>
		<title>Análise espacial com rasters</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=An%C3%A1lise_espacial_com_rasters&amp;diff=913"/>
		<updated>2019-02-10T17:35:20Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dados do exercício&lt;br /&gt;
&lt;br /&gt;
Critérios:&lt;br /&gt;
* Magnitude dos tremores de terra (em função da magnitude; usar interpolação IDW)&lt;br /&gt;
** Reclassificar&lt;br /&gt;
* Densidade dos tremores de terra (em função da distância; usar interpolação Heatmap)&lt;br /&gt;
** Reclassificar&lt;br /&gt;
* Distância estradas/railways/built-up areas&lt;br /&gt;
** Buffers ?&lt;br /&gt;
** Interpolação por classes ???&lt;br /&gt;
&lt;br /&gt;
Resultado final&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Interpolação IDW&lt;br /&gt;
&lt;br /&gt;
Reclassificação com base em 4 critérios&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2019-02-10 11-15-12.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2019-02-10 11-13-51.png]]&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=An%C3%A1lise_espacial_com_rasters&amp;diff=911</id>
		<title>Análise espacial com rasters</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=An%C3%A1lise_espacial_com_rasters&amp;diff=911"/>
		<updated>2019-02-10T17:35:04Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dados do exercício&lt;br /&gt;
&lt;br /&gt;
Critérios:&lt;br /&gt;
* Magnitude dos tremores de terra (em função da magnitude; usar interpolação IDW)&lt;br /&gt;
** Reclassificar&lt;br /&gt;
* Densidade dos tremores de terra (em função da distância; usar interpolação Heatmap)&lt;br /&gt;
** Reclassificar&lt;br /&gt;
* Distância estradas/railways/built-up areas&lt;br /&gt;
** Buffers ?&lt;br /&gt;
** Interpolação por classes ???&lt;br /&gt;
&lt;br /&gt;
Resultado final&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Interpolação IDW&lt;br /&gt;
&lt;br /&gt;
Reclassificação com base em 4 critérios&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2019-02-10 11-15-12.png]]&lt;br /&gt;
[[File:Captura de ecrã de 2019-02-10 11-15-12.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2019-02-10 11-13-51.png]]&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=An%C3%A1lise_espacial_com_rasters&amp;diff=909</id>
		<title>Análise espacial com rasters</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=An%C3%A1lise_espacial_com_rasters&amp;diff=909"/>
		<updated>2019-02-10T11:36:33Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dados do exercício&lt;br /&gt;
&lt;br /&gt;
Critérios:&lt;br /&gt;
* Magnitude dos tremores de terra (em função da magnitude; usar interpolação IDW)&lt;br /&gt;
** Reclassificar&lt;br /&gt;
* Densidade dos tremores de terra (em função da distância; usar interpolação Heatmap)&lt;br /&gt;
** Reclassificar&lt;br /&gt;
* Distância estradas/railways/built-up areas&lt;br /&gt;
** Buffers ?&lt;br /&gt;
** Interpolação por classes ???&lt;br /&gt;
&lt;br /&gt;
Resultado final&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Interpolação IDW&lt;br /&gt;
&lt;br /&gt;
Reclassificação com base em 4 critérios&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2019-02-10 11-15-12.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2019-02-10 11-13-51.png]]&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=File:Captura_de_ecr%C3%A3_de_2019-02-10_11-15-12.png&amp;diff=907</id>
		<title>File:Captura de ecrã de 2019-02-10 11-15-12.png</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=File:Captura_de_ecr%C3%A3_de_2019-02-10_11-15-12.png&amp;diff=907"/>
		<updated>2019-02-10T11:22:03Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: Jgrocha uploaded a new version of File:Captura de ecrã de 2019-02-10 11-15-12.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=File:Captura_de_ecr%C3%A3_de_2019-02-10_11-13-51.png&amp;diff=905</id>
		<title>File:Captura de ecrã de 2019-02-10 11-13-51.png</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=File:Captura_de_ecr%C3%A3_de_2019-02-10_11-13-51.png&amp;diff=905"/>
		<updated>2019-02-10T11:16:55Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=File:Captura_de_ecr%C3%A3_de_2019-02-10_11-15-12.png&amp;diff=903</id>
		<title>File:Captura de ecrã de 2019-02-10 11-15-12.png</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=File:Captura_de_ecr%C3%A3_de_2019-02-10_11-15-12.png&amp;diff=903"/>
		<updated>2019-02-10T11:16:30Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=An%C3%A1lise_espacial_com_rasters&amp;diff=901</id>
		<title>Análise espacial com rasters</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=An%C3%A1lise_espacial_com_rasters&amp;diff=901"/>
		<updated>2019-02-10T11:15:45Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dados do&lt;br /&gt;
&lt;br /&gt;
Interpolação IDW&lt;br /&gt;
&lt;br /&gt;
Reclassificação com base em 4 critérios&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2019-02-10 11-15-12.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2019-02-10 11-13-51.png]]&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=An%C3%A1lise_espacial_com_rasters&amp;diff=899</id>
		<title>Análise espacial com rasters</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=An%C3%A1lise_espacial_com_rasters&amp;diff=899"/>
		<updated>2019-02-10T11:13:20Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: Created page with &amp;quot;Dados do  Interpolação IDW  Reclassificação com base em 4 critérios  [[]]  [[]]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dados do&lt;br /&gt;
&lt;br /&gt;
Interpolação IDW&lt;br /&gt;
&lt;br /&gt;
Reclassificação com base em 4 critérios&lt;br /&gt;
&lt;br /&gt;
[[]]&lt;br /&gt;
&lt;br /&gt;
[[]]&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Main_Page&amp;diff=897</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Main_Page&amp;diff=897"/>
		<updated>2019-02-10T11:11:12Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* SIG desktop com QGIS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Apresentação =&lt;br /&gt;
&lt;br /&gt;
A formação e a disponibilização de conteúdos faz parte do ADN da Geomaster. Neste espaço, estamos a juntar todos os conteúdos das nossas formações, que ainda estão dispersos por vários sítios.&lt;br /&gt;
&lt;br /&gt;
== Onde e como pedir ajuda? ==&lt;br /&gt;
&lt;br /&gt;
[https://lists.osgeo.org/mailman/listinfo/portugal Lista portuguesa da OSGeo]&lt;br /&gt;
&lt;br /&gt;
[https://lists.osgeo.org/mailman/listinfo/qgis-user Lista internacional do QGIS]&lt;br /&gt;
&lt;br /&gt;
https://gis.stackexchange.com/&lt;br /&gt;
&lt;br /&gt;
A Geomaster está oferecer suporte ao QGIS, de forma gratuita. Use o centro de suporte disponível em [https://ticket.geomaster.pt/open.php?lang=pt_PT ticket.geomaster.pt].&lt;br /&gt;
&lt;br /&gt;
Antes de pedir ajuda, faça o trabalho de casa. Pesquise na net se a questão já foi levantada e resolvida.&lt;br /&gt;
&lt;br /&gt;
Para procurar nas listas do QGIS, use o endereço: http://osgeo-org.1560.x6.nabble.com/QGIS-f4099105.html&lt;br /&gt;
&lt;br /&gt;
= Requisitos =&lt;br /&gt;
&lt;br /&gt;
Para fazer os exercícios propostos, precisa de ter algum espaço livre e o software necessário instalado. Os exercícios são independentes do sistema operativo: tanto pode usar Linux, Windows ou macOS.&lt;br /&gt;
&lt;br /&gt;
== Máquina virtual OSGeo Live ==&lt;br /&gt;
&lt;br /&gt;
Uma boa alternativa para a formação é a utilização da máquina virtual [https://live.osgeo.org/en/index.html OSGeo Live] que já tem todo o software SIG necessário.&lt;br /&gt;
&lt;br /&gt;
= Conteúdos =&lt;br /&gt;
&lt;br /&gt;
== Sentinel-2 Image processing using QGIS+SCP ==&lt;br /&gt;
&lt;br /&gt;
Notes from Sentinel-2 Image processing using QGIS+SCP course at Skovskolen, Nødebo.&lt;br /&gt;
&lt;br /&gt;
Documentation:&lt;br /&gt;
&lt;br /&gt;
[https://readthedocs.org/projects/semiautomaticclassificationmanual/downloads/pdf/latest/ Semi-Automatic Classification Plugin Documentation]&lt;br /&gt;
&lt;br /&gt;
[[Installing SCP in Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
[[Create a Copernicus Open Access Hub account]]&lt;br /&gt;
&lt;br /&gt;
[[Search and download Sentinel-2 images]]&lt;br /&gt;
&lt;br /&gt;
[[Search and download Landsat 8 images]]&lt;br /&gt;
&lt;br /&gt;
[[Radiance to reflectance]]&lt;br /&gt;
&lt;br /&gt;
[[Clip Sentinel-2 images]]&lt;br /&gt;
&lt;br /&gt;
[[Band compositions]]&lt;br /&gt;
&lt;br /&gt;
[[Export band compositions]]&lt;br /&gt;
&lt;br /&gt;
[[Raster algebra: calculating indexes]]&lt;br /&gt;
&lt;br /&gt;
[[Unsupervised classification]]&lt;br /&gt;
&lt;br /&gt;
[[Supervised  classification]]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
https://earth.esa.int/web/sentinel/technical-guides/sentinel-2-msi/msi-instrument&lt;br /&gt;
&lt;br /&gt;
http://esa-sen4cap.org/content/eo-products&lt;br /&gt;
&lt;br /&gt;
https://sentinel.esa.int/web/sentinel/user-guides/sentinel-2-msi/document-library&lt;br /&gt;
&lt;br /&gt;
https://www.indexdatabase.de/db/s-single.php?id=96&lt;br /&gt;
&lt;br /&gt;
https://land.copernicus.eu/global/products/ba&lt;br /&gt;
&lt;br /&gt;
https://fromgistors.blogspot.com/2016/11/from-image-download-to-ndvi-calculation.html&lt;br /&gt;
&lt;br /&gt;
http://www.qgis.pt/blog/2016/12/14/detecao-remota-com-o-qgis/ (em Português)&lt;br /&gt;
&lt;br /&gt;
== Wikidata Sixth Birthday ==&lt;br /&gt;
&lt;br /&gt;
[[File:Birthday banner for 4th Wikidata Birthday.png]]&lt;br /&gt;
&lt;br /&gt;
=== Objectivo ===&lt;br /&gt;
&lt;br /&gt;
Fazer uma mapa:&lt;br /&gt;
# Mostrar as ruas, largos, praças e outros espaços com topónimos&lt;br /&gt;
# Poder filtrar por:&lt;br /&gt;
## sexo&lt;br /&gt;
## ocupação (religioso, militar poeta, escritor, político...&lt;br /&gt;
## século&lt;br /&gt;
## etc&lt;br /&gt;
&lt;br /&gt;
Eventualmente, fazer um quantos gráficos, com percentagens:&lt;br /&gt;
# topónimos com nome de pessoas versus outras origens&lt;br /&gt;
# nomes de mulheres versus nomes de homens&lt;br /&gt;
# políticos versus artes e ciências&lt;br /&gt;
&lt;br /&gt;
=== Problema ===&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap não existe informação sobre as propriedades do topónimo. O topónimo pode estar escrito de diversas formas e contém partes que não interessam (Rua, Avenida, Prof, Doutor, etc). (Nota: cruzar com o dataset da [http://centraldedados.pt/codigos_postais/ Central de Dados dos Códigos Postais]).&lt;br /&gt;
&lt;br /&gt;
A [https://www.openstreetmap.org/way/35997529#map=16/41.1809/-8.6094 Rua de São Tomé] refere-se a uma pessoa? &lt;br /&gt;
&lt;br /&gt;
Rua Egas Moniz. Qual [https://pt.wikipedia.org/wiki/Egas_Moniz Egas Moniz]?&lt;br /&gt;
&lt;br /&gt;
==== Solução ====&lt;br /&gt;
&lt;br /&gt;
Wikidata! Diferença entre a página da [https://pt.wikipedia.org/wiki/Ant%C3%B3nio_Egas_Moniz Wikipédia do Egas Moniz] e a da [https://www.wikidata.org/wiki/Q273219 Wikidata da mesma pessoa].&lt;br /&gt;
&lt;br /&gt;
Criei a entidade: https://www.wikidata.org/wiki/Q58129518&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap já se usa uma tag [https://wiki.openstreetmap.org/wiki/Key:wikidata wikidata] para entidades geográficas bem conhecidas, como a [https://www.openstreetmap.org/way/247168260 Torre dos Clérigos].&lt;br /&gt;
&lt;br /&gt;
Existe uma proposta para acrescentar a origem de um determinado nome, usando a tag [https://wiki.openstreetmap.org/wiki/Key:name:etymology name:etymology].&lt;br /&gt;
&lt;br /&gt;
==== Limitações ====&lt;br /&gt;
&lt;br /&gt;
Nem tudo está na Wikidata. Na verdade, existe pouca informação (sobre Portugal) no Wikidata.&lt;br /&gt;
&lt;br /&gt;
No OpenStreetMap também não há muitas tags wikidata.&lt;br /&gt;
&lt;br /&gt;
==== Resolução das limitações ====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Editar o OpenStreetMap e a Wikidata!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Nota: área pantanosa em relação às licenças: CC-0 versus ODBL.&lt;br /&gt;
&lt;br /&gt;
==== Outras fontes de dados ====&lt;br /&gt;
&lt;br /&gt;
Central de dados&lt;br /&gt;
&lt;br /&gt;
http://centraldedados.pt/nomes_proprios/&lt;br /&gt;
&lt;br /&gt;
https://genderize.io/&lt;br /&gt;
&lt;br /&gt;
==== Algum código de base ====&lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/pdiasalmeida/osm-street-names&lt;br /&gt;
&lt;br /&gt;
== Open Data Day, 2018 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Logo odd 2018.png]]&lt;br /&gt;
&lt;br /&gt;
[[Introdução ao OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
[[Serviços sobre os dados do OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
[[Dados OpenStreetMap no QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Dados OpenStreetMap no PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
[[OpenStreetMap API]]&lt;br /&gt;
&lt;br /&gt;
[[Routing com os dados do OpenStreetMap]]&lt;br /&gt;
&lt;br /&gt;
== SIG desktop com QGIS ==&lt;br /&gt;
&lt;br /&gt;
Introdução à interface do QGIS, a visualização complementar de geometrias e dados, filtrar, selecionar, expressões, trabalhar com a seleção, etc.&lt;br /&gt;
&lt;br /&gt;
[[Instalação QGIS no Windows com base no OSGeo4W]]&lt;br /&gt;
&lt;br /&gt;
Instalação da primeira extensão [https://plugins.qgis.org/plugins/quick_map_services/ QuickMapServices].&lt;br /&gt;
&lt;br /&gt;
Os dados vectoriais referem-se a entidades que têm uma componente espacial (geográfica) e um conjunto de atributos.&lt;br /&gt;
&lt;br /&gt;
[[Explorar dados vectoriais]]&lt;br /&gt;
&lt;br /&gt;
[[Georreferenciação de imagens e criação de camadas]]&lt;br /&gt;
&lt;br /&gt;
[[Edição de dados vetoriais]]&lt;br /&gt;
&lt;br /&gt;
[[Geração de um modelo digital do terreno]]&lt;br /&gt;
&lt;br /&gt;
Acrescentar melhorias aos formulários:&lt;br /&gt;
# campos que se atualizam automaticamente&lt;br /&gt;
# joins e formulários com combox&lt;br /&gt;
# um exemplo de uma relação master → detail&lt;br /&gt;
&lt;br /&gt;
[[Ligação a uma base de dados Postgresql]]&lt;br /&gt;
&lt;br /&gt;
[[Análise espacial com rasters]]&lt;br /&gt;
&lt;br /&gt;
==== Para rever ou eliminar... ====&lt;br /&gt;
&lt;br /&gt;
[[Geoprocessamento]]&lt;br /&gt;
&lt;br /&gt;
[[Criar camadas vectoriais]]&lt;br /&gt;
&lt;br /&gt;
Os dados raster referem-se a superfícies contínuas, cujas propriedades se vão alterando ao longo da superfície.&lt;br /&gt;
&lt;br /&gt;
Visualizar dados raster, calculadora raster, calcular o aspecto, declives, mostrar um perfil.&lt;br /&gt;
&lt;br /&gt;
[[Explorar dados raster]]&lt;br /&gt;
&lt;br /&gt;
Cruzar camadas, associar imagens, associar ações a entidades geográficas&lt;br /&gt;
&lt;br /&gt;
[[Cruzar dados vectoriais]]&lt;br /&gt;
&lt;br /&gt;
Introdução à análise espacial: cálculo de áreas de influência, recorte em função da localização, etc.&lt;br /&gt;
&lt;br /&gt;
[[Introdução à análise espacial]]&lt;br /&gt;
&lt;br /&gt;
[[Georreferenciação de mapas]]&lt;br /&gt;
&lt;br /&gt;
[[Criação de camadas]]&lt;br /&gt;
&lt;br /&gt;
[[Teste de auto-avaliação]]&lt;br /&gt;
&lt;br /&gt;
== SIG desktop com QGIS: Tópicos avançados ==&lt;br /&gt;
&lt;br /&gt;
[[Exercício de aquecimento]]&lt;br /&gt;
&lt;br /&gt;
[[QGIS com Postgresql]]&lt;br /&gt;
&lt;br /&gt;
[[Edição de informação geográfica]]&lt;br /&gt;
&lt;br /&gt;
O processamento com o QGIS é tão assustador como fabuloso. Assustador pela diversidade de alternativas que apresenta e fabuloso pela mesma razão. Além de todas as capacidades de processamento que tem no próprio código, O QGIS liga-se muito bem a outros software de processamento, como o GRASS, SAGA, Orfeo Toolbox, etc.&lt;br /&gt;
&lt;br /&gt;
[[Processamento em QGIS]]&lt;br /&gt;
&lt;br /&gt;
As imagens Sentinel são disponibilizadas pela ESA. O tratamento de imagens Sentinel-2 com a extensão [https://fromgistors.blogspot.com/p/semi-automatic-classification-plugin.html Semi-Automatic Classification Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Tratamento de imagens Sentinel]]&lt;br /&gt;
&lt;br /&gt;
As imagens raster podem ser geridas a partir do sistema de ficheiros ou a partir da base de dados Postgresql.&lt;br /&gt;
&lt;br /&gt;
[[Suporte Postgresql para rasters]]&lt;br /&gt;
&lt;br /&gt;
O QGIS está escrito em C++ que é uma linguagem orientado a objetos, que gera código muito eficiente. O QGIS usa a biblioteca QT para todas as componentes de interface com o utilizador.&lt;br /&gt;
Embora todo o núcleo esteja em C++, todas as funcionalidades são expostas para outras aplicações através de uma API que pode ser invocada a partir do Python. Ou seja, a partir de um programa Python, podemos comandar o QGIS e tirar partido de todas as suas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
[[Explorar o QGIS a partir do Python]]&lt;br /&gt;
&lt;br /&gt;
[[QField: o QGIS ao ar livre]]&lt;br /&gt;
&lt;br /&gt;
[[Sobre a preparação desta formação]]&lt;br /&gt;
&lt;br /&gt;
== Base de dados espaciais com Postgresql ==&lt;br /&gt;
&lt;br /&gt;
== Data ==&lt;br /&gt;
&lt;br /&gt;
[https://resourcewatch.org/ Resource Watch – Monitoring the Planet&amp;#039;s Pulse]&lt;br /&gt;
&lt;br /&gt;
== Spatial Data Mining ==&lt;br /&gt;
&lt;br /&gt;
* [https://geodacenter.github.io/ GeoDa] is a free and open source software tool that serves as an introduction to spatial data analysis.&lt;br /&gt;
* [https://github.com/MapPlus/spatial_statistics_for_geotools_udig GeoAnalysis library] is a java-based open source for geospatial analysis.&lt;br /&gt;
&lt;br /&gt;
== QGIS na área da Saúde ==&lt;br /&gt;
&lt;br /&gt;
[https://plugins.qgis.org/plugins/GeoHealth/ Plugin GeoHealth]&lt;br /&gt;
&lt;br /&gt;
== Dados do OpenStreetMap ==&lt;br /&gt;
&lt;br /&gt;
* Introdução ao OpenStreetMap&lt;br /&gt;
* Dados do OpenStreetMap no QGIS&lt;br /&gt;
* Dados do OpenStreetMap no Postgresql&lt;br /&gt;
* Queries com OverPass API, http://overpass-turbo.eu/&lt;br /&gt;
* Routing com os dados do OpenStreetMap (OpenTripPlanner)&lt;br /&gt;
* Routing com MAPS.ME&lt;br /&gt;
* Usar os mapas do OpenStreetMap num blog&lt;br /&gt;
&lt;br /&gt;
=== Requisitos ===&lt;br /&gt;
&lt;br /&gt;
* Computador c/ algum espaço livre&lt;br /&gt;
* Dados: serão descarregados na hora, a partir de: http://openstreetmap.pt/wp-content/uploads/&lt;br /&gt;
* Software&lt;br /&gt;
** QGIS 2.18.17 LTR&lt;br /&gt;
** Postgresql v9.6 + PostGIS (não é preciso instalar; haverá um servidor na sala)&lt;br /&gt;
** Instalar o MAPS.ME no telemóvel&lt;br /&gt;
&lt;br /&gt;
== Publicação na Web com Geoserver ==&lt;br /&gt;
&lt;br /&gt;
[[Servidores de mapas: conceitos]]&lt;br /&gt;
&lt;br /&gt;
[[Instalação do Geoserver]]&lt;br /&gt;
&lt;br /&gt;
[[Disponibilização de uma camada WMS/WFS]]&lt;br /&gt;
&lt;br /&gt;
[[Disponibilização de uma camada WMTS]]&lt;br /&gt;
&lt;br /&gt;
[[Publicação de grupos]]&lt;br /&gt;
&lt;br /&gt;
== Publicação na Web com uMap ==&lt;br /&gt;
&lt;br /&gt;
A plataforma uMap permite criar mapas de uma forma simples. Os mapas criados podem ser incorporados num blog ou num site.&lt;br /&gt;
&lt;br /&gt;
[[O meu primeiro mapa com o uMap]]&lt;br /&gt;
&lt;br /&gt;
== Drones ==&lt;br /&gt;
&lt;br /&gt;
[[DJI MAVIC 2 PRO]]&lt;br /&gt;
&lt;br /&gt;
[[Flight planner]]&lt;br /&gt;
&lt;br /&gt;
[[Running OpenDroneMap]]&lt;br /&gt;
&lt;br /&gt;
== Contribuir para projectos Open Source no domínio dos SIG ==&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o Nominatim]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para plugins QGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o OpenTripPlanner]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o GeoExt]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o PostGIS]]&lt;br /&gt;
&lt;br /&gt;
[[Contribuir para o curso PostGIS com Rasters]]&lt;br /&gt;
&lt;br /&gt;
= Outros cursos e recursos =&lt;br /&gt;
&lt;br /&gt;
[http://training.gismentors.eu/isprs-summer-school-2016/index.html ISPRS Congress 2016 Summer School]&lt;br /&gt;
&lt;br /&gt;
[http://training.gismentors.eu/grass-gis-workshop-jena-2018/index.html GRASS GIS Workshop in Jena]&lt;br /&gt;
&lt;br /&gt;
[https://www.hatarilabs.com/ih-en/working-with-sentinel-2-imagery-on-qgis Working with Sentinel 2 Imagery on QGIS]&lt;br /&gt;
&lt;br /&gt;
[https://uwgis.wordpress.com/gis-practicals/flood-risk-mapping/ QGIS Flood Risk Mapping]&lt;br /&gt;
&lt;br /&gt;
[[Como gravar cursos em vídeo]]&lt;br /&gt;
&lt;br /&gt;
= Propostas =&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Generalização Cartográfica]], em parceria com IBGE&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Deteção de estradas em imagens Sentinel-2]], em parceria com IBGE&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Ler cartas náuticas]], em parceria com a comunidade QGIS e de acordo com esta [https://github.com/faunalia/qnavigate proposta de melhoramento]&lt;br /&gt;
&lt;br /&gt;
[[QGIS: Carregar informação meteorológica]], em parceria com a comunidade QGIS e de acordo com esta [https://github.com/faunalia/qnavigate proposta de melhoramento]&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=895</id>
		<title>Running OpenDroneMap</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=895"/>
		<updated>2019-02-04T15:19:30Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Drone Workshop ===&lt;br /&gt;
&lt;br /&gt;
1. Flight&lt;br /&gt;
&lt;br /&gt;
WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install docker-compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10:54&lt;br /&gt;
&lt;br /&gt;
2. Data products&lt;br /&gt;
&lt;br /&gt;
2.1 Orthophoto&lt;br /&gt;
&lt;br /&gt;
Discussion: GCP, impact on the elevation model&lt;br /&gt;
&lt;br /&gt;
Swipe tool&lt;br /&gt;
&lt;br /&gt;
Point value: check ortho values&lt;br /&gt;
&lt;br /&gt;
2.2 DEM/DSM&lt;br /&gt;
&lt;br /&gt;
Discussion: difference between&lt;br /&gt;
&lt;br /&gt;
Raster value&lt;br /&gt;
&lt;br /&gt;
Profile tool&lt;br /&gt;
&lt;br /&gt;
Visualization: hillshade&lt;br /&gt;
&lt;br /&gt;
http://plas.io/&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/tutorial/pcl_ground/index.html#pcl-ground&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-- original&lt;br /&gt;
pdal translate -i /code/odm_georeferencing/odm_georeferenced_model.laz -o /code/odm_georeferencing/odm_georeferenced_model.laz smrf --filters.smrf.cell=2 --filters.smrf.slope=10 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- VERY GOOD&lt;br /&gt;
pdal translate -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_2.laz smrf --filters.smrf.cell=2 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- good&lt;br /&gt;
pdal ground -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_3.laz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.3 Point cloud&lt;br /&gt;
&lt;br /&gt;
What we get from the software&lt;br /&gt;
&lt;br /&gt;
Visualization tools&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/workshop/exercises/analysis/dtm/dtm.html&lt;br /&gt;
&lt;br /&gt;
3. Processing data products&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1 Better classification&lt;br /&gt;
&lt;br /&gt;
lasground&lt;br /&gt;
&lt;br /&gt;
3.2 lasheight&lt;br /&gt;
&lt;br /&gt;
3.3 lasclassify&lt;br /&gt;
&lt;br /&gt;
=== DJI Mavic 2 PRO ===&lt;br /&gt;
&lt;br /&gt;
[https://forum.dji.com/thread-167017-1-1.html Sensor size], [https://www.youtube.com/watch?v=xIncVCe6pg0 Video about sensor size]&lt;br /&gt;
&lt;br /&gt;
==== Erro ====&lt;br /&gt;
&lt;br /&gt;
Culpado: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;/home/jgr/PycharmProjects/OpenDroneMap/modules/odm_extract_utm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todas as imagens estão com Exif.GPSInfo.GPSAltitude = 0.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
      if (lon == 0.0 || lat == 0.0 || alt == 0.0) {&lt;br /&gt;
        std::string error(&amp;quot;Failed parsing GPS position for &amp;quot; + imageFilename);&lt;br /&gt;
        throw UtmExtractorException(error);&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remendo ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.0 m&lt;br /&gt;
&lt;br /&gt;
exiv2 -M&amp;quot;set Exif.GPSInfo.GPSAltitude Rational 1/10&amp;quot; DJI_0210.JPG&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.1 m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chamada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Wrote images database: /code/images.json&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_extract_utm -imagesPath /code/images/ -imageListFile /code/img_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt  -logFile /code/odm_georeferencing/odm_georeferencing_utm_log.txt&lt;br /&gt;
Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[WARNING] Could not generate coordinates file. Ignore if there is a GCP file. Error: Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Building objmodel:&lt;br /&gt;
	Saving model... done.&lt;br /&gt;
Whole texturing procedure took: 225.586s&lt;br /&gt;
[INFO]    Running ODM Texturing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell&lt;br /&gt;
[WARNING] Georeferencing failed. Make sure your photos have geotags in the EXIF or you have provided a GCP file. &lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM DEM Cell&lt;br /&gt;
[INFO]    Classify: True&lt;br /&gt;
[INFO]    Create DSM: True&lt;br /&gt;
[INFO]    Create DTM: True&lt;br /&gt;
[INFO]    DEM input file /code/odm_georeferencing/odm_georeferenced_model.las found: False&lt;br /&gt;
[WARNING] DEM will not be generated&lt;br /&gt;
[INFO]    Running ODM DEM Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Orthophoto Cell&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_orthophoto -inputFile /code/odm_texturing/odm_textured_model.obj -logFile /code/odm_orthophoto/odm_orthophoto_log.txt -outputFile /code/odm_orthophoto/odm_orthophoto.png -resolution 10.0  -outputCornerFile /code/odm_orthophoto/odm_orthophoto_corners.txt&lt;br /&gt;
[WARNING] No geo-referenced orthophoto created due to missing geo-referencing or corner coordinates.&lt;br /&gt;
[INFO]    Running ODM OrthoPhoto Cell - Finished&lt;br /&gt;
[INFO]    OpenDroneMap app finished - Sat Dec 29 22:12:22  2018&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running docker OpenDroneMap ===&lt;br /&gt;
&lt;br /&gt;
==== Update to last OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker pull opendronemap/opendronemap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
# Install docker&lt;br /&gt;
# Add you user to docker group&lt;br /&gt;
# sudo -H pip install requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir OpenDroneMap&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git clone git@github.com:OpenDroneMap/odm_data_aukerman.git&lt;br /&gt;
cd odm_data_aukerman&lt;br /&gt;
&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
ls -l $odmi&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
opendronemap/opendronemap --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sem GCP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado/&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: os ortos estão a ficar com muitas interferências do modelo 3D, nas áreas urbanas.&lt;br /&gt;
&lt;br /&gt;
Related problem: http://community.opendronemap.org/t/buildings/929&lt;br /&gt;
&lt;br /&gt;
Será que voar com a câmara a 75 graus ajuda? Fiz um voo com Double Grid, com a camara a 70 graus (default do Pix4d capture).&lt;br /&gt;
&lt;br /&gt;
==== Mac ====&lt;br /&gt;
&lt;br /&gt;
1. Install Docker&lt;br /&gt;
&lt;br /&gt;
2. &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $(pwd)/images:/code/images -v $(pwd)/odm_orthophoto:/code/odm_orthophoto -v $(pwd)/odm_texturing:/code/odm_texturing -v $(pwd)/odm_georeferencing:/code/odm_georeferencing -v $(pwd)/odm_meshing:/code/odm_meshing -v $(pwd)/opensfm:/code/opensfm -v $(pwd)/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
Install Docker&lt;br /&gt;
&lt;br /&gt;
Configure docker (more CPU, more memory)&lt;br /&gt;
&lt;br /&gt;
CPUs: 6&lt;br /&gt;
&lt;br /&gt;
Memory: 12032 Mb&lt;br /&gt;
&lt;br /&gt;
Swap: 4096 Mb&lt;br /&gt;
&lt;br /&gt;
Create the projet folder structure&lt;br /&gt;
&lt;br /&gt;
Project folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\&lt;br /&gt;
&lt;br /&gt;
Image folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\images&lt;br /&gt;
&lt;br /&gt;
Create folders for the OpenDroneMap output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd Documents\uav_sckovskolen_feb20018_incl_GCP&lt;br /&gt;
md odm_orthophoto&lt;br /&gt;
md odm_texturing&lt;br /&gt;
md odm_georeferencing&lt;br /&gt;
md odm_meshing&lt;br /&gt;
md opensfm&lt;br /&gt;
md odm_dem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $pwd/images:/code/images -v $pwd/odm_orthophoto:/code/odm_orthophoto -v $pwd/odm_texturing:/code/odm_texturing -v $pwd/odm_georeferencing:/code/odm_georeferencing -v $pwd/odm_meshing:/code/odm_meshing -v $pwd/opensfm:/code/opensfm -v $pwd/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado2xgrid&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0 --mesh-octree-depth 10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer (update) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo chown -R jgr:jgr *&lt;br /&gt;
git clone https://github.com/mapillary/OpenSfM.git&lt;br /&gt;
cd OpenSfM/viewer&lt;br /&gt;
ln -s ../../images .&lt;br /&gt;
python2 -m SimpleHTTPServer 7777&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ sudo chown -R jgr:jgr *&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cp -r ~/dev/OpenSfM/viewer opensfm&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cd opensfm/&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ ln -s ../images .&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ python -m SimpleHTTPServer&lt;br /&gt;
Serving HTTP on 0.0.0.0 port 8000 ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://localhost:8000/viewer/reconstruction.html#file=/reconstruction.json&lt;br /&gt;
&lt;br /&gt;
==== OpenSFM view images on QGIS ====&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/images/DJI_0595.JPG&lt;br /&gt;
&lt;br /&gt;
-8.7515052, 40.6114774, 22.4100000, 2018:08:23 10:05:11&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/opensfm/reference_lla.json&lt;br /&gt;
&lt;br /&gt;
Centro aproximado do ortophoto resultante (adicionado ao projeto QGIS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;latitude&amp;quot;: 40.61272372901514, &lt;br /&gt;
    &amp;quot;altitude&amp;quot;: 0, &lt;br /&gt;
    &amp;quot;longitude&amp;quot;: -8.752983409509966&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;quot;DJI_0595.JPG&amp;quot;: {&lt;br /&gt;
                &amp;quot;orientation&amp;quot;: 1, &lt;br /&gt;
                &amp;quot;camera&amp;quot;: &amp;quot;v2 dji fc220 4000 3000 perspective 0.7222&amp;quot;, &lt;br /&gt;
                &amp;quot;gps_position&amp;quot;: [&lt;br /&gt;
                    125.10012061257521, &lt;br /&gt;
                    -138.4010433354888, &lt;br /&gt;
                    22.407269606366754&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;gps_dop&amp;quot;: 15.0, &lt;br /&gt;
                &amp;quot;rotation&amp;quot;: [&lt;br /&gt;
                    2.1445873611073996, &lt;br /&gt;
                    -2.2856282209697523, &lt;br /&gt;
                    0.20066193557381898&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;translation&amp;quot;: [&lt;br /&gt;
                    -132.67853610360638, &lt;br /&gt;
                    133.40968771622724, &lt;br /&gt;
                    1.9668907291333997&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;capture_time&amp;quot;: 1535018711.0&lt;br /&gt;
            }, &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://github.com/mapillary/OpenSfM/blob/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ wget https://raw.githubusercontent.com/mapillary/OpenSfM/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
NÃO FUNCIONOU...&lt;br /&gt;
&lt;br /&gt;
export_geocoords.py -dataset costanova&lt;br /&gt;
&lt;br /&gt;
Ver: https://github.com/mapillary/OpenSfM/issues/183&lt;br /&gt;
&lt;br /&gt;
=== webODM ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/OpenDroneMap/WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input&lt;br /&gt;
cd WebODM&lt;br /&gt;
./webodm.sh start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jgrocha/xxbatata&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
&lt;br /&gt;
CloudCompare&lt;br /&gt;
&lt;br /&gt;
QGIS Plugin Photo2Shape&lt;br /&gt;
&lt;br /&gt;
Criar uma shapefile photos&lt;br /&gt;
&lt;br /&gt;
Nas propriedades, no campo &amp;lt;syntaxhighlight inline lang=&amp;quot;bash&amp;quot;&amp;gt;filepath&amp;lt;/syntaxhighlight&amp;gt; mudar para o tipo Fotografia.&lt;br /&gt;
&lt;br /&gt;
=== Ground Control File ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo -7.778152 41.833203 957.575989  | cs2cs +init=epsg:4326 +to +init=epsg:3763&lt;br /&gt;
echo 708610.702 6209972.025 26.085 | cs2cs +init=epsg:25832 +to +init=epsg:32633&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:32633 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;#039;&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:25832 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs &amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make my own OpenDroneMap image ==&lt;br /&gt;
&lt;br /&gt;
=== Fork and clone ODM repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone git@github.com:jgrocha/OpenDroneMap.git&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git checkout -b generate-laz-output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change source ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Build new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/PycharmProjects/OpenDroneMap$ docker build --no-cache -t odm_altitude_0 .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t odm_laz_image .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cd &amp;quot;/mnt/bonn/nextCloud/Photos/DJI MAVIC PRO 2 Paradela/100MEDIA&amp;quot;&lt;br /&gt;
cd /mnt/bonn/nextCloud/Photos&lt;br /&gt;
ln -s &amp;#039;DJI MAVIC PRO 2 Paradela/100MEDIA&amp;#039; images&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
docker run --cpus 8 -it --rm -v $odmi/images:/code/images -v $odmi/odm_orthophoto:/code/odm_orthophoto -v $odmi/odm_texturing:/code/odm_texturing -v $odmi/odm_georeferencing:/code/odm_georeferencing -v $odmi/odm_meshing:/code/odm_meshing -v $odmi/opensfm:/code/opensfm -v $odmi/odm_dem:/code/odm_dem odm_altitude_0 --dtm --dsm --force-ccd 13.2&lt;br /&gt;
# --orthophoto-resolution 2.0 --mesh-octree-depth 2 --opensfm-processes 8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
sudo rm -rf odm_georeferencing odm_meshing odm_orthophoto odm_texturing opensfm&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options for rerunning are: &amp;#039;resize&amp;#039;, &amp;#039;opensfm&amp;#039;, &amp;#039;slam&amp;#039;, &amp;#039;cmvs&amp;#039;, &amp;#039;pmvs&amp;#039;, &amp;#039;odm_meshing&amp;#039;, &amp;#039;mvs_texturing&amp;#039;, &amp;#039;odm_georeferencing&amp;#039;, &amp;#039;odm_orthophoto&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm --rerun-from odm_georeferencing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check the output ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
running /code/build/bin/odm_georef -bundleFile /code/opensfm/bundle_r000.out -imagesPath /code/images -imagesListPath /code/opensfm/list_r000.out -inputFile /code/odm_texturing/odm_textured_model.obj -outputFile /code/odm_texturing/odm_textured_model_geo.obj -inputPointCloudFile /code/opensfm/depthmaps/merged.ply -outputPointCloudFile /code/odm_georeferencing/odm_georeferenced_model.ply  -logFile /code/odm_georeferencing/odm_georeferencing_log.txt -outputTransformFile /code/odm_georeferencing/odm_georeferencing_transform.txt -georefFileOutputPath /code/odm_georeferencing/odm_georeferencing_model_geo.txt -gcpFile gcp_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt&lt;br /&gt;
[DEBUG]   running /code/SuperBuild/build/pdal/bin/pdal pipeline -i /code/odm_georeferencing/las.json --readers.ply.filename=/code/odm_georeferencing/odm_georeferenced_model.ply&lt;br /&gt;
PDAL: writers.las: Can&amp;#039;t write LAZ output.  PDAL not built with LASzip or LAZperf.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pipeline&amp;quot;: [&lt;br /&gt;
    &amp;quot;untransformed.ply&amp;quot;,&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;writers.las&amp;quot;,&lt;br /&gt;
      &amp;quot;a_srs&amp;quot;: &amp;quot;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;quot;,&lt;br /&gt;
      &amp;quot;offset_x&amp;quot;: &amp;quot;334230.28164&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_y&amp;quot;: &amp;quot;6208095.41529&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_z&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;compression&amp;quot;: &amp;quot;laszip&amp;quot;,&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;/code/odm_georeferencing/odm_georeferenced_model.laz&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-17 14-34-10.png]]&lt;br /&gt;
&lt;br /&gt;
=== Local pdal+LASzip ===&lt;br /&gt;
&lt;br /&gt;
Build from source!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/bin/pdal pipeline -i las.json --readers.ply.filename=odm_georeferenced_model.ply&lt;br /&gt;
-rw-r--r-- 1 jgr jgr  22661583 jun 17 11:47 odm_georeferenced_model.laz&lt;br /&gt;
-rw-r--r-- 1 jgr jgr 121586206 jun 17 11:42 odm_georeferenced_model.ply&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Previous result ====&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-16 12-26-36.png]]&lt;br /&gt;
&lt;br /&gt;
==== New result ====&lt;br /&gt;
&lt;br /&gt;
=== Create Pull Request ===&lt;br /&gt;
&lt;br /&gt;
close #845&lt;br /&gt;
&lt;br /&gt;
=== Other fixes ===&lt;br /&gt;
&lt;br /&gt;
epsg versus EPSG&lt;br /&gt;
&lt;br /&gt;
== Point cloud classification ==&lt;br /&gt;
&lt;br /&gt;
[DEBUG]   running pdal info --boundary --filters.hexbin.edge_length=1 --filters.hexbin.threshold=0 /code/odm_georeferencing/odm_georeferenced_model.filtered.las &amp;gt; /code/odm_georeferencing/odm_georeferenced_model.boundary.json&lt;br /&gt;
PDAL: Argument references invalid/unused stage: &amp;#039;filters.hexbin&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=893</id>
		<title>Running OpenDroneMap</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=893"/>
		<updated>2019-02-04T10:55:30Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Drone Workshop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Drone Workshop ===&lt;br /&gt;
&lt;br /&gt;
1. Flight&lt;br /&gt;
&lt;br /&gt;
WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install docker-compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10:54&lt;br /&gt;
&lt;br /&gt;
2. Data products&lt;br /&gt;
&lt;br /&gt;
2.1 Orthophoto&lt;br /&gt;
&lt;br /&gt;
Discussion: GCP, impact on the elevation model&lt;br /&gt;
&lt;br /&gt;
Swipe tool&lt;br /&gt;
&lt;br /&gt;
Point value: check ortho values&lt;br /&gt;
&lt;br /&gt;
2.2 DEM/DSM&lt;br /&gt;
&lt;br /&gt;
Discussion: difference between&lt;br /&gt;
&lt;br /&gt;
Raster value&lt;br /&gt;
&lt;br /&gt;
Profile tool&lt;br /&gt;
&lt;br /&gt;
Visualization: hillshade&lt;br /&gt;
&lt;br /&gt;
http://plas.io/&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/tutorial/pcl_ground/index.html#pcl-ground&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-- original&lt;br /&gt;
pdal translate -i /code/odm_georeferencing/odm_georeferenced_model.laz -o /code/odm_georeferencing/odm_georeferenced_model.laz smrf --filters.smrf.cell=2 --filters.smrf.slope=10 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- VERY GOOD&lt;br /&gt;
pdal translate -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_2.laz smrf --filters.smrf.cell=2 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- good&lt;br /&gt;
pdal ground -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_3.laz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.3 Point cloud&lt;br /&gt;
&lt;br /&gt;
What we get from the software&lt;br /&gt;
&lt;br /&gt;
Visualization tools&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/workshop/exercises/analysis/dtm/dtm.html&lt;br /&gt;
&lt;br /&gt;
3. Processing data products&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1 Better classification&lt;br /&gt;
&lt;br /&gt;
lasground&lt;br /&gt;
&lt;br /&gt;
3.2 lasheight&lt;br /&gt;
&lt;br /&gt;
3.3 lasclassify&lt;br /&gt;
&lt;br /&gt;
=== DJI Mavic 2 PRO ===&lt;br /&gt;
&lt;br /&gt;
[https://forum.dji.com/thread-167017-1-1.html Sensor size], [https://www.youtube.com/watch?v=xIncVCe6pg0 Video about sensor size]&lt;br /&gt;
&lt;br /&gt;
==== Erro ====&lt;br /&gt;
&lt;br /&gt;
Culpado: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;/home/jgr/PycharmProjects/OpenDroneMap/modules/odm_extract_utm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todas as imagens estão com Exif.GPSInfo.GPSAltitude = 0.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
      if (lon == 0.0 || lat == 0.0 || alt == 0.0) {&lt;br /&gt;
        std::string error(&amp;quot;Failed parsing GPS position for &amp;quot; + imageFilename);&lt;br /&gt;
        throw UtmExtractorException(error);&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remendo ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.0 m&lt;br /&gt;
&lt;br /&gt;
exiv2 -M&amp;quot;set Exif.GPSInfo.GPSAltitude Rational 1/10&amp;quot; DJI_0210.JPG&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.1 m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chamada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Wrote images database: /code/images.json&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_extract_utm -imagesPath /code/images/ -imageListFile /code/img_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt  -logFile /code/odm_georeferencing/odm_georeferencing_utm_log.txt&lt;br /&gt;
Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[WARNING] Could not generate coordinates file. Ignore if there is a GCP file. Error: Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Building objmodel:&lt;br /&gt;
	Saving model... done.&lt;br /&gt;
Whole texturing procedure took: 225.586s&lt;br /&gt;
[INFO]    Running ODM Texturing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell&lt;br /&gt;
[WARNING] Georeferencing failed. Make sure your photos have geotags in the EXIF or you have provided a GCP file. &lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM DEM Cell&lt;br /&gt;
[INFO]    Classify: True&lt;br /&gt;
[INFO]    Create DSM: True&lt;br /&gt;
[INFO]    Create DTM: True&lt;br /&gt;
[INFO]    DEM input file /code/odm_georeferencing/odm_georeferenced_model.las found: False&lt;br /&gt;
[WARNING] DEM will not be generated&lt;br /&gt;
[INFO]    Running ODM DEM Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Orthophoto Cell&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_orthophoto -inputFile /code/odm_texturing/odm_textured_model.obj -logFile /code/odm_orthophoto/odm_orthophoto_log.txt -outputFile /code/odm_orthophoto/odm_orthophoto.png -resolution 10.0  -outputCornerFile /code/odm_orthophoto/odm_orthophoto_corners.txt&lt;br /&gt;
[WARNING] No geo-referenced orthophoto created due to missing geo-referencing or corner coordinates.&lt;br /&gt;
[INFO]    Running ODM OrthoPhoto Cell - Finished&lt;br /&gt;
[INFO]    OpenDroneMap app finished - Sat Dec 29 22:12:22  2018&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running docker OpenDroneMap ===&lt;br /&gt;
&lt;br /&gt;
==== Update to last OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker pull opendronemap/opendronemap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
# Install docker&lt;br /&gt;
# Add you user to docker group&lt;br /&gt;
# sudo -H pip install requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir OpenDroneMap&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git clone git@github.com:OpenDroneMap/odm_data_aukerman.git&lt;br /&gt;
cd odm_data_aukerman&lt;br /&gt;
&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
ls -l $odmi&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
opendronemap/opendronemap --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sem GCP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado/&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: os ortos estão a ficar com muitas interferências do modelo 3D, nas áreas urbanas.&lt;br /&gt;
&lt;br /&gt;
Related problem: http://community.opendronemap.org/t/buildings/929&lt;br /&gt;
&lt;br /&gt;
Será que voar com a câmara a 75 graus ajuda? Fiz um voo com Double Grid, com a camara a 70 graus (default do Pix4d capture).&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
Install Docker&lt;br /&gt;
&lt;br /&gt;
Configure docker (more CPU, more memory)&lt;br /&gt;
&lt;br /&gt;
CPUs: 6&lt;br /&gt;
&lt;br /&gt;
Memory: 12032 Mb&lt;br /&gt;
&lt;br /&gt;
Swap: 4096 Mb&lt;br /&gt;
&lt;br /&gt;
Create the projet folder structure&lt;br /&gt;
&lt;br /&gt;
Project folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\&lt;br /&gt;
&lt;br /&gt;
Image folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\images&lt;br /&gt;
&lt;br /&gt;
Create folders for the OpenDroneMap output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd Documents\uav_sckovskolen_feb20018_incl_GCP&lt;br /&gt;
md odm_orthophoto&lt;br /&gt;
md odm_texturing&lt;br /&gt;
md odm_georeferencing&lt;br /&gt;
md odm_meshing&lt;br /&gt;
md opensfm&lt;br /&gt;
md odm_dem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $pwd/images:/code/images -v $pwd/odm_orthophoto:/code/odm_orthophoto -v $pwd/odm_texturing:/code/odm_texturing -v $pwd/odm_georeferencing:/code/odm_georeferencing -v $pwd/odm_meshing:/code/odm_meshing -v $pwd/opensfm:/code/opensfm -v $pwd/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado2xgrid&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0 --mesh-octree-depth 10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer (update) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo chown -R jgr:jgr *&lt;br /&gt;
git clone https://github.com/mapillary/OpenSfM.git&lt;br /&gt;
cd OpenSfM/viewer&lt;br /&gt;
ln -s ../../images .&lt;br /&gt;
python2 -m SimpleHTTPServer 7777&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ sudo chown -R jgr:jgr *&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cp -r ~/dev/OpenSfM/viewer opensfm&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cd opensfm/&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ ln -s ../images .&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ python -m SimpleHTTPServer&lt;br /&gt;
Serving HTTP on 0.0.0.0 port 8000 ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://localhost:8000/viewer/reconstruction.html#file=/reconstruction.json&lt;br /&gt;
&lt;br /&gt;
==== OpenSFM view images on QGIS ====&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/images/DJI_0595.JPG&lt;br /&gt;
&lt;br /&gt;
-8.7515052, 40.6114774, 22.4100000, 2018:08:23 10:05:11&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/opensfm/reference_lla.json&lt;br /&gt;
&lt;br /&gt;
Centro aproximado do ortophoto resultante (adicionado ao projeto QGIS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;latitude&amp;quot;: 40.61272372901514, &lt;br /&gt;
    &amp;quot;altitude&amp;quot;: 0, &lt;br /&gt;
    &amp;quot;longitude&amp;quot;: -8.752983409509966&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;quot;DJI_0595.JPG&amp;quot;: {&lt;br /&gt;
                &amp;quot;orientation&amp;quot;: 1, &lt;br /&gt;
                &amp;quot;camera&amp;quot;: &amp;quot;v2 dji fc220 4000 3000 perspective 0.7222&amp;quot;, &lt;br /&gt;
                &amp;quot;gps_position&amp;quot;: [&lt;br /&gt;
                    125.10012061257521, &lt;br /&gt;
                    -138.4010433354888, &lt;br /&gt;
                    22.407269606366754&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;gps_dop&amp;quot;: 15.0, &lt;br /&gt;
                &amp;quot;rotation&amp;quot;: [&lt;br /&gt;
                    2.1445873611073996, &lt;br /&gt;
                    -2.2856282209697523, &lt;br /&gt;
                    0.20066193557381898&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;translation&amp;quot;: [&lt;br /&gt;
                    -132.67853610360638, &lt;br /&gt;
                    133.40968771622724, &lt;br /&gt;
                    1.9668907291333997&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;capture_time&amp;quot;: 1535018711.0&lt;br /&gt;
            }, &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://github.com/mapillary/OpenSfM/blob/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ wget https://raw.githubusercontent.com/mapillary/OpenSfM/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
NÃO FUNCIONOU...&lt;br /&gt;
&lt;br /&gt;
export_geocoords.py -dataset costanova&lt;br /&gt;
&lt;br /&gt;
Ver: https://github.com/mapillary/OpenSfM/issues/183&lt;br /&gt;
&lt;br /&gt;
=== webODM ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/OpenDroneMap/WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input&lt;br /&gt;
cd WebODM&lt;br /&gt;
./webodm.sh start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jgrocha/xxbatata&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
&lt;br /&gt;
CloudCompare&lt;br /&gt;
&lt;br /&gt;
QGIS Plugin Photo2Shape&lt;br /&gt;
&lt;br /&gt;
Criar uma shapefile photos&lt;br /&gt;
&lt;br /&gt;
Nas propriedades, no campo &amp;lt;syntaxhighlight inline lang=&amp;quot;bash&amp;quot;&amp;gt;filepath&amp;lt;/syntaxhighlight&amp;gt; mudar para o tipo Fotografia.&lt;br /&gt;
&lt;br /&gt;
=== Ground Control File ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo -7.778152 41.833203 957.575989  | cs2cs +init=epsg:4326 +to +init=epsg:3763&lt;br /&gt;
echo 708610.702 6209972.025 26.085 | cs2cs +init=epsg:25832 +to +init=epsg:32633&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:32633 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;#039;&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:25832 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs &amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make my own OpenDroneMap image ==&lt;br /&gt;
&lt;br /&gt;
=== Fork and clone ODM repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone git@github.com:jgrocha/OpenDroneMap.git&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git checkout -b generate-laz-output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change source ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Build new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/PycharmProjects/OpenDroneMap$ docker build --no-cache -t odm_altitude_0 .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t odm_laz_image .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cd &amp;quot;/mnt/bonn/nextCloud/Photos/DJI MAVIC PRO 2 Paradela/100MEDIA&amp;quot;&lt;br /&gt;
cd /mnt/bonn/nextCloud/Photos&lt;br /&gt;
ln -s &amp;#039;DJI MAVIC PRO 2 Paradela/100MEDIA&amp;#039; images&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
docker run --cpus 8 -it --rm -v $odmi/images:/code/images -v $odmi/odm_orthophoto:/code/odm_orthophoto -v $odmi/odm_texturing:/code/odm_texturing -v $odmi/odm_georeferencing:/code/odm_georeferencing -v $odmi/odm_meshing:/code/odm_meshing -v $odmi/opensfm:/code/opensfm -v $odmi/odm_dem:/code/odm_dem odm_altitude_0 --dtm --dsm --force-ccd 13.2&lt;br /&gt;
# --orthophoto-resolution 2.0 --mesh-octree-depth 2 --opensfm-processes 8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
sudo rm -rf odm_georeferencing odm_meshing odm_orthophoto odm_texturing opensfm&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options for rerunning are: &amp;#039;resize&amp;#039;, &amp;#039;opensfm&amp;#039;, &amp;#039;slam&amp;#039;, &amp;#039;cmvs&amp;#039;, &amp;#039;pmvs&amp;#039;, &amp;#039;odm_meshing&amp;#039;, &amp;#039;mvs_texturing&amp;#039;, &amp;#039;odm_georeferencing&amp;#039;, &amp;#039;odm_orthophoto&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm --rerun-from odm_georeferencing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check the output ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
running /code/build/bin/odm_georef -bundleFile /code/opensfm/bundle_r000.out -imagesPath /code/images -imagesListPath /code/opensfm/list_r000.out -inputFile /code/odm_texturing/odm_textured_model.obj -outputFile /code/odm_texturing/odm_textured_model_geo.obj -inputPointCloudFile /code/opensfm/depthmaps/merged.ply -outputPointCloudFile /code/odm_georeferencing/odm_georeferenced_model.ply  -logFile /code/odm_georeferencing/odm_georeferencing_log.txt -outputTransformFile /code/odm_georeferencing/odm_georeferencing_transform.txt -georefFileOutputPath /code/odm_georeferencing/odm_georeferencing_model_geo.txt -gcpFile gcp_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt&lt;br /&gt;
[DEBUG]   running /code/SuperBuild/build/pdal/bin/pdal pipeline -i /code/odm_georeferencing/las.json --readers.ply.filename=/code/odm_georeferencing/odm_georeferenced_model.ply&lt;br /&gt;
PDAL: writers.las: Can&amp;#039;t write LAZ output.  PDAL not built with LASzip or LAZperf.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pipeline&amp;quot;: [&lt;br /&gt;
    &amp;quot;untransformed.ply&amp;quot;,&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;writers.las&amp;quot;,&lt;br /&gt;
      &amp;quot;a_srs&amp;quot;: &amp;quot;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;quot;,&lt;br /&gt;
      &amp;quot;offset_x&amp;quot;: &amp;quot;334230.28164&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_y&amp;quot;: &amp;quot;6208095.41529&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_z&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;compression&amp;quot;: &amp;quot;laszip&amp;quot;,&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;/code/odm_georeferencing/odm_georeferenced_model.laz&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-17 14-34-10.png]]&lt;br /&gt;
&lt;br /&gt;
=== Local pdal+LASzip ===&lt;br /&gt;
&lt;br /&gt;
Build from source!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/bin/pdal pipeline -i las.json --readers.ply.filename=odm_georeferenced_model.ply&lt;br /&gt;
-rw-r--r-- 1 jgr jgr  22661583 jun 17 11:47 odm_georeferenced_model.laz&lt;br /&gt;
-rw-r--r-- 1 jgr jgr 121586206 jun 17 11:42 odm_georeferenced_model.ply&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Previous result ====&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-16 12-26-36.png]]&lt;br /&gt;
&lt;br /&gt;
==== New result ====&lt;br /&gt;
&lt;br /&gt;
=== Create Pull Request ===&lt;br /&gt;
&lt;br /&gt;
close #845&lt;br /&gt;
&lt;br /&gt;
=== Other fixes ===&lt;br /&gt;
&lt;br /&gt;
epsg versus EPSG&lt;br /&gt;
&lt;br /&gt;
== Point cloud classification ==&lt;br /&gt;
&lt;br /&gt;
[DEBUG]   running pdal info --boundary --filters.hexbin.edge_length=1 --filters.hexbin.threshold=0 /code/odm_georeferencing/odm_georeferenced_model.filtered.las &amp;gt; /code/odm_georeferencing/odm_georeferenced_model.boundary.json&lt;br /&gt;
PDAL: Argument references invalid/unused stage: &amp;#039;filters.hexbin&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=891</id>
		<title>Running OpenDroneMap</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=891"/>
		<updated>2019-02-04T10:34:41Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Drone Workshop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Drone Workshop ===&lt;br /&gt;
&lt;br /&gt;
1. Flight&lt;br /&gt;
&lt;br /&gt;
WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install docker-compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Data products&lt;br /&gt;
&lt;br /&gt;
2.1 Orthophoto&lt;br /&gt;
&lt;br /&gt;
Discussion: GCP, impact on the elevation model&lt;br /&gt;
&lt;br /&gt;
Swipe tool&lt;br /&gt;
&lt;br /&gt;
Point value: check ortho values&lt;br /&gt;
&lt;br /&gt;
2.2 DEM/DSM&lt;br /&gt;
&lt;br /&gt;
Discussion: difference between&lt;br /&gt;
&lt;br /&gt;
Raster value&lt;br /&gt;
&lt;br /&gt;
Profile tool&lt;br /&gt;
&lt;br /&gt;
Visualization: hillshade&lt;br /&gt;
&lt;br /&gt;
http://plas.io/&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/tutorial/pcl_ground/index.html#pcl-ground&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-- original&lt;br /&gt;
pdal translate -i /code/odm_georeferencing/odm_georeferenced_model.laz -o /code/odm_georeferencing/odm_georeferenced_model.laz smrf --filters.smrf.cell=2 --filters.smrf.slope=10 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- VERY GOOD&lt;br /&gt;
pdal translate -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_2.laz smrf --filters.smrf.cell=2 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- good&lt;br /&gt;
pdal ground -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_3.laz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.3 Point cloud&lt;br /&gt;
&lt;br /&gt;
What we get from the software&lt;br /&gt;
&lt;br /&gt;
Visualization tools&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/workshop/exercises/analysis/dtm/dtm.html&lt;br /&gt;
&lt;br /&gt;
3. Processing data products&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1 Better classification&lt;br /&gt;
&lt;br /&gt;
lasground&lt;br /&gt;
&lt;br /&gt;
3.2 lasheight&lt;br /&gt;
&lt;br /&gt;
3.3 lasclassify&lt;br /&gt;
&lt;br /&gt;
=== DJI Mavic 2 PRO ===&lt;br /&gt;
&lt;br /&gt;
[https://forum.dji.com/thread-167017-1-1.html Sensor size], [https://www.youtube.com/watch?v=xIncVCe6pg0 Video about sensor size]&lt;br /&gt;
&lt;br /&gt;
==== Erro ====&lt;br /&gt;
&lt;br /&gt;
Culpado: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;/home/jgr/PycharmProjects/OpenDroneMap/modules/odm_extract_utm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todas as imagens estão com Exif.GPSInfo.GPSAltitude = 0.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
      if (lon == 0.0 || lat == 0.0 || alt == 0.0) {&lt;br /&gt;
        std::string error(&amp;quot;Failed parsing GPS position for &amp;quot; + imageFilename);&lt;br /&gt;
        throw UtmExtractorException(error);&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remendo ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.0 m&lt;br /&gt;
&lt;br /&gt;
exiv2 -M&amp;quot;set Exif.GPSInfo.GPSAltitude Rational 1/10&amp;quot; DJI_0210.JPG&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.1 m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chamada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Wrote images database: /code/images.json&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_extract_utm -imagesPath /code/images/ -imageListFile /code/img_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt  -logFile /code/odm_georeferencing/odm_georeferencing_utm_log.txt&lt;br /&gt;
Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[WARNING] Could not generate coordinates file. Ignore if there is a GCP file. Error: Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Building objmodel:&lt;br /&gt;
	Saving model... done.&lt;br /&gt;
Whole texturing procedure took: 225.586s&lt;br /&gt;
[INFO]    Running ODM Texturing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell&lt;br /&gt;
[WARNING] Georeferencing failed. Make sure your photos have geotags in the EXIF or you have provided a GCP file. &lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM DEM Cell&lt;br /&gt;
[INFO]    Classify: True&lt;br /&gt;
[INFO]    Create DSM: True&lt;br /&gt;
[INFO]    Create DTM: True&lt;br /&gt;
[INFO]    DEM input file /code/odm_georeferencing/odm_georeferenced_model.las found: False&lt;br /&gt;
[WARNING] DEM will not be generated&lt;br /&gt;
[INFO]    Running ODM DEM Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Orthophoto Cell&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_orthophoto -inputFile /code/odm_texturing/odm_textured_model.obj -logFile /code/odm_orthophoto/odm_orthophoto_log.txt -outputFile /code/odm_orthophoto/odm_orthophoto.png -resolution 10.0  -outputCornerFile /code/odm_orthophoto/odm_orthophoto_corners.txt&lt;br /&gt;
[WARNING] No geo-referenced orthophoto created due to missing geo-referencing or corner coordinates.&lt;br /&gt;
[INFO]    Running ODM OrthoPhoto Cell - Finished&lt;br /&gt;
[INFO]    OpenDroneMap app finished - Sat Dec 29 22:12:22  2018&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running docker OpenDroneMap ===&lt;br /&gt;
&lt;br /&gt;
==== Update to last OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker pull opendronemap/opendronemap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
# Install docker&lt;br /&gt;
# Add you user to docker group&lt;br /&gt;
# sudo -H pip install requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir OpenDroneMap&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git clone git@github.com:OpenDroneMap/odm_data_aukerman.git&lt;br /&gt;
cd odm_data_aukerman&lt;br /&gt;
&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
ls -l $odmi&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
opendronemap/opendronemap --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sem GCP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado/&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: os ortos estão a ficar com muitas interferências do modelo 3D, nas áreas urbanas.&lt;br /&gt;
&lt;br /&gt;
Related problem: http://community.opendronemap.org/t/buildings/929&lt;br /&gt;
&lt;br /&gt;
Será que voar com a câmara a 75 graus ajuda? Fiz um voo com Double Grid, com a camara a 70 graus (default do Pix4d capture).&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
Install Docker&lt;br /&gt;
&lt;br /&gt;
Configure docker (more CPU, more memory)&lt;br /&gt;
&lt;br /&gt;
CPUs: 6&lt;br /&gt;
&lt;br /&gt;
Memory: 12032 Mb&lt;br /&gt;
&lt;br /&gt;
Swap: 4096 Mb&lt;br /&gt;
&lt;br /&gt;
Create the projet folder structure&lt;br /&gt;
&lt;br /&gt;
Project folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\&lt;br /&gt;
&lt;br /&gt;
Image folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\images&lt;br /&gt;
&lt;br /&gt;
Create folders for the OpenDroneMap output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd Documents\uav_sckovskolen_feb20018_incl_GCP&lt;br /&gt;
md odm_orthophoto&lt;br /&gt;
md odm_texturing&lt;br /&gt;
md odm_georeferencing&lt;br /&gt;
md odm_meshing&lt;br /&gt;
md opensfm&lt;br /&gt;
md odm_dem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $pwd/images:/code/images -v $pwd/odm_orthophoto:/code/odm_orthophoto -v $pwd/odm_texturing:/code/odm_texturing -v $pwd/odm_georeferencing:/code/odm_georeferencing -v $pwd/odm_meshing:/code/odm_meshing -v $pwd/opensfm:/code/opensfm -v $pwd/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado2xgrid&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0 --mesh-octree-depth 10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer (update) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo chown -R jgr:jgr *&lt;br /&gt;
git clone https://github.com/mapillary/OpenSfM.git&lt;br /&gt;
cd OpenSfM/viewer&lt;br /&gt;
ln -s ../../images .&lt;br /&gt;
python2 -m SimpleHTTPServer 7777&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ sudo chown -R jgr:jgr *&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cp -r ~/dev/OpenSfM/viewer opensfm&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cd opensfm/&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ ln -s ../images .&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ python -m SimpleHTTPServer&lt;br /&gt;
Serving HTTP on 0.0.0.0 port 8000 ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://localhost:8000/viewer/reconstruction.html#file=/reconstruction.json&lt;br /&gt;
&lt;br /&gt;
==== OpenSFM view images on QGIS ====&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/images/DJI_0595.JPG&lt;br /&gt;
&lt;br /&gt;
-8.7515052, 40.6114774, 22.4100000, 2018:08:23 10:05:11&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/opensfm/reference_lla.json&lt;br /&gt;
&lt;br /&gt;
Centro aproximado do ortophoto resultante (adicionado ao projeto QGIS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;latitude&amp;quot;: 40.61272372901514, &lt;br /&gt;
    &amp;quot;altitude&amp;quot;: 0, &lt;br /&gt;
    &amp;quot;longitude&amp;quot;: -8.752983409509966&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;quot;DJI_0595.JPG&amp;quot;: {&lt;br /&gt;
                &amp;quot;orientation&amp;quot;: 1, &lt;br /&gt;
                &amp;quot;camera&amp;quot;: &amp;quot;v2 dji fc220 4000 3000 perspective 0.7222&amp;quot;, &lt;br /&gt;
                &amp;quot;gps_position&amp;quot;: [&lt;br /&gt;
                    125.10012061257521, &lt;br /&gt;
                    -138.4010433354888, &lt;br /&gt;
                    22.407269606366754&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;gps_dop&amp;quot;: 15.0, &lt;br /&gt;
                &amp;quot;rotation&amp;quot;: [&lt;br /&gt;
                    2.1445873611073996, &lt;br /&gt;
                    -2.2856282209697523, &lt;br /&gt;
                    0.20066193557381898&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;translation&amp;quot;: [&lt;br /&gt;
                    -132.67853610360638, &lt;br /&gt;
                    133.40968771622724, &lt;br /&gt;
                    1.9668907291333997&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;capture_time&amp;quot;: 1535018711.0&lt;br /&gt;
            }, &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://github.com/mapillary/OpenSfM/blob/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ wget https://raw.githubusercontent.com/mapillary/OpenSfM/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
NÃO FUNCIONOU...&lt;br /&gt;
&lt;br /&gt;
export_geocoords.py -dataset costanova&lt;br /&gt;
&lt;br /&gt;
Ver: https://github.com/mapillary/OpenSfM/issues/183&lt;br /&gt;
&lt;br /&gt;
=== webODM ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/OpenDroneMap/WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input&lt;br /&gt;
cd WebODM&lt;br /&gt;
./webodm.sh start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jgrocha/xxbatata&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
&lt;br /&gt;
CloudCompare&lt;br /&gt;
&lt;br /&gt;
QGIS Plugin Photo2Shape&lt;br /&gt;
&lt;br /&gt;
Criar uma shapefile photos&lt;br /&gt;
&lt;br /&gt;
Nas propriedades, no campo &amp;lt;syntaxhighlight inline lang=&amp;quot;bash&amp;quot;&amp;gt;filepath&amp;lt;/syntaxhighlight&amp;gt; mudar para o tipo Fotografia.&lt;br /&gt;
&lt;br /&gt;
=== Ground Control File ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo -7.778152 41.833203 957.575989  | cs2cs +init=epsg:4326 +to +init=epsg:3763&lt;br /&gt;
echo 708610.702 6209972.025 26.085 | cs2cs +init=epsg:25832 +to +init=epsg:32633&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:32633 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;#039;&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:25832 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs &amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make my own OpenDroneMap image ==&lt;br /&gt;
&lt;br /&gt;
=== Fork and clone ODM repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone git@github.com:jgrocha/OpenDroneMap.git&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git checkout -b generate-laz-output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change source ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Build new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/PycharmProjects/OpenDroneMap$ docker build --no-cache -t odm_altitude_0 .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t odm_laz_image .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cd &amp;quot;/mnt/bonn/nextCloud/Photos/DJI MAVIC PRO 2 Paradela/100MEDIA&amp;quot;&lt;br /&gt;
cd /mnt/bonn/nextCloud/Photos&lt;br /&gt;
ln -s &amp;#039;DJI MAVIC PRO 2 Paradela/100MEDIA&amp;#039; images&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
docker run --cpus 8 -it --rm -v $odmi/images:/code/images -v $odmi/odm_orthophoto:/code/odm_orthophoto -v $odmi/odm_texturing:/code/odm_texturing -v $odmi/odm_georeferencing:/code/odm_georeferencing -v $odmi/odm_meshing:/code/odm_meshing -v $odmi/opensfm:/code/opensfm -v $odmi/odm_dem:/code/odm_dem odm_altitude_0 --dtm --dsm --force-ccd 13.2&lt;br /&gt;
# --orthophoto-resolution 2.0 --mesh-octree-depth 2 --opensfm-processes 8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
sudo rm -rf odm_georeferencing odm_meshing odm_orthophoto odm_texturing opensfm&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options for rerunning are: &amp;#039;resize&amp;#039;, &amp;#039;opensfm&amp;#039;, &amp;#039;slam&amp;#039;, &amp;#039;cmvs&amp;#039;, &amp;#039;pmvs&amp;#039;, &amp;#039;odm_meshing&amp;#039;, &amp;#039;mvs_texturing&amp;#039;, &amp;#039;odm_georeferencing&amp;#039;, &amp;#039;odm_orthophoto&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm --rerun-from odm_georeferencing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check the output ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
running /code/build/bin/odm_georef -bundleFile /code/opensfm/bundle_r000.out -imagesPath /code/images -imagesListPath /code/opensfm/list_r000.out -inputFile /code/odm_texturing/odm_textured_model.obj -outputFile /code/odm_texturing/odm_textured_model_geo.obj -inputPointCloudFile /code/opensfm/depthmaps/merged.ply -outputPointCloudFile /code/odm_georeferencing/odm_georeferenced_model.ply  -logFile /code/odm_georeferencing/odm_georeferencing_log.txt -outputTransformFile /code/odm_georeferencing/odm_georeferencing_transform.txt -georefFileOutputPath /code/odm_georeferencing/odm_georeferencing_model_geo.txt -gcpFile gcp_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt&lt;br /&gt;
[DEBUG]   running /code/SuperBuild/build/pdal/bin/pdal pipeline -i /code/odm_georeferencing/las.json --readers.ply.filename=/code/odm_georeferencing/odm_georeferenced_model.ply&lt;br /&gt;
PDAL: writers.las: Can&amp;#039;t write LAZ output.  PDAL not built with LASzip or LAZperf.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pipeline&amp;quot;: [&lt;br /&gt;
    &amp;quot;untransformed.ply&amp;quot;,&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;writers.las&amp;quot;,&lt;br /&gt;
      &amp;quot;a_srs&amp;quot;: &amp;quot;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;quot;,&lt;br /&gt;
      &amp;quot;offset_x&amp;quot;: &amp;quot;334230.28164&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_y&amp;quot;: &amp;quot;6208095.41529&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_z&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;compression&amp;quot;: &amp;quot;laszip&amp;quot;,&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;/code/odm_georeferencing/odm_georeferenced_model.laz&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-17 14-34-10.png]]&lt;br /&gt;
&lt;br /&gt;
=== Local pdal+LASzip ===&lt;br /&gt;
&lt;br /&gt;
Build from source!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/bin/pdal pipeline -i las.json --readers.ply.filename=odm_georeferenced_model.ply&lt;br /&gt;
-rw-r--r-- 1 jgr jgr  22661583 jun 17 11:47 odm_georeferenced_model.laz&lt;br /&gt;
-rw-r--r-- 1 jgr jgr 121586206 jun 17 11:42 odm_georeferenced_model.ply&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Previous result ====&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-16 12-26-36.png]]&lt;br /&gt;
&lt;br /&gt;
==== New result ====&lt;br /&gt;
&lt;br /&gt;
=== Create Pull Request ===&lt;br /&gt;
&lt;br /&gt;
close #845&lt;br /&gt;
&lt;br /&gt;
=== Other fixes ===&lt;br /&gt;
&lt;br /&gt;
epsg versus EPSG&lt;br /&gt;
&lt;br /&gt;
== Point cloud classification ==&lt;br /&gt;
&lt;br /&gt;
[DEBUG]   running pdal info --boundary --filters.hexbin.edge_length=1 --filters.hexbin.threshold=0 /code/odm_georeferencing/odm_georeferenced_model.filtered.las &amp;gt; /code/odm_georeferencing/odm_georeferenced_model.boundary.json&lt;br /&gt;
PDAL: Argument references invalid/unused stage: &amp;#039;filters.hexbin&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=889</id>
		<title>Running OpenDroneMap</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=889"/>
		<updated>2019-02-03T21:50:48Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Drone Workshop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Drone Workshop ===&lt;br /&gt;
&lt;br /&gt;
1. Flight&lt;br /&gt;
&lt;br /&gt;
2. Data products&lt;br /&gt;
&lt;br /&gt;
2.1 Orthophoto&lt;br /&gt;
&lt;br /&gt;
Discussion: GCP, impact on the elevation model&lt;br /&gt;
&lt;br /&gt;
Swipe tool&lt;br /&gt;
&lt;br /&gt;
Point value: check ortho values&lt;br /&gt;
&lt;br /&gt;
2.2 DEM/DSM&lt;br /&gt;
&lt;br /&gt;
Discussion: difference between&lt;br /&gt;
&lt;br /&gt;
Raster value&lt;br /&gt;
&lt;br /&gt;
Profile tool&lt;br /&gt;
&lt;br /&gt;
Visualization: hillshade&lt;br /&gt;
&lt;br /&gt;
http://plas.io/&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/tutorial/pcl_ground/index.html#pcl-ground&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-- original&lt;br /&gt;
pdal translate -i /code/odm_georeferencing/odm_georeferenced_model.laz -o /code/odm_georeferencing/odm_georeferenced_model.laz smrf --filters.smrf.cell=2 --filters.smrf.slope=10 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- VERY GOOD&lt;br /&gt;
pdal translate -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_2.laz smrf --filters.smrf.cell=2 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- good&lt;br /&gt;
pdal ground -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_3.laz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.3 Point cloud&lt;br /&gt;
&lt;br /&gt;
What we get from the software&lt;br /&gt;
&lt;br /&gt;
Visualization tools&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/workshop/exercises/analysis/dtm/dtm.html&lt;br /&gt;
&lt;br /&gt;
3. Processing data products&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1 Better classification&lt;br /&gt;
&lt;br /&gt;
lasground&lt;br /&gt;
&lt;br /&gt;
3.2 lasheight&lt;br /&gt;
&lt;br /&gt;
3.3 lasclassify&lt;br /&gt;
&lt;br /&gt;
=== DJI Mavic 2 PRO ===&lt;br /&gt;
&lt;br /&gt;
[https://forum.dji.com/thread-167017-1-1.html Sensor size], [https://www.youtube.com/watch?v=xIncVCe6pg0 Video about sensor size]&lt;br /&gt;
&lt;br /&gt;
==== Erro ====&lt;br /&gt;
&lt;br /&gt;
Culpado: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;/home/jgr/PycharmProjects/OpenDroneMap/modules/odm_extract_utm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todas as imagens estão com Exif.GPSInfo.GPSAltitude = 0.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
      if (lon == 0.0 || lat == 0.0 || alt == 0.0) {&lt;br /&gt;
        std::string error(&amp;quot;Failed parsing GPS position for &amp;quot; + imageFilename);&lt;br /&gt;
        throw UtmExtractorException(error);&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remendo ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.0 m&lt;br /&gt;
&lt;br /&gt;
exiv2 -M&amp;quot;set Exif.GPSInfo.GPSAltitude Rational 1/10&amp;quot; DJI_0210.JPG&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.1 m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chamada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Wrote images database: /code/images.json&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_extract_utm -imagesPath /code/images/ -imageListFile /code/img_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt  -logFile /code/odm_georeferencing/odm_georeferencing_utm_log.txt&lt;br /&gt;
Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[WARNING] Could not generate coordinates file. Ignore if there is a GCP file. Error: Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Building objmodel:&lt;br /&gt;
	Saving model... done.&lt;br /&gt;
Whole texturing procedure took: 225.586s&lt;br /&gt;
[INFO]    Running ODM Texturing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell&lt;br /&gt;
[WARNING] Georeferencing failed. Make sure your photos have geotags in the EXIF or you have provided a GCP file. &lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM DEM Cell&lt;br /&gt;
[INFO]    Classify: True&lt;br /&gt;
[INFO]    Create DSM: True&lt;br /&gt;
[INFO]    Create DTM: True&lt;br /&gt;
[INFO]    DEM input file /code/odm_georeferencing/odm_georeferenced_model.las found: False&lt;br /&gt;
[WARNING] DEM will not be generated&lt;br /&gt;
[INFO]    Running ODM DEM Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Orthophoto Cell&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_orthophoto -inputFile /code/odm_texturing/odm_textured_model.obj -logFile /code/odm_orthophoto/odm_orthophoto_log.txt -outputFile /code/odm_orthophoto/odm_orthophoto.png -resolution 10.0  -outputCornerFile /code/odm_orthophoto/odm_orthophoto_corners.txt&lt;br /&gt;
[WARNING] No geo-referenced orthophoto created due to missing geo-referencing or corner coordinates.&lt;br /&gt;
[INFO]    Running ODM OrthoPhoto Cell - Finished&lt;br /&gt;
[INFO]    OpenDroneMap app finished - Sat Dec 29 22:12:22  2018&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running docker OpenDroneMap ===&lt;br /&gt;
&lt;br /&gt;
==== Update to last OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker pull opendronemap/opendronemap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
# Install docker&lt;br /&gt;
# Add you user to docker group&lt;br /&gt;
# sudo -H pip install requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir OpenDroneMap&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git clone git@github.com:OpenDroneMap/odm_data_aukerman.git&lt;br /&gt;
cd odm_data_aukerman&lt;br /&gt;
&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
ls -l $odmi&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
opendronemap/opendronemap --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sem GCP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado/&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: os ortos estão a ficar com muitas interferências do modelo 3D, nas áreas urbanas.&lt;br /&gt;
&lt;br /&gt;
Related problem: http://community.opendronemap.org/t/buildings/929&lt;br /&gt;
&lt;br /&gt;
Será que voar com a câmara a 75 graus ajuda? Fiz um voo com Double Grid, com a camara a 70 graus (default do Pix4d capture).&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
Install Docker&lt;br /&gt;
&lt;br /&gt;
Configure docker (more CPU, more memory)&lt;br /&gt;
&lt;br /&gt;
CPUs: 6&lt;br /&gt;
&lt;br /&gt;
Memory: 12032 Mb&lt;br /&gt;
&lt;br /&gt;
Swap: 4096 Mb&lt;br /&gt;
&lt;br /&gt;
Create the projet folder structure&lt;br /&gt;
&lt;br /&gt;
Project folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\&lt;br /&gt;
&lt;br /&gt;
Image folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\images&lt;br /&gt;
&lt;br /&gt;
Create folders for the OpenDroneMap output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd Documents\uav_sckovskolen_feb20018_incl_GCP&lt;br /&gt;
md odm_orthophoto&lt;br /&gt;
md odm_texturing&lt;br /&gt;
md odm_georeferencing&lt;br /&gt;
md odm_meshing&lt;br /&gt;
md opensfm&lt;br /&gt;
md odm_dem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $pwd/images:/code/images -v $pwd/odm_orthophoto:/code/odm_orthophoto -v $pwd/odm_texturing:/code/odm_texturing -v $pwd/odm_georeferencing:/code/odm_georeferencing -v $pwd/odm_meshing:/code/odm_meshing -v $pwd/opensfm:/code/opensfm -v $pwd/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado2xgrid&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0 --mesh-octree-depth 10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer (update) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo chown -R jgr:jgr *&lt;br /&gt;
git clone https://github.com/mapillary/OpenSfM.git&lt;br /&gt;
cd OpenSfM/viewer&lt;br /&gt;
ln -s ../../images .&lt;br /&gt;
python2 -m SimpleHTTPServer 7777&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ sudo chown -R jgr:jgr *&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cp -r ~/dev/OpenSfM/viewer opensfm&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cd opensfm/&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ ln -s ../images .&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ python -m SimpleHTTPServer&lt;br /&gt;
Serving HTTP on 0.0.0.0 port 8000 ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://localhost:8000/viewer/reconstruction.html#file=/reconstruction.json&lt;br /&gt;
&lt;br /&gt;
==== OpenSFM view images on QGIS ====&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/images/DJI_0595.JPG&lt;br /&gt;
&lt;br /&gt;
-8.7515052, 40.6114774, 22.4100000, 2018:08:23 10:05:11&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/opensfm/reference_lla.json&lt;br /&gt;
&lt;br /&gt;
Centro aproximado do ortophoto resultante (adicionado ao projeto QGIS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;latitude&amp;quot;: 40.61272372901514, &lt;br /&gt;
    &amp;quot;altitude&amp;quot;: 0, &lt;br /&gt;
    &amp;quot;longitude&amp;quot;: -8.752983409509966&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;quot;DJI_0595.JPG&amp;quot;: {&lt;br /&gt;
                &amp;quot;orientation&amp;quot;: 1, &lt;br /&gt;
                &amp;quot;camera&amp;quot;: &amp;quot;v2 dji fc220 4000 3000 perspective 0.7222&amp;quot;, &lt;br /&gt;
                &amp;quot;gps_position&amp;quot;: [&lt;br /&gt;
                    125.10012061257521, &lt;br /&gt;
                    -138.4010433354888, &lt;br /&gt;
                    22.407269606366754&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;gps_dop&amp;quot;: 15.0, &lt;br /&gt;
                &amp;quot;rotation&amp;quot;: [&lt;br /&gt;
                    2.1445873611073996, &lt;br /&gt;
                    -2.2856282209697523, &lt;br /&gt;
                    0.20066193557381898&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;translation&amp;quot;: [&lt;br /&gt;
                    -132.67853610360638, &lt;br /&gt;
                    133.40968771622724, &lt;br /&gt;
                    1.9668907291333997&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;capture_time&amp;quot;: 1535018711.0&lt;br /&gt;
            }, &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://github.com/mapillary/OpenSfM/blob/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ wget https://raw.githubusercontent.com/mapillary/OpenSfM/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
NÃO FUNCIONOU...&lt;br /&gt;
&lt;br /&gt;
export_geocoords.py -dataset costanova&lt;br /&gt;
&lt;br /&gt;
Ver: https://github.com/mapillary/OpenSfM/issues/183&lt;br /&gt;
&lt;br /&gt;
=== webODM ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/OpenDroneMap/WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input&lt;br /&gt;
cd WebODM&lt;br /&gt;
./webodm.sh start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jgrocha/xxbatata&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
&lt;br /&gt;
CloudCompare&lt;br /&gt;
&lt;br /&gt;
QGIS Plugin Photo2Shape&lt;br /&gt;
&lt;br /&gt;
Criar uma shapefile photos&lt;br /&gt;
&lt;br /&gt;
Nas propriedades, no campo &amp;lt;syntaxhighlight inline lang=&amp;quot;bash&amp;quot;&amp;gt;filepath&amp;lt;/syntaxhighlight&amp;gt; mudar para o tipo Fotografia.&lt;br /&gt;
&lt;br /&gt;
=== Ground Control File ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo -7.778152 41.833203 957.575989  | cs2cs +init=epsg:4326 +to +init=epsg:3763&lt;br /&gt;
echo 708610.702 6209972.025 26.085 | cs2cs +init=epsg:25832 +to +init=epsg:32633&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:32633 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;#039;&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:25832 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs &amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make my own OpenDroneMap image ==&lt;br /&gt;
&lt;br /&gt;
=== Fork and clone ODM repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone git@github.com:jgrocha/OpenDroneMap.git&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git checkout -b generate-laz-output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change source ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Build new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/PycharmProjects/OpenDroneMap$ docker build --no-cache -t odm_altitude_0 .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t odm_laz_image .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cd &amp;quot;/mnt/bonn/nextCloud/Photos/DJI MAVIC PRO 2 Paradela/100MEDIA&amp;quot;&lt;br /&gt;
cd /mnt/bonn/nextCloud/Photos&lt;br /&gt;
ln -s &amp;#039;DJI MAVIC PRO 2 Paradela/100MEDIA&amp;#039; images&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
docker run --cpus 8 -it --rm -v $odmi/images:/code/images -v $odmi/odm_orthophoto:/code/odm_orthophoto -v $odmi/odm_texturing:/code/odm_texturing -v $odmi/odm_georeferencing:/code/odm_georeferencing -v $odmi/odm_meshing:/code/odm_meshing -v $odmi/opensfm:/code/opensfm -v $odmi/odm_dem:/code/odm_dem odm_altitude_0 --dtm --dsm --force-ccd 13.2&lt;br /&gt;
# --orthophoto-resolution 2.0 --mesh-octree-depth 2 --opensfm-processes 8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
sudo rm -rf odm_georeferencing odm_meshing odm_orthophoto odm_texturing opensfm&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options for rerunning are: &amp;#039;resize&amp;#039;, &amp;#039;opensfm&amp;#039;, &amp;#039;slam&amp;#039;, &amp;#039;cmvs&amp;#039;, &amp;#039;pmvs&amp;#039;, &amp;#039;odm_meshing&amp;#039;, &amp;#039;mvs_texturing&amp;#039;, &amp;#039;odm_georeferencing&amp;#039;, &amp;#039;odm_orthophoto&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm --rerun-from odm_georeferencing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check the output ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
running /code/build/bin/odm_georef -bundleFile /code/opensfm/bundle_r000.out -imagesPath /code/images -imagesListPath /code/opensfm/list_r000.out -inputFile /code/odm_texturing/odm_textured_model.obj -outputFile /code/odm_texturing/odm_textured_model_geo.obj -inputPointCloudFile /code/opensfm/depthmaps/merged.ply -outputPointCloudFile /code/odm_georeferencing/odm_georeferenced_model.ply  -logFile /code/odm_georeferencing/odm_georeferencing_log.txt -outputTransformFile /code/odm_georeferencing/odm_georeferencing_transform.txt -georefFileOutputPath /code/odm_georeferencing/odm_georeferencing_model_geo.txt -gcpFile gcp_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt&lt;br /&gt;
[DEBUG]   running /code/SuperBuild/build/pdal/bin/pdal pipeline -i /code/odm_georeferencing/las.json --readers.ply.filename=/code/odm_georeferencing/odm_georeferenced_model.ply&lt;br /&gt;
PDAL: writers.las: Can&amp;#039;t write LAZ output.  PDAL not built with LASzip or LAZperf.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pipeline&amp;quot;: [&lt;br /&gt;
    &amp;quot;untransformed.ply&amp;quot;,&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;writers.las&amp;quot;,&lt;br /&gt;
      &amp;quot;a_srs&amp;quot;: &amp;quot;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;quot;,&lt;br /&gt;
      &amp;quot;offset_x&amp;quot;: &amp;quot;334230.28164&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_y&amp;quot;: &amp;quot;6208095.41529&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_z&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;compression&amp;quot;: &amp;quot;laszip&amp;quot;,&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;/code/odm_georeferencing/odm_georeferenced_model.laz&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-17 14-34-10.png]]&lt;br /&gt;
&lt;br /&gt;
=== Local pdal+LASzip ===&lt;br /&gt;
&lt;br /&gt;
Build from source!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/bin/pdal pipeline -i las.json --readers.ply.filename=odm_georeferenced_model.ply&lt;br /&gt;
-rw-r--r-- 1 jgr jgr  22661583 jun 17 11:47 odm_georeferenced_model.laz&lt;br /&gt;
-rw-r--r-- 1 jgr jgr 121586206 jun 17 11:42 odm_georeferenced_model.ply&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Previous result ====&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-16 12-26-36.png]]&lt;br /&gt;
&lt;br /&gt;
==== New result ====&lt;br /&gt;
&lt;br /&gt;
=== Create Pull Request ===&lt;br /&gt;
&lt;br /&gt;
close #845&lt;br /&gt;
&lt;br /&gt;
=== Other fixes ===&lt;br /&gt;
&lt;br /&gt;
epsg versus EPSG&lt;br /&gt;
&lt;br /&gt;
== Point cloud classification ==&lt;br /&gt;
&lt;br /&gt;
[DEBUG]   running pdal info --boundary --filters.hexbin.edge_length=1 --filters.hexbin.threshold=0 /code/odm_georeferencing/odm_georeferenced_model.filtered.las &amp;gt; /code/odm_georeferencing/odm_georeferenced_model.boundary.json&lt;br /&gt;
PDAL: Argument references invalid/unused stage: &amp;#039;filters.hexbin&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=887</id>
		<title>Running OpenDroneMap</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=887"/>
		<updated>2019-02-03T18:04:45Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Drone Workshop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Drone Workshop ===&lt;br /&gt;
&lt;br /&gt;
1. Flight&lt;br /&gt;
&lt;br /&gt;
2. Data products&lt;br /&gt;
&lt;br /&gt;
2.1 Orthophoto&lt;br /&gt;
&lt;br /&gt;
Discussion: GCP, impact on the elevation model&lt;br /&gt;
&lt;br /&gt;
Swipe tool&lt;br /&gt;
&lt;br /&gt;
Point value: check ortho values&lt;br /&gt;
&lt;br /&gt;
2.2 DEM/DSM&lt;br /&gt;
&lt;br /&gt;
Discussion: difference between&lt;br /&gt;
&lt;br /&gt;
Raster value&lt;br /&gt;
&lt;br /&gt;
Profile tool&lt;br /&gt;
&lt;br /&gt;
Visualization: hillshade&lt;br /&gt;
&lt;br /&gt;
http://plas.io/&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/tutorial/pcl_ground/index.html#pcl-ground&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-- original&lt;br /&gt;
pdal translate -i /code/odm_georeferencing/odm_georeferenced_model.laz -o /code/odm_georeferencing/odm_georeferenced_model.laz smrf --filters.smrf.cell=2 --filters.smrf.slope=10 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- VERY GOOD&lt;br /&gt;
pdal translate -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_2.laz smrf --filters.smrf.cell=2 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- good&lt;br /&gt;
pdal ground -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_3.laz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.3 Point cloud&lt;br /&gt;
&lt;br /&gt;
What we get from the software&lt;br /&gt;
&lt;br /&gt;
Visualization tools&lt;br /&gt;
&lt;br /&gt;
3. Processing data products&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1 Better classification&lt;br /&gt;
&lt;br /&gt;
lasground&lt;br /&gt;
&lt;br /&gt;
3.2 lasheight&lt;br /&gt;
&lt;br /&gt;
3.3 lasclassify&lt;br /&gt;
&lt;br /&gt;
=== DJI Mavic 2 PRO ===&lt;br /&gt;
&lt;br /&gt;
[https://forum.dji.com/thread-167017-1-1.html Sensor size], [https://www.youtube.com/watch?v=xIncVCe6pg0 Video about sensor size]&lt;br /&gt;
&lt;br /&gt;
==== Erro ====&lt;br /&gt;
&lt;br /&gt;
Culpado: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;/home/jgr/PycharmProjects/OpenDroneMap/modules/odm_extract_utm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todas as imagens estão com Exif.GPSInfo.GPSAltitude = 0.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
      if (lon == 0.0 || lat == 0.0 || alt == 0.0) {&lt;br /&gt;
        std::string error(&amp;quot;Failed parsing GPS position for &amp;quot; + imageFilename);&lt;br /&gt;
        throw UtmExtractorException(error);&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remendo ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.0 m&lt;br /&gt;
&lt;br /&gt;
exiv2 -M&amp;quot;set Exif.GPSInfo.GPSAltitude Rational 1/10&amp;quot; DJI_0210.JPG&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.1 m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chamada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Wrote images database: /code/images.json&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_extract_utm -imagesPath /code/images/ -imageListFile /code/img_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt  -logFile /code/odm_georeferencing/odm_georeferencing_utm_log.txt&lt;br /&gt;
Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[WARNING] Could not generate coordinates file. Ignore if there is a GCP file. Error: Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Building objmodel:&lt;br /&gt;
	Saving model... done.&lt;br /&gt;
Whole texturing procedure took: 225.586s&lt;br /&gt;
[INFO]    Running ODM Texturing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell&lt;br /&gt;
[WARNING] Georeferencing failed. Make sure your photos have geotags in the EXIF or you have provided a GCP file. &lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM DEM Cell&lt;br /&gt;
[INFO]    Classify: True&lt;br /&gt;
[INFO]    Create DSM: True&lt;br /&gt;
[INFO]    Create DTM: True&lt;br /&gt;
[INFO]    DEM input file /code/odm_georeferencing/odm_georeferenced_model.las found: False&lt;br /&gt;
[WARNING] DEM will not be generated&lt;br /&gt;
[INFO]    Running ODM DEM Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Orthophoto Cell&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_orthophoto -inputFile /code/odm_texturing/odm_textured_model.obj -logFile /code/odm_orthophoto/odm_orthophoto_log.txt -outputFile /code/odm_orthophoto/odm_orthophoto.png -resolution 10.0  -outputCornerFile /code/odm_orthophoto/odm_orthophoto_corners.txt&lt;br /&gt;
[WARNING] No geo-referenced orthophoto created due to missing geo-referencing or corner coordinates.&lt;br /&gt;
[INFO]    Running ODM OrthoPhoto Cell - Finished&lt;br /&gt;
[INFO]    OpenDroneMap app finished - Sat Dec 29 22:12:22  2018&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running docker OpenDroneMap ===&lt;br /&gt;
&lt;br /&gt;
==== Update to last OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker pull opendronemap/opendronemap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
# Install docker&lt;br /&gt;
# Add you user to docker group&lt;br /&gt;
# sudo -H pip install requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir OpenDroneMap&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git clone git@github.com:OpenDroneMap/odm_data_aukerman.git&lt;br /&gt;
cd odm_data_aukerman&lt;br /&gt;
&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
ls -l $odmi&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
opendronemap/opendronemap --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sem GCP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado/&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: os ortos estão a ficar com muitas interferências do modelo 3D, nas áreas urbanas.&lt;br /&gt;
&lt;br /&gt;
Related problem: http://community.opendronemap.org/t/buildings/929&lt;br /&gt;
&lt;br /&gt;
Será que voar com a câmara a 75 graus ajuda? Fiz um voo com Double Grid, com a camara a 70 graus (default do Pix4d capture).&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
Install Docker&lt;br /&gt;
&lt;br /&gt;
Configure docker (more CPU, more memory)&lt;br /&gt;
&lt;br /&gt;
CPUs: 6&lt;br /&gt;
&lt;br /&gt;
Memory: 12032 Mb&lt;br /&gt;
&lt;br /&gt;
Swap: 4096 Mb&lt;br /&gt;
&lt;br /&gt;
Create the projet folder structure&lt;br /&gt;
&lt;br /&gt;
Project folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\&lt;br /&gt;
&lt;br /&gt;
Image folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\images&lt;br /&gt;
&lt;br /&gt;
Create folders for the OpenDroneMap output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd Documents\uav_sckovskolen_feb20018_incl_GCP&lt;br /&gt;
md odm_orthophoto&lt;br /&gt;
md odm_texturing&lt;br /&gt;
md odm_georeferencing&lt;br /&gt;
md odm_meshing&lt;br /&gt;
md opensfm&lt;br /&gt;
md odm_dem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $pwd/images:/code/images -v $pwd/odm_orthophoto:/code/odm_orthophoto -v $pwd/odm_texturing:/code/odm_texturing -v $pwd/odm_georeferencing:/code/odm_georeferencing -v $pwd/odm_meshing:/code/odm_meshing -v $pwd/opensfm:/code/opensfm -v $pwd/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado2xgrid&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0 --mesh-octree-depth 10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer (update) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo chown -R jgr:jgr *&lt;br /&gt;
git clone https://github.com/mapillary/OpenSfM.git&lt;br /&gt;
cd OpenSfM/viewer&lt;br /&gt;
ln -s ../../images .&lt;br /&gt;
python2 -m SimpleHTTPServer 7777&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ sudo chown -R jgr:jgr *&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cp -r ~/dev/OpenSfM/viewer opensfm&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cd opensfm/&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ ln -s ../images .&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ python -m SimpleHTTPServer&lt;br /&gt;
Serving HTTP on 0.0.0.0 port 8000 ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://localhost:8000/viewer/reconstruction.html#file=/reconstruction.json&lt;br /&gt;
&lt;br /&gt;
==== OpenSFM view images on QGIS ====&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/images/DJI_0595.JPG&lt;br /&gt;
&lt;br /&gt;
-8.7515052, 40.6114774, 22.4100000, 2018:08:23 10:05:11&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/opensfm/reference_lla.json&lt;br /&gt;
&lt;br /&gt;
Centro aproximado do ortophoto resultante (adicionado ao projeto QGIS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;latitude&amp;quot;: 40.61272372901514, &lt;br /&gt;
    &amp;quot;altitude&amp;quot;: 0, &lt;br /&gt;
    &amp;quot;longitude&amp;quot;: -8.752983409509966&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;quot;DJI_0595.JPG&amp;quot;: {&lt;br /&gt;
                &amp;quot;orientation&amp;quot;: 1, &lt;br /&gt;
                &amp;quot;camera&amp;quot;: &amp;quot;v2 dji fc220 4000 3000 perspective 0.7222&amp;quot;, &lt;br /&gt;
                &amp;quot;gps_position&amp;quot;: [&lt;br /&gt;
                    125.10012061257521, &lt;br /&gt;
                    -138.4010433354888, &lt;br /&gt;
                    22.407269606366754&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;gps_dop&amp;quot;: 15.0, &lt;br /&gt;
                &amp;quot;rotation&amp;quot;: [&lt;br /&gt;
                    2.1445873611073996, &lt;br /&gt;
                    -2.2856282209697523, &lt;br /&gt;
                    0.20066193557381898&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;translation&amp;quot;: [&lt;br /&gt;
                    -132.67853610360638, &lt;br /&gt;
                    133.40968771622724, &lt;br /&gt;
                    1.9668907291333997&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;capture_time&amp;quot;: 1535018711.0&lt;br /&gt;
            }, &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://github.com/mapillary/OpenSfM/blob/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ wget https://raw.githubusercontent.com/mapillary/OpenSfM/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
NÃO FUNCIONOU...&lt;br /&gt;
&lt;br /&gt;
export_geocoords.py -dataset costanova&lt;br /&gt;
&lt;br /&gt;
Ver: https://github.com/mapillary/OpenSfM/issues/183&lt;br /&gt;
&lt;br /&gt;
=== webODM ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/OpenDroneMap/WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input&lt;br /&gt;
cd WebODM&lt;br /&gt;
./webodm.sh start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jgrocha/xxbatata&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
&lt;br /&gt;
CloudCompare&lt;br /&gt;
&lt;br /&gt;
QGIS Plugin Photo2Shape&lt;br /&gt;
&lt;br /&gt;
Criar uma shapefile photos&lt;br /&gt;
&lt;br /&gt;
Nas propriedades, no campo &amp;lt;syntaxhighlight inline lang=&amp;quot;bash&amp;quot;&amp;gt;filepath&amp;lt;/syntaxhighlight&amp;gt; mudar para o tipo Fotografia.&lt;br /&gt;
&lt;br /&gt;
=== Ground Control File ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo -7.778152 41.833203 957.575989  | cs2cs +init=epsg:4326 +to +init=epsg:3763&lt;br /&gt;
echo 708610.702 6209972.025 26.085 | cs2cs +init=epsg:25832 +to +init=epsg:32633&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:32633 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;#039;&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:25832 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs &amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make my own OpenDroneMap image ==&lt;br /&gt;
&lt;br /&gt;
=== Fork and clone ODM repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone git@github.com:jgrocha/OpenDroneMap.git&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git checkout -b generate-laz-output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change source ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Build new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/PycharmProjects/OpenDroneMap$ docker build --no-cache -t odm_altitude_0 .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t odm_laz_image .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cd &amp;quot;/mnt/bonn/nextCloud/Photos/DJI MAVIC PRO 2 Paradela/100MEDIA&amp;quot;&lt;br /&gt;
cd /mnt/bonn/nextCloud/Photos&lt;br /&gt;
ln -s &amp;#039;DJI MAVIC PRO 2 Paradela/100MEDIA&amp;#039; images&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
docker run --cpus 8 -it --rm -v $odmi/images:/code/images -v $odmi/odm_orthophoto:/code/odm_orthophoto -v $odmi/odm_texturing:/code/odm_texturing -v $odmi/odm_georeferencing:/code/odm_georeferencing -v $odmi/odm_meshing:/code/odm_meshing -v $odmi/opensfm:/code/opensfm -v $odmi/odm_dem:/code/odm_dem odm_altitude_0 --dtm --dsm --force-ccd 13.2&lt;br /&gt;
# --orthophoto-resolution 2.0 --mesh-octree-depth 2 --opensfm-processes 8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
sudo rm -rf odm_georeferencing odm_meshing odm_orthophoto odm_texturing opensfm&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options for rerunning are: &amp;#039;resize&amp;#039;, &amp;#039;opensfm&amp;#039;, &amp;#039;slam&amp;#039;, &amp;#039;cmvs&amp;#039;, &amp;#039;pmvs&amp;#039;, &amp;#039;odm_meshing&amp;#039;, &amp;#039;mvs_texturing&amp;#039;, &amp;#039;odm_georeferencing&amp;#039;, &amp;#039;odm_orthophoto&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm --rerun-from odm_georeferencing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check the output ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
running /code/build/bin/odm_georef -bundleFile /code/opensfm/bundle_r000.out -imagesPath /code/images -imagesListPath /code/opensfm/list_r000.out -inputFile /code/odm_texturing/odm_textured_model.obj -outputFile /code/odm_texturing/odm_textured_model_geo.obj -inputPointCloudFile /code/opensfm/depthmaps/merged.ply -outputPointCloudFile /code/odm_georeferencing/odm_georeferenced_model.ply  -logFile /code/odm_georeferencing/odm_georeferencing_log.txt -outputTransformFile /code/odm_georeferencing/odm_georeferencing_transform.txt -georefFileOutputPath /code/odm_georeferencing/odm_georeferencing_model_geo.txt -gcpFile gcp_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt&lt;br /&gt;
[DEBUG]   running /code/SuperBuild/build/pdal/bin/pdal pipeline -i /code/odm_georeferencing/las.json --readers.ply.filename=/code/odm_georeferencing/odm_georeferenced_model.ply&lt;br /&gt;
PDAL: writers.las: Can&amp;#039;t write LAZ output.  PDAL not built with LASzip or LAZperf.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pipeline&amp;quot;: [&lt;br /&gt;
    &amp;quot;untransformed.ply&amp;quot;,&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;writers.las&amp;quot;,&lt;br /&gt;
      &amp;quot;a_srs&amp;quot;: &amp;quot;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;quot;,&lt;br /&gt;
      &amp;quot;offset_x&amp;quot;: &amp;quot;334230.28164&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_y&amp;quot;: &amp;quot;6208095.41529&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_z&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;compression&amp;quot;: &amp;quot;laszip&amp;quot;,&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;/code/odm_georeferencing/odm_georeferenced_model.laz&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-17 14-34-10.png]]&lt;br /&gt;
&lt;br /&gt;
=== Local pdal+LASzip ===&lt;br /&gt;
&lt;br /&gt;
Build from source!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/bin/pdal pipeline -i las.json --readers.ply.filename=odm_georeferenced_model.ply&lt;br /&gt;
-rw-r--r-- 1 jgr jgr  22661583 jun 17 11:47 odm_georeferenced_model.laz&lt;br /&gt;
-rw-r--r-- 1 jgr jgr 121586206 jun 17 11:42 odm_georeferenced_model.ply&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Previous result ====&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-16 12-26-36.png]]&lt;br /&gt;
&lt;br /&gt;
==== New result ====&lt;br /&gt;
&lt;br /&gt;
=== Create Pull Request ===&lt;br /&gt;
&lt;br /&gt;
close #845&lt;br /&gt;
&lt;br /&gt;
=== Other fixes ===&lt;br /&gt;
&lt;br /&gt;
epsg versus EPSG&lt;br /&gt;
&lt;br /&gt;
== Point cloud classification ==&lt;br /&gt;
&lt;br /&gt;
[DEBUG]   running pdal info --boundary --filters.hexbin.edge_length=1 --filters.hexbin.threshold=0 /code/odm_georeferencing/odm_georeferenced_model.filtered.las &amp;gt; /code/odm_georeferencing/odm_georeferenced_model.boundary.json&lt;br /&gt;
PDAL: Argument references invalid/unused stage: &amp;#039;filters.hexbin&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=885</id>
		<title>Running OpenDroneMap</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=885"/>
		<updated>2019-02-03T17:59:00Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Drone Workshop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Drone Workshop ===&lt;br /&gt;
&lt;br /&gt;
1. Flight&lt;br /&gt;
&lt;br /&gt;
2. Data products&lt;br /&gt;
&lt;br /&gt;
2.1 Orthophoto&lt;br /&gt;
&lt;br /&gt;
Discussion: GCP, impact on the elevation model&lt;br /&gt;
&lt;br /&gt;
Swipe tool&lt;br /&gt;
&lt;br /&gt;
Point value: check ortho values&lt;br /&gt;
&lt;br /&gt;
2.2 DEM/DSM&lt;br /&gt;
&lt;br /&gt;
Discussion: difference between&lt;br /&gt;
&lt;br /&gt;
Raster value&lt;br /&gt;
&lt;br /&gt;
Profile tool&lt;br /&gt;
&lt;br /&gt;
Visualization: hillshade&lt;br /&gt;
&lt;br /&gt;
http://plas.io/&lt;br /&gt;
&lt;br /&gt;
https://pdal.io/tutorial/pcl_ground/index.html#pcl-ground&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-- original&lt;br /&gt;
pdal translate -i /code/odm_georeferencing/odm_georeferenced_model.laz -o /code/odm_georeferencing/odm_georeferenced_model.laz smrf --filters.smrf.cell=2 --filters.smrf.slope=10 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- testing: not working! The original odm_georeferenced_model.laz is lost&lt;br /&gt;
pdal translate -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_2.laz smrf --filters.smrf.cell=2 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
pdal ground -i odm_georeferencing/odm_georeferenced_model.ply -o odm_georeferencing/odm_georeferenced_model_3.laz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.3 Point cloud&lt;br /&gt;
&lt;br /&gt;
What we get from the software&lt;br /&gt;
&lt;br /&gt;
Visualization tools&lt;br /&gt;
&lt;br /&gt;
3. Processing data products&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1 Better classification&lt;br /&gt;
&lt;br /&gt;
lasground&lt;br /&gt;
&lt;br /&gt;
3.2 lasheight&lt;br /&gt;
&lt;br /&gt;
3.3 lasclassify&lt;br /&gt;
&lt;br /&gt;
=== DJI Mavic 2 PRO ===&lt;br /&gt;
&lt;br /&gt;
[https://forum.dji.com/thread-167017-1-1.html Sensor size], [https://www.youtube.com/watch?v=xIncVCe6pg0 Video about sensor size]&lt;br /&gt;
&lt;br /&gt;
==== Erro ====&lt;br /&gt;
&lt;br /&gt;
Culpado: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;/home/jgr/PycharmProjects/OpenDroneMap/modules/odm_extract_utm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todas as imagens estão com Exif.GPSInfo.GPSAltitude = 0.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
      if (lon == 0.0 || lat == 0.0 || alt == 0.0) {&lt;br /&gt;
        std::string error(&amp;quot;Failed parsing GPS position for &amp;quot; + imageFilename);&lt;br /&gt;
        throw UtmExtractorException(error);&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remendo ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.0 m&lt;br /&gt;
&lt;br /&gt;
exiv2 -M&amp;quot;set Exif.GPSInfo.GPSAltitude Rational 1/10&amp;quot; DJI_0210.JPG&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.1 m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chamada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Wrote images database: /code/images.json&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_extract_utm -imagesPath /code/images/ -imageListFile /code/img_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt  -logFile /code/odm_georeferencing/odm_georeferencing_utm_log.txt&lt;br /&gt;
Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[WARNING] Could not generate coordinates file. Ignore if there is a GCP file. Error: Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Building objmodel:&lt;br /&gt;
	Saving model... done.&lt;br /&gt;
Whole texturing procedure took: 225.586s&lt;br /&gt;
[INFO]    Running ODM Texturing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell&lt;br /&gt;
[WARNING] Georeferencing failed. Make sure your photos have geotags in the EXIF or you have provided a GCP file. &lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM DEM Cell&lt;br /&gt;
[INFO]    Classify: True&lt;br /&gt;
[INFO]    Create DSM: True&lt;br /&gt;
[INFO]    Create DTM: True&lt;br /&gt;
[INFO]    DEM input file /code/odm_georeferencing/odm_georeferenced_model.las found: False&lt;br /&gt;
[WARNING] DEM will not be generated&lt;br /&gt;
[INFO]    Running ODM DEM Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Orthophoto Cell&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_orthophoto -inputFile /code/odm_texturing/odm_textured_model.obj -logFile /code/odm_orthophoto/odm_orthophoto_log.txt -outputFile /code/odm_orthophoto/odm_orthophoto.png -resolution 10.0  -outputCornerFile /code/odm_orthophoto/odm_orthophoto_corners.txt&lt;br /&gt;
[WARNING] No geo-referenced orthophoto created due to missing geo-referencing or corner coordinates.&lt;br /&gt;
[INFO]    Running ODM OrthoPhoto Cell - Finished&lt;br /&gt;
[INFO]    OpenDroneMap app finished - Sat Dec 29 22:12:22  2018&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running docker OpenDroneMap ===&lt;br /&gt;
&lt;br /&gt;
==== Update to last OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker pull opendronemap/opendronemap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
# Install docker&lt;br /&gt;
# Add you user to docker group&lt;br /&gt;
# sudo -H pip install requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir OpenDroneMap&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git clone git@github.com:OpenDroneMap/odm_data_aukerman.git&lt;br /&gt;
cd odm_data_aukerman&lt;br /&gt;
&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
ls -l $odmi&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
opendronemap/opendronemap --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sem GCP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado/&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: os ortos estão a ficar com muitas interferências do modelo 3D, nas áreas urbanas.&lt;br /&gt;
&lt;br /&gt;
Related problem: http://community.opendronemap.org/t/buildings/929&lt;br /&gt;
&lt;br /&gt;
Será que voar com a câmara a 75 graus ajuda? Fiz um voo com Double Grid, com a camara a 70 graus (default do Pix4d capture).&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
Install Docker&lt;br /&gt;
&lt;br /&gt;
Configure docker (more CPU, more memory)&lt;br /&gt;
&lt;br /&gt;
CPUs: 6&lt;br /&gt;
&lt;br /&gt;
Memory: 12032 Mb&lt;br /&gt;
&lt;br /&gt;
Swap: 4096 Mb&lt;br /&gt;
&lt;br /&gt;
Create the projet folder structure&lt;br /&gt;
&lt;br /&gt;
Project folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\&lt;br /&gt;
&lt;br /&gt;
Image folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\images&lt;br /&gt;
&lt;br /&gt;
Create folders for the OpenDroneMap output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd Documents\uav_sckovskolen_feb20018_incl_GCP&lt;br /&gt;
md odm_orthophoto&lt;br /&gt;
md odm_texturing&lt;br /&gt;
md odm_georeferencing&lt;br /&gt;
md odm_meshing&lt;br /&gt;
md opensfm&lt;br /&gt;
md odm_dem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $pwd/images:/code/images -v $pwd/odm_orthophoto:/code/odm_orthophoto -v $pwd/odm_texturing:/code/odm_texturing -v $pwd/odm_georeferencing:/code/odm_georeferencing -v $pwd/odm_meshing:/code/odm_meshing -v $pwd/opensfm:/code/opensfm -v $pwd/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado2xgrid&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0 --mesh-octree-depth 10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer (update) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo chown -R jgr:jgr *&lt;br /&gt;
git clone https://github.com/mapillary/OpenSfM.git&lt;br /&gt;
cd OpenSfM/viewer&lt;br /&gt;
ln -s ../../images .&lt;br /&gt;
python2 -m SimpleHTTPServer 7777&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ sudo chown -R jgr:jgr *&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cp -r ~/dev/OpenSfM/viewer opensfm&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cd opensfm/&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ ln -s ../images .&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ python -m SimpleHTTPServer&lt;br /&gt;
Serving HTTP on 0.0.0.0 port 8000 ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://localhost:8000/viewer/reconstruction.html#file=/reconstruction.json&lt;br /&gt;
&lt;br /&gt;
==== OpenSFM view images on QGIS ====&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/images/DJI_0595.JPG&lt;br /&gt;
&lt;br /&gt;
-8.7515052, 40.6114774, 22.4100000, 2018:08:23 10:05:11&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/opensfm/reference_lla.json&lt;br /&gt;
&lt;br /&gt;
Centro aproximado do ortophoto resultante (adicionado ao projeto QGIS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;latitude&amp;quot;: 40.61272372901514, &lt;br /&gt;
    &amp;quot;altitude&amp;quot;: 0, &lt;br /&gt;
    &amp;quot;longitude&amp;quot;: -8.752983409509966&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;quot;DJI_0595.JPG&amp;quot;: {&lt;br /&gt;
                &amp;quot;orientation&amp;quot;: 1, &lt;br /&gt;
                &amp;quot;camera&amp;quot;: &amp;quot;v2 dji fc220 4000 3000 perspective 0.7222&amp;quot;, &lt;br /&gt;
                &amp;quot;gps_position&amp;quot;: [&lt;br /&gt;
                    125.10012061257521, &lt;br /&gt;
                    -138.4010433354888, &lt;br /&gt;
                    22.407269606366754&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;gps_dop&amp;quot;: 15.0, &lt;br /&gt;
                &amp;quot;rotation&amp;quot;: [&lt;br /&gt;
                    2.1445873611073996, &lt;br /&gt;
                    -2.2856282209697523, &lt;br /&gt;
                    0.20066193557381898&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;translation&amp;quot;: [&lt;br /&gt;
                    -132.67853610360638, &lt;br /&gt;
                    133.40968771622724, &lt;br /&gt;
                    1.9668907291333997&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;capture_time&amp;quot;: 1535018711.0&lt;br /&gt;
            }, &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://github.com/mapillary/OpenSfM/blob/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ wget https://raw.githubusercontent.com/mapillary/OpenSfM/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
NÃO FUNCIONOU...&lt;br /&gt;
&lt;br /&gt;
export_geocoords.py -dataset costanova&lt;br /&gt;
&lt;br /&gt;
Ver: https://github.com/mapillary/OpenSfM/issues/183&lt;br /&gt;
&lt;br /&gt;
=== webODM ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/OpenDroneMap/WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input&lt;br /&gt;
cd WebODM&lt;br /&gt;
./webodm.sh start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jgrocha/xxbatata&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
&lt;br /&gt;
CloudCompare&lt;br /&gt;
&lt;br /&gt;
QGIS Plugin Photo2Shape&lt;br /&gt;
&lt;br /&gt;
Criar uma shapefile photos&lt;br /&gt;
&lt;br /&gt;
Nas propriedades, no campo &amp;lt;syntaxhighlight inline lang=&amp;quot;bash&amp;quot;&amp;gt;filepath&amp;lt;/syntaxhighlight&amp;gt; mudar para o tipo Fotografia.&lt;br /&gt;
&lt;br /&gt;
=== Ground Control File ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo -7.778152 41.833203 957.575989  | cs2cs +init=epsg:4326 +to +init=epsg:3763&lt;br /&gt;
echo 708610.702 6209972.025 26.085 | cs2cs +init=epsg:25832 +to +init=epsg:32633&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:32633 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;#039;&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:25832 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs &amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make my own OpenDroneMap image ==&lt;br /&gt;
&lt;br /&gt;
=== Fork and clone ODM repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone git@github.com:jgrocha/OpenDroneMap.git&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git checkout -b generate-laz-output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change source ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Build new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/PycharmProjects/OpenDroneMap$ docker build --no-cache -t odm_altitude_0 .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t odm_laz_image .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cd &amp;quot;/mnt/bonn/nextCloud/Photos/DJI MAVIC PRO 2 Paradela/100MEDIA&amp;quot;&lt;br /&gt;
cd /mnt/bonn/nextCloud/Photos&lt;br /&gt;
ln -s &amp;#039;DJI MAVIC PRO 2 Paradela/100MEDIA&amp;#039; images&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
docker run --cpus 8 -it --rm -v $odmi/images:/code/images -v $odmi/odm_orthophoto:/code/odm_orthophoto -v $odmi/odm_texturing:/code/odm_texturing -v $odmi/odm_georeferencing:/code/odm_georeferencing -v $odmi/odm_meshing:/code/odm_meshing -v $odmi/opensfm:/code/opensfm -v $odmi/odm_dem:/code/odm_dem odm_altitude_0 --dtm --dsm --force-ccd 13.2&lt;br /&gt;
# --orthophoto-resolution 2.0 --mesh-octree-depth 2 --opensfm-processes 8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
sudo rm -rf odm_georeferencing odm_meshing odm_orthophoto odm_texturing opensfm&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options for rerunning are: &amp;#039;resize&amp;#039;, &amp;#039;opensfm&amp;#039;, &amp;#039;slam&amp;#039;, &amp;#039;cmvs&amp;#039;, &amp;#039;pmvs&amp;#039;, &amp;#039;odm_meshing&amp;#039;, &amp;#039;mvs_texturing&amp;#039;, &amp;#039;odm_georeferencing&amp;#039;, &amp;#039;odm_orthophoto&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm --rerun-from odm_georeferencing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check the output ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
running /code/build/bin/odm_georef -bundleFile /code/opensfm/bundle_r000.out -imagesPath /code/images -imagesListPath /code/opensfm/list_r000.out -inputFile /code/odm_texturing/odm_textured_model.obj -outputFile /code/odm_texturing/odm_textured_model_geo.obj -inputPointCloudFile /code/opensfm/depthmaps/merged.ply -outputPointCloudFile /code/odm_georeferencing/odm_georeferenced_model.ply  -logFile /code/odm_georeferencing/odm_georeferencing_log.txt -outputTransformFile /code/odm_georeferencing/odm_georeferencing_transform.txt -georefFileOutputPath /code/odm_georeferencing/odm_georeferencing_model_geo.txt -gcpFile gcp_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt&lt;br /&gt;
[DEBUG]   running /code/SuperBuild/build/pdal/bin/pdal pipeline -i /code/odm_georeferencing/las.json --readers.ply.filename=/code/odm_georeferencing/odm_georeferenced_model.ply&lt;br /&gt;
PDAL: writers.las: Can&amp;#039;t write LAZ output.  PDAL not built with LASzip or LAZperf.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pipeline&amp;quot;: [&lt;br /&gt;
    &amp;quot;untransformed.ply&amp;quot;,&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;writers.las&amp;quot;,&lt;br /&gt;
      &amp;quot;a_srs&amp;quot;: &amp;quot;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;quot;,&lt;br /&gt;
      &amp;quot;offset_x&amp;quot;: &amp;quot;334230.28164&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_y&amp;quot;: &amp;quot;6208095.41529&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_z&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;compression&amp;quot;: &amp;quot;laszip&amp;quot;,&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;/code/odm_georeferencing/odm_georeferenced_model.laz&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-17 14-34-10.png]]&lt;br /&gt;
&lt;br /&gt;
=== Local pdal+LASzip ===&lt;br /&gt;
&lt;br /&gt;
Build from source!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/bin/pdal pipeline -i las.json --readers.ply.filename=odm_georeferenced_model.ply&lt;br /&gt;
-rw-r--r-- 1 jgr jgr  22661583 jun 17 11:47 odm_georeferenced_model.laz&lt;br /&gt;
-rw-r--r-- 1 jgr jgr 121586206 jun 17 11:42 odm_georeferenced_model.ply&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Previous result ====&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-16 12-26-36.png]]&lt;br /&gt;
&lt;br /&gt;
==== New result ====&lt;br /&gt;
&lt;br /&gt;
=== Create Pull Request ===&lt;br /&gt;
&lt;br /&gt;
close #845&lt;br /&gt;
&lt;br /&gt;
=== Other fixes ===&lt;br /&gt;
&lt;br /&gt;
epsg versus EPSG&lt;br /&gt;
&lt;br /&gt;
== Point cloud classification ==&lt;br /&gt;
&lt;br /&gt;
[DEBUG]   running pdal info --boundary --filters.hexbin.edge_length=1 --filters.hexbin.threshold=0 /code/odm_georeferencing/odm_georeferenced_model.filtered.las &amp;gt; /code/odm_georeferencing/odm_georeferenced_model.boundary.json&lt;br /&gt;
PDAL: Argument references invalid/unused stage: &amp;#039;filters.hexbin&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=883</id>
		<title>Running OpenDroneMap</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=883"/>
		<updated>2019-02-03T17:39:21Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Drone Workshop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Drone Workshop ===&lt;br /&gt;
&lt;br /&gt;
1. Flight&lt;br /&gt;
&lt;br /&gt;
2. Data products&lt;br /&gt;
&lt;br /&gt;
2.1 Orthophoto&lt;br /&gt;
&lt;br /&gt;
Discussion: GCP, impact on the elevation model&lt;br /&gt;
&lt;br /&gt;
Swipe tool&lt;br /&gt;
&lt;br /&gt;
Point value: check ortho values&lt;br /&gt;
&lt;br /&gt;
2.2 DEM/DSM&lt;br /&gt;
&lt;br /&gt;
Discussion: difference between&lt;br /&gt;
&lt;br /&gt;
Raster value&lt;br /&gt;
&lt;br /&gt;
Profile tool&lt;br /&gt;
&lt;br /&gt;
Visualization: hillshade&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-- original&lt;br /&gt;
pdal translate -i /code/odm_georeferencing/odm_georeferenced_model.laz -o /code/odm_georeferencing/odm_georeferenced_model.laz smrf --filters.smrf.cell=2 --filters.smrf.slope=10 --filters.smrf.window=10&lt;br /&gt;
&lt;br /&gt;
-- testing: not working! The original odm_georeferenced_model.laz is lost&lt;br /&gt;
pdal translate -i odm_georeferencing/odm_georeferenced_model.laz -o odm_georeferencing/odm_georeferenced_model.laz smrf --filters.smrf.cell=2 --filters.smrf.slope=10 --filters.smrf.window=10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.3 Point cloud&lt;br /&gt;
&lt;br /&gt;
What we get from the software&lt;br /&gt;
&lt;br /&gt;
Visualization tools&lt;br /&gt;
&lt;br /&gt;
3. Processing data products&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1 Better classification&lt;br /&gt;
&lt;br /&gt;
lasground&lt;br /&gt;
&lt;br /&gt;
3.2 lasheight&lt;br /&gt;
&lt;br /&gt;
3.3 lasclassify&lt;br /&gt;
&lt;br /&gt;
=== DJI Mavic 2 PRO ===&lt;br /&gt;
&lt;br /&gt;
[https://forum.dji.com/thread-167017-1-1.html Sensor size], [https://www.youtube.com/watch?v=xIncVCe6pg0 Video about sensor size]&lt;br /&gt;
&lt;br /&gt;
==== Erro ====&lt;br /&gt;
&lt;br /&gt;
Culpado: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;/home/jgr/PycharmProjects/OpenDroneMap/modules/odm_extract_utm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todas as imagens estão com Exif.GPSInfo.GPSAltitude = 0.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
      if (lon == 0.0 || lat == 0.0 || alt == 0.0) {&lt;br /&gt;
        std::string error(&amp;quot;Failed parsing GPS position for &amp;quot; + imageFilename);&lt;br /&gt;
        throw UtmExtractorException(error);&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remendo ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.0 m&lt;br /&gt;
&lt;br /&gt;
exiv2 -M&amp;quot;set Exif.GPSInfo.GPSAltitude Rational 1/10&amp;quot; DJI_0210.JPG&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.1 m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chamada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Wrote images database: /code/images.json&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_extract_utm -imagesPath /code/images/ -imageListFile /code/img_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt  -logFile /code/odm_georeferencing/odm_georeferencing_utm_log.txt&lt;br /&gt;
Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[WARNING] Could not generate coordinates file. Ignore if there is a GCP file. Error: Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Building objmodel:&lt;br /&gt;
	Saving model... done.&lt;br /&gt;
Whole texturing procedure took: 225.586s&lt;br /&gt;
[INFO]    Running ODM Texturing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell&lt;br /&gt;
[WARNING] Georeferencing failed. Make sure your photos have geotags in the EXIF or you have provided a GCP file. &lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM DEM Cell&lt;br /&gt;
[INFO]    Classify: True&lt;br /&gt;
[INFO]    Create DSM: True&lt;br /&gt;
[INFO]    Create DTM: True&lt;br /&gt;
[INFO]    DEM input file /code/odm_georeferencing/odm_georeferenced_model.las found: False&lt;br /&gt;
[WARNING] DEM will not be generated&lt;br /&gt;
[INFO]    Running ODM DEM Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Orthophoto Cell&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_orthophoto -inputFile /code/odm_texturing/odm_textured_model.obj -logFile /code/odm_orthophoto/odm_orthophoto_log.txt -outputFile /code/odm_orthophoto/odm_orthophoto.png -resolution 10.0  -outputCornerFile /code/odm_orthophoto/odm_orthophoto_corners.txt&lt;br /&gt;
[WARNING] No geo-referenced orthophoto created due to missing geo-referencing or corner coordinates.&lt;br /&gt;
[INFO]    Running ODM OrthoPhoto Cell - Finished&lt;br /&gt;
[INFO]    OpenDroneMap app finished - Sat Dec 29 22:12:22  2018&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running docker OpenDroneMap ===&lt;br /&gt;
&lt;br /&gt;
==== Update to last OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker pull opendronemap/opendronemap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
# Install docker&lt;br /&gt;
# Add you user to docker group&lt;br /&gt;
# sudo -H pip install requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir OpenDroneMap&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git clone git@github.com:OpenDroneMap/odm_data_aukerman.git&lt;br /&gt;
cd odm_data_aukerman&lt;br /&gt;
&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
ls -l $odmi&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
opendronemap/opendronemap --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sem GCP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado/&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: os ortos estão a ficar com muitas interferências do modelo 3D, nas áreas urbanas.&lt;br /&gt;
&lt;br /&gt;
Related problem: http://community.opendronemap.org/t/buildings/929&lt;br /&gt;
&lt;br /&gt;
Será que voar com a câmara a 75 graus ajuda? Fiz um voo com Double Grid, com a camara a 70 graus (default do Pix4d capture).&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
Install Docker&lt;br /&gt;
&lt;br /&gt;
Configure docker (more CPU, more memory)&lt;br /&gt;
&lt;br /&gt;
CPUs: 6&lt;br /&gt;
&lt;br /&gt;
Memory: 12032 Mb&lt;br /&gt;
&lt;br /&gt;
Swap: 4096 Mb&lt;br /&gt;
&lt;br /&gt;
Create the projet folder structure&lt;br /&gt;
&lt;br /&gt;
Project folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\&lt;br /&gt;
&lt;br /&gt;
Image folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\images&lt;br /&gt;
&lt;br /&gt;
Create folders for the OpenDroneMap output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd Documents\uav_sckovskolen_feb20018_incl_GCP&lt;br /&gt;
md odm_orthophoto&lt;br /&gt;
md odm_texturing&lt;br /&gt;
md odm_georeferencing&lt;br /&gt;
md odm_meshing&lt;br /&gt;
md opensfm&lt;br /&gt;
md odm_dem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $pwd/images:/code/images -v $pwd/odm_orthophoto:/code/odm_orthophoto -v $pwd/odm_texturing:/code/odm_texturing -v $pwd/odm_georeferencing:/code/odm_georeferencing -v $pwd/odm_meshing:/code/odm_meshing -v $pwd/opensfm:/code/opensfm -v $pwd/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado2xgrid&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0 --mesh-octree-depth 10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer (update) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo chown -R jgr:jgr *&lt;br /&gt;
git clone https://github.com/mapillary/OpenSfM.git&lt;br /&gt;
cd OpenSfM/viewer&lt;br /&gt;
ln -s ../../images .&lt;br /&gt;
python2 -m SimpleHTTPServer 7777&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ sudo chown -R jgr:jgr *&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cp -r ~/dev/OpenSfM/viewer opensfm&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cd opensfm/&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ ln -s ../images .&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ python -m SimpleHTTPServer&lt;br /&gt;
Serving HTTP on 0.0.0.0 port 8000 ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://localhost:8000/viewer/reconstruction.html#file=/reconstruction.json&lt;br /&gt;
&lt;br /&gt;
==== OpenSFM view images on QGIS ====&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/images/DJI_0595.JPG&lt;br /&gt;
&lt;br /&gt;
-8.7515052, 40.6114774, 22.4100000, 2018:08:23 10:05:11&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/opensfm/reference_lla.json&lt;br /&gt;
&lt;br /&gt;
Centro aproximado do ortophoto resultante (adicionado ao projeto QGIS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;latitude&amp;quot;: 40.61272372901514, &lt;br /&gt;
    &amp;quot;altitude&amp;quot;: 0, &lt;br /&gt;
    &amp;quot;longitude&amp;quot;: -8.752983409509966&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;quot;DJI_0595.JPG&amp;quot;: {&lt;br /&gt;
                &amp;quot;orientation&amp;quot;: 1, &lt;br /&gt;
                &amp;quot;camera&amp;quot;: &amp;quot;v2 dji fc220 4000 3000 perspective 0.7222&amp;quot;, &lt;br /&gt;
                &amp;quot;gps_position&amp;quot;: [&lt;br /&gt;
                    125.10012061257521, &lt;br /&gt;
                    -138.4010433354888, &lt;br /&gt;
                    22.407269606366754&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;gps_dop&amp;quot;: 15.0, &lt;br /&gt;
                &amp;quot;rotation&amp;quot;: [&lt;br /&gt;
                    2.1445873611073996, &lt;br /&gt;
                    -2.2856282209697523, &lt;br /&gt;
                    0.20066193557381898&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;translation&amp;quot;: [&lt;br /&gt;
                    -132.67853610360638, &lt;br /&gt;
                    133.40968771622724, &lt;br /&gt;
                    1.9668907291333997&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;capture_time&amp;quot;: 1535018711.0&lt;br /&gt;
            }, &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://github.com/mapillary/OpenSfM/blob/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ wget https://raw.githubusercontent.com/mapillary/OpenSfM/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
NÃO FUNCIONOU...&lt;br /&gt;
&lt;br /&gt;
export_geocoords.py -dataset costanova&lt;br /&gt;
&lt;br /&gt;
Ver: https://github.com/mapillary/OpenSfM/issues/183&lt;br /&gt;
&lt;br /&gt;
=== webODM ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/OpenDroneMap/WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input&lt;br /&gt;
cd WebODM&lt;br /&gt;
./webodm.sh start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jgrocha/xxbatata&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
&lt;br /&gt;
CloudCompare&lt;br /&gt;
&lt;br /&gt;
QGIS Plugin Photo2Shape&lt;br /&gt;
&lt;br /&gt;
Criar uma shapefile photos&lt;br /&gt;
&lt;br /&gt;
Nas propriedades, no campo &amp;lt;syntaxhighlight inline lang=&amp;quot;bash&amp;quot;&amp;gt;filepath&amp;lt;/syntaxhighlight&amp;gt; mudar para o tipo Fotografia.&lt;br /&gt;
&lt;br /&gt;
=== Ground Control File ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo -7.778152 41.833203 957.575989  | cs2cs +init=epsg:4326 +to +init=epsg:3763&lt;br /&gt;
echo 708610.702 6209972.025 26.085 | cs2cs +init=epsg:25832 +to +init=epsg:32633&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:32633 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;#039;&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:25832 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs &amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make my own OpenDroneMap image ==&lt;br /&gt;
&lt;br /&gt;
=== Fork and clone ODM repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone git@github.com:jgrocha/OpenDroneMap.git&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git checkout -b generate-laz-output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change source ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Build new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/PycharmProjects/OpenDroneMap$ docker build --no-cache -t odm_altitude_0 .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t odm_laz_image .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cd &amp;quot;/mnt/bonn/nextCloud/Photos/DJI MAVIC PRO 2 Paradela/100MEDIA&amp;quot;&lt;br /&gt;
cd /mnt/bonn/nextCloud/Photos&lt;br /&gt;
ln -s &amp;#039;DJI MAVIC PRO 2 Paradela/100MEDIA&amp;#039; images&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
docker run --cpus 8 -it --rm -v $odmi/images:/code/images -v $odmi/odm_orthophoto:/code/odm_orthophoto -v $odmi/odm_texturing:/code/odm_texturing -v $odmi/odm_georeferencing:/code/odm_georeferencing -v $odmi/odm_meshing:/code/odm_meshing -v $odmi/opensfm:/code/opensfm -v $odmi/odm_dem:/code/odm_dem odm_altitude_0 --dtm --dsm --force-ccd 13.2&lt;br /&gt;
# --orthophoto-resolution 2.0 --mesh-octree-depth 2 --opensfm-processes 8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
sudo rm -rf odm_georeferencing odm_meshing odm_orthophoto odm_texturing opensfm&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options for rerunning are: &amp;#039;resize&amp;#039;, &amp;#039;opensfm&amp;#039;, &amp;#039;slam&amp;#039;, &amp;#039;cmvs&amp;#039;, &amp;#039;pmvs&amp;#039;, &amp;#039;odm_meshing&amp;#039;, &amp;#039;mvs_texturing&amp;#039;, &amp;#039;odm_georeferencing&amp;#039;, &amp;#039;odm_orthophoto&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm --rerun-from odm_georeferencing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check the output ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
running /code/build/bin/odm_georef -bundleFile /code/opensfm/bundle_r000.out -imagesPath /code/images -imagesListPath /code/opensfm/list_r000.out -inputFile /code/odm_texturing/odm_textured_model.obj -outputFile /code/odm_texturing/odm_textured_model_geo.obj -inputPointCloudFile /code/opensfm/depthmaps/merged.ply -outputPointCloudFile /code/odm_georeferencing/odm_georeferenced_model.ply  -logFile /code/odm_georeferencing/odm_georeferencing_log.txt -outputTransformFile /code/odm_georeferencing/odm_georeferencing_transform.txt -georefFileOutputPath /code/odm_georeferencing/odm_georeferencing_model_geo.txt -gcpFile gcp_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt&lt;br /&gt;
[DEBUG]   running /code/SuperBuild/build/pdal/bin/pdal pipeline -i /code/odm_georeferencing/las.json --readers.ply.filename=/code/odm_georeferencing/odm_georeferenced_model.ply&lt;br /&gt;
PDAL: writers.las: Can&amp;#039;t write LAZ output.  PDAL not built with LASzip or LAZperf.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pipeline&amp;quot;: [&lt;br /&gt;
    &amp;quot;untransformed.ply&amp;quot;,&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;writers.las&amp;quot;,&lt;br /&gt;
      &amp;quot;a_srs&amp;quot;: &amp;quot;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;quot;,&lt;br /&gt;
      &amp;quot;offset_x&amp;quot;: &amp;quot;334230.28164&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_y&amp;quot;: &amp;quot;6208095.41529&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_z&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;compression&amp;quot;: &amp;quot;laszip&amp;quot;,&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;/code/odm_georeferencing/odm_georeferenced_model.laz&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-17 14-34-10.png]]&lt;br /&gt;
&lt;br /&gt;
=== Local pdal+LASzip ===&lt;br /&gt;
&lt;br /&gt;
Build from source!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/bin/pdal pipeline -i las.json --readers.ply.filename=odm_georeferenced_model.ply&lt;br /&gt;
-rw-r--r-- 1 jgr jgr  22661583 jun 17 11:47 odm_georeferenced_model.laz&lt;br /&gt;
-rw-r--r-- 1 jgr jgr 121586206 jun 17 11:42 odm_georeferenced_model.ply&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Previous result ====&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-16 12-26-36.png]]&lt;br /&gt;
&lt;br /&gt;
==== New result ====&lt;br /&gt;
&lt;br /&gt;
=== Create Pull Request ===&lt;br /&gt;
&lt;br /&gt;
close #845&lt;br /&gt;
&lt;br /&gt;
=== Other fixes ===&lt;br /&gt;
&lt;br /&gt;
epsg versus EPSG&lt;br /&gt;
&lt;br /&gt;
== Point cloud classification ==&lt;br /&gt;
&lt;br /&gt;
[DEBUG]   running pdal info --boundary --filters.hexbin.edge_length=1 --filters.hexbin.threshold=0 /code/odm_georeferencing/odm_georeferenced_model.filtered.las &amp;gt; /code/odm_georeferencing/odm_georeferenced_model.boundary.json&lt;br /&gt;
PDAL: Argument references invalid/unused stage: &amp;#039;filters.hexbin&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
	<entry>
		<id>https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=881</id>
		<title>Running OpenDroneMap</title>
		<link rel="alternate" type="text/html" href="https://sig.geomaster.pt/index.php?title=Running_OpenDroneMap&amp;diff=881"/>
		<updated>2019-02-03T17:34:14Z</updated>

		<summary type="html">&lt;p&gt;Jgrocha: /* Drone Workshop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Drone Workshop ===&lt;br /&gt;
&lt;br /&gt;
1. Flight&lt;br /&gt;
&lt;br /&gt;
2. Data products&lt;br /&gt;
&lt;br /&gt;
2.1 Orthophoto&lt;br /&gt;
&lt;br /&gt;
Discussion: GCP, impact on the elevation model&lt;br /&gt;
&lt;br /&gt;
Swipe tool&lt;br /&gt;
&lt;br /&gt;
Point value: check ortho values&lt;br /&gt;
&lt;br /&gt;
2.2 DEM/DSM&lt;br /&gt;
&lt;br /&gt;
Discussion: difference between&lt;br /&gt;
&lt;br /&gt;
Raster value&lt;br /&gt;
&lt;br /&gt;
Profile tool&lt;br /&gt;
&lt;br /&gt;
Visualization: hillshade&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pdal translate -i /code/odm_georeferencing/odm_georeferenced_model.laz -o /code/odm_georeferencing/odm_georeferenced_model.laz smrf --filters.smrf.cell=2 --filters.smrf.slope=10 --filters.smrf.window=10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.3 Point cloud&lt;br /&gt;
&lt;br /&gt;
What we get from the software&lt;br /&gt;
&lt;br /&gt;
Visualization tools&lt;br /&gt;
&lt;br /&gt;
3. Processing data products&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1 Better classification&lt;br /&gt;
&lt;br /&gt;
lasground&lt;br /&gt;
&lt;br /&gt;
3.2 lasheight&lt;br /&gt;
&lt;br /&gt;
3.3 lasclassify&lt;br /&gt;
&lt;br /&gt;
=== DJI Mavic 2 PRO ===&lt;br /&gt;
&lt;br /&gt;
[https://forum.dji.com/thread-167017-1-1.html Sensor size], [https://www.youtube.com/watch?v=xIncVCe6pg0 Video about sensor size]&lt;br /&gt;
&lt;br /&gt;
==== Erro ====&lt;br /&gt;
&lt;br /&gt;
Culpado: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;/home/jgr/PycharmProjects/OpenDroneMap/modules/odm_extract_utm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todas as imagens estão com Exif.GPSInfo.GPSAltitude = 0.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
      if (lon == 0.0 || lat == 0.0 || alt == 0.0) {&lt;br /&gt;
        std::string error(&amp;quot;Failed parsing GPS position for &amp;quot; + imageFilename);&lt;br /&gt;
        throw UtmExtractorException(error);&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remendo ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.0 m&lt;br /&gt;
&lt;br /&gt;
exiv2 -M&amp;quot;set Exif.GPSInfo.GPSAltitude Rational 1/10&amp;quot; DJI_0210.JPG&lt;br /&gt;
exiv2 -pa DJI_0210.JPG&lt;br /&gt;
Exif.GPSInfo.GPSAltitude                     Rational    1  0.1 m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chamada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Wrote images database: /code/images.json&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_extract_utm -imagesPath /code/images/ -imageListFile /code/img_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt  -logFile /code/odm_georeferencing/odm_georeferencing_utm_log.txt&lt;br /&gt;
Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[INFO]    Found 106 usable images&lt;br /&gt;
[WARNING] Could not generate coordinates file. Ignore if there is a GCP file. Error: Error in OdmExtractUtm:&lt;br /&gt;
Failed parsing GPS position for DJI_0301.JPG&lt;br /&gt;
For more detailed information, see log file.&lt;br /&gt;
&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Building objmodel:&lt;br /&gt;
	Saving model... done.&lt;br /&gt;
Whole texturing procedure took: 225.586s&lt;br /&gt;
[INFO]    Running ODM Texturing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell&lt;br /&gt;
[WARNING] Georeferencing failed. Make sure your photos have geotags in the EXIF or you have provided a GCP file. &lt;br /&gt;
[INFO]    Running ODM Georeferencing Cell - Finished&lt;br /&gt;
[INFO]    Running ODM DEM Cell&lt;br /&gt;
[INFO]    Classify: True&lt;br /&gt;
[INFO]    Create DSM: True&lt;br /&gt;
[INFO]    Create DTM: True&lt;br /&gt;
[INFO]    DEM input file /code/odm_georeferencing/odm_georeferenced_model.las found: False&lt;br /&gt;
[WARNING] DEM will not be generated&lt;br /&gt;
[INFO]    Running ODM DEM Cell - Finished&lt;br /&gt;
[INFO]    Running ODM Orthophoto Cell&lt;br /&gt;
[DEBUG]   running /code/build/bin/odm_orthophoto -inputFile /code/odm_texturing/odm_textured_model.obj -logFile /code/odm_orthophoto/odm_orthophoto_log.txt -outputFile /code/odm_orthophoto/odm_orthophoto.png -resolution 10.0  -outputCornerFile /code/odm_orthophoto/odm_orthophoto_corners.txt&lt;br /&gt;
[WARNING] No geo-referenced orthophoto created due to missing geo-referencing or corner coordinates.&lt;br /&gt;
[INFO]    Running ODM OrthoPhoto Cell - Finished&lt;br /&gt;
[INFO]    OpenDroneMap app finished - Sat Dec 29 22:12:22  2018&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running docker OpenDroneMap ===&lt;br /&gt;
&lt;br /&gt;
==== Update to last OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker pull opendronemap/opendronemap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenDroneMap docker image ====&lt;br /&gt;
&lt;br /&gt;
# Install docker&lt;br /&gt;
# Add you user to docker group&lt;br /&gt;
# sudo -H pip install requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir OpenDroneMap&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git clone git@github.com:OpenDroneMap/odm_data_aukerman.git&lt;br /&gt;
cd odm_data_aukerman&lt;br /&gt;
&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
ls -l $odmi&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
opendronemap/opendronemap --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sem GCP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado/&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: os ortos estão a ficar com muitas interferências do modelo 3D, nas áreas urbanas.&lt;br /&gt;
&lt;br /&gt;
Related problem: http://community.opendronemap.org/t/buildings/929&lt;br /&gt;
&lt;br /&gt;
Será que voar com a câmara a 75 graus ajuda? Fiz um voo com Double Grid, com a camara a 70 graus (default do Pix4d capture).&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
Install Docker&lt;br /&gt;
&lt;br /&gt;
Configure docker (more CPU, more memory)&lt;br /&gt;
&lt;br /&gt;
CPUs: 6&lt;br /&gt;
&lt;br /&gt;
Memory: 12032 Mb&lt;br /&gt;
&lt;br /&gt;
Swap: 4096 Mb&lt;br /&gt;
&lt;br /&gt;
Create the projet folder structure&lt;br /&gt;
&lt;br /&gt;
Project folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\&lt;br /&gt;
&lt;br /&gt;
Image folder:&lt;br /&gt;
c:\Users\dlt265\Documents\uav_sckovskolen_feb20018_incl_GCP\images&lt;br /&gt;
&lt;br /&gt;
Create folders for the OpenDroneMap output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd Documents\uav_sckovskolen_feb20018_incl_GCP&lt;br /&gt;
md odm_orthophoto&lt;br /&gt;
md odm_texturing&lt;br /&gt;
md odm_georeferencing&lt;br /&gt;
md odm_meshing&lt;br /&gt;
md opensfm&lt;br /&gt;
md odm_dem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm -v $pwd/images:/code/images -v $pwd/odm_orthophoto:/code/odm_orthophoto -v $pwd/odm_texturing:/code/odm_texturing -v $pwd/odm_georeferencing:/code/odm_georeferencing -v $pwd/odm_meshing:/code/odm_meshing -v $pwd/opensfm:/code/opensfm -v $pwd/odm_dem:/code/odm_dem opendronemap/opendronemap --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Documentos/costanovadoprado2xgrid&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
-v $odmi/odm_dem:/code/odm_dem \&lt;br /&gt;
opendronemap/opendronemap --dtm --dsm --orthophoto-resolution 10.0 --mesh-octree-depth 10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer (update) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo chown -R jgr:jgr *&lt;br /&gt;
git clone https://github.com/mapillary/OpenSfM.git&lt;br /&gt;
cd OpenSfM/viewer&lt;br /&gt;
ln -s ../../images .&lt;br /&gt;
python2 -m SimpleHTTPServer 7777&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSFM viewer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ sudo chown -R jgr:jgr *&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cp -r ~/dev/OpenSfM/viewer opensfm&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado$ cd opensfm/&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ ln -s ../images .&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ python -m SimpleHTTPServer&lt;br /&gt;
Serving HTTP on 0.0.0.0 port 8000 ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://localhost:8000/viewer/reconstruction.html#file=/reconstruction.json&lt;br /&gt;
&lt;br /&gt;
==== OpenSFM view images on QGIS ====&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/images/DJI_0595.JPG&lt;br /&gt;
&lt;br /&gt;
-8.7515052, 40.6114774, 22.4100000, 2018:08:23 10:05:11&lt;br /&gt;
&lt;br /&gt;
/home/jgr/Documentos/costanovadoprado/opensfm/reference_lla.json&lt;br /&gt;
&lt;br /&gt;
Centro aproximado do ortophoto resultante (adicionado ao projeto QGIS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;latitude&amp;quot;: 40.61272372901514, &lt;br /&gt;
    &amp;quot;altitude&amp;quot;: 0, &lt;br /&gt;
    &amp;quot;longitude&amp;quot;: -8.752983409509966&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;quot;DJI_0595.JPG&amp;quot;: {&lt;br /&gt;
                &amp;quot;orientation&amp;quot;: 1, &lt;br /&gt;
                &amp;quot;camera&amp;quot;: &amp;quot;v2 dji fc220 4000 3000 perspective 0.7222&amp;quot;, &lt;br /&gt;
                &amp;quot;gps_position&amp;quot;: [&lt;br /&gt;
                    125.10012061257521, &lt;br /&gt;
                    -138.4010433354888, &lt;br /&gt;
                    22.407269606366754&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;gps_dop&amp;quot;: 15.0, &lt;br /&gt;
                &amp;quot;rotation&amp;quot;: [&lt;br /&gt;
                    2.1445873611073996, &lt;br /&gt;
                    -2.2856282209697523, &lt;br /&gt;
                    0.20066193557381898&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;translation&amp;quot;: [&lt;br /&gt;
                    -132.67853610360638, &lt;br /&gt;
                    133.40968771622724, &lt;br /&gt;
                    1.9668907291333997&lt;br /&gt;
                ], &lt;br /&gt;
                &amp;quot;capture_time&amp;quot;: 1535018711.0&lt;br /&gt;
            }, &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://github.com/mapillary/OpenSfM/blob/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/costanovadoprado/opensfm$ wget https://raw.githubusercontent.com/mapillary/OpenSfM/master/opensfm/commands/export_geocoords.py&lt;br /&gt;
&lt;br /&gt;
NÃO FUNCIONOU...&lt;br /&gt;
&lt;br /&gt;
export_geocoords.py -dataset costanova&lt;br /&gt;
&lt;br /&gt;
Ver: https://github.com/mapillary/OpenSfM/issues/183&lt;br /&gt;
&lt;br /&gt;
=== webODM ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/OpenDroneMap/WebODM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input&lt;br /&gt;
cd WebODM&lt;br /&gt;
./webodm.sh start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jgrocha/xxbatata&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
&lt;br /&gt;
CloudCompare&lt;br /&gt;
&lt;br /&gt;
QGIS Plugin Photo2Shape&lt;br /&gt;
&lt;br /&gt;
Criar uma shapefile photos&lt;br /&gt;
&lt;br /&gt;
Nas propriedades, no campo &amp;lt;syntaxhighlight inline lang=&amp;quot;bash&amp;quot;&amp;gt;filepath&amp;lt;/syntaxhighlight&amp;gt; mudar para o tipo Fotografia.&lt;br /&gt;
&lt;br /&gt;
=== Ground Control File ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo -7.778152 41.833203 957.575989  | cs2cs +init=epsg:4326 +to +init=epsg:3763&lt;br /&gt;
echo 708610.702 6209972.025 26.085 | cs2cs +init=epsg:25832 +to +init=epsg:32633&lt;br /&gt;
&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:32633 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;#039;&lt;br /&gt;
jgr@zoe:~/Documentos/sletten16maj2018-exif$ gdalsrsinfo epsg:25832 -o proj4&lt;br /&gt;
&amp;#039;+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs &amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make my own OpenDroneMap image ==&lt;br /&gt;
&lt;br /&gt;
=== Fork and clone ODM repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone git@github.com:jgrocha/OpenDroneMap.git&lt;br /&gt;
cd OpenDroneMap&lt;br /&gt;
git checkout -b generate-laz-output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change source ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Build new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jgr@zoe:~/PycharmProjects/OpenDroneMap$ docker build --no-cache -t odm_altitude_0 .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t odm_laz_image .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run new image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cd &amp;quot;/mnt/bonn/nextCloud/Photos/DJI MAVIC PRO 2 Paradela/100MEDIA&amp;quot;&lt;br /&gt;
cd /mnt/bonn/nextCloud/Photos&lt;br /&gt;
ln -s &amp;#039;DJI MAVIC PRO 2 Paradela/100MEDIA&amp;#039; images&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
docker run --cpus 8 -it --rm -v $odmi/images:/code/images -v $odmi/odm_orthophoto:/code/odm_orthophoto -v $odmi/odm_texturing:/code/odm_texturing -v $odmi/odm_georeferencing:/code/odm_georeferencing -v $odmi/odm_meshing:/code/odm_meshing -v $odmi/opensfm:/code/opensfm -v $odmi/odm_dem:/code/odm_dem odm_altitude_0 --dtm --dsm --force-ccd 13.2&lt;br /&gt;
# --orthophoto-resolution 2.0 --mesh-octree-depth 2 --opensfm-processes 8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/jgr/Documentos/sletten16maj2018-gcp&lt;br /&gt;
export odmi=`pwd`&lt;br /&gt;
sudo rm -rf odm_georeferencing odm_meshing odm_orthophoto odm_texturing opensfm&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options for rerunning are: &amp;#039;resize&amp;#039;, &amp;#039;opensfm&amp;#039;, &amp;#039;slam&amp;#039;, &amp;#039;cmvs&amp;#039;, &amp;#039;pmvs&amp;#039;, &amp;#039;odm_meshing&amp;#039;, &amp;#039;mvs_texturing&amp;#039;, &amp;#039;odm_georeferencing&amp;#039;, &amp;#039;odm_orthophoto&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -it --rm \&lt;br /&gt;
-v $odmi/images:/code/images \&lt;br /&gt;
-v $odmi/gcp_list.txt:/code/gcp_list.txt \&lt;br /&gt;
-v $odmi/odm_orthophoto:/code/odm_orthophoto \&lt;br /&gt;
-v $odmi/odm_texturing:/code/odm_texturing \&lt;br /&gt;
-v $odmi/odm_georeferencing:/code/odm_georeferencing \&lt;br /&gt;
-v $odmi/odm_meshing:/code/odm_meshing \&lt;br /&gt;
-v $odmi/opensfm:/code/opensfm \&lt;br /&gt;
odm_laz_image --gcp gcp_list.txt --dtm --dsm --rerun-from odm_georeferencing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check the output ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
running /code/build/bin/odm_georef -bundleFile /code/opensfm/bundle_r000.out -imagesPath /code/images -imagesListPath /code/opensfm/list_r000.out -inputFile /code/odm_texturing/odm_textured_model.obj -outputFile /code/odm_texturing/odm_textured_model_geo.obj -inputPointCloudFile /code/opensfm/depthmaps/merged.ply -outputPointCloudFile /code/odm_georeferencing/odm_georeferenced_model.ply  -logFile /code/odm_georeferencing/odm_georeferencing_log.txt -outputTransformFile /code/odm_georeferencing/odm_georeferencing_transform.txt -georefFileOutputPath /code/odm_georeferencing/odm_georeferencing_model_geo.txt -gcpFile gcp_list.txt -outputCoordFile /code/odm_georeferencing/coords.txt&lt;br /&gt;
[DEBUG]   running /code/SuperBuild/build/pdal/bin/pdal pipeline -i /code/odm_georeferencing/las.json --readers.ply.filename=/code/odm_georeferencing/odm_georeferenced_model.ply&lt;br /&gt;
PDAL: writers.las: Can&amp;#039;t write LAZ output.  PDAL not built with LASzip or LAZperf.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pipeline&amp;quot;: [&lt;br /&gt;
    &amp;quot;untransformed.ply&amp;quot;,&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;writers.las&amp;quot;,&lt;br /&gt;
      &amp;quot;a_srs&amp;quot;: &amp;quot;+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs &amp;quot;,&lt;br /&gt;
      &amp;quot;offset_x&amp;quot;: &amp;quot;334230.28164&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_y&amp;quot;: &amp;quot;6208095.41529&amp;quot;,&lt;br /&gt;
      &amp;quot;offset_z&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;compression&amp;quot;: &amp;quot;laszip&amp;quot;,&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;/code/odm_georeferencing/odm_georeferenced_model.laz&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-17 14-34-10.png]]&lt;br /&gt;
&lt;br /&gt;
=== Local pdal+LASzip ===&lt;br /&gt;
&lt;br /&gt;
Build from source!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/bin/pdal pipeline -i las.json --readers.ply.filename=odm_georeferenced_model.ply&lt;br /&gt;
-rw-r--r-- 1 jgr jgr  22661583 jun 17 11:47 odm_georeferenced_model.laz&lt;br /&gt;
-rw-r--r-- 1 jgr jgr 121586206 jun 17 11:42 odm_georeferenced_model.ply&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Previous result ====&lt;br /&gt;
&lt;br /&gt;
[[File:Captura de ecrã de 2018-06-16 12-26-36.png]]&lt;br /&gt;
&lt;br /&gt;
==== New result ====&lt;br /&gt;
&lt;br /&gt;
=== Create Pull Request ===&lt;br /&gt;
&lt;br /&gt;
close #845&lt;br /&gt;
&lt;br /&gt;
=== Other fixes ===&lt;br /&gt;
&lt;br /&gt;
epsg versus EPSG&lt;br /&gt;
&lt;br /&gt;
== Point cloud classification ==&lt;br /&gt;
&lt;br /&gt;
[DEBUG]   running pdal info --boundary --filters.hexbin.edge_length=1 --filters.hexbin.threshold=0 /code/odm_georeferencing/odm_georeferenced_model.filtered.las &amp;gt; /code/odm_georeferencing/odm_georeferenced_model.boundary.json&lt;br /&gt;
PDAL: Argument references invalid/unused stage: &amp;#039;filters.hexbin&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Jgrocha</name></author>
	</entry>
</feed>