La geocodificación es fundamental en diversos ámbitos como el análisis territorial, estudios de mercado y gestión de infraestructuras. Para facilitar esta tarea en SIG, se ha desarrollado el plugin Geocoder CartoCiudad para QGIS. Esta herramienta permite a los usuarios acceder directamente a una base de datos completa de direcciones en España, facilitando la conversión de ...
Desde el comienzo de los tiempos, el clima ha estado cambiando y la temperatura ha fluctuado. Sin embargo, estas fluctuaciones eran lentas y transcurrían a lo largo de cientos de años. Los rápidos cambios de las últimas décadas ponen de relieve la necesidad de preparar y adoptar estrategias eficaces de mitigación si queremos seguir prosperando. ...
Uso de la teledetección y los SIG para monitorear el cambio climático en tiempo real
Los satélites de la serie Sentinel desarrollados por la Agencia Europea del Espacio (ESA) son un recurso muy valioso para el análisis geográfico de diversos aspectos relacionados con el medio ambiente, agricultura, desastres naturales… Sin embargo, la presencia de nubes en las imágenes plantean problemas. El más evidente, pero no único, es que bloquean la ...
Tratamiento de nubes en imágenes Sentinel con Python: estrategias efectivas
ArcGIS Pro posee numerosas herramientas que facilitan mucho el trabajo a sus usuarios y permiten trabajar con diferentes formatos de datos, analizarlos y además crear visualizaciones que sirven para mostrar de manera efectiva el resultado de los proyectos llevados a cabo.
En esta entrada vamos a trabajar con un grupo de herramientas que permiten mostrar esa información a través de gráficas, directamente podemos acceder a ellas a través de la pestaña “Data” o bien clicando con el botón derecho del ratón sobre la capa, te aparecería la opción “Create Chart”:
Si se despliega, aparecerán los distintos tipos de gráficas que se pueden elaborar a partir de tus datos, entre ellos:
1. Gráficos de barras y columnas: Comparan valores de diferentes categorías.
2. Gráficos de líneas: Muestran tendencias a lo largo del tiempo.
3. Histogramas: Distribuyen datos en intervalos y muestran su frecuencia.
4. Diagramas de dispersión: Comparan dos variables numéricas para analizar correlaciones.
5. Box plots (diagrama de caja y bigotes): Resumen la distribución de datos estadísticos.
6. Gráficos de serie temporal: Analizan datos espaciales en función del tiempo.
Si trabajamos con datos del Geoportal de Madrid , establecemos en una gráfica de barras la cantidad de colegios por distrito aparecería de la siguiente manera:
En el apartado de las propiedades de la gráfica se puede por ejemplo editar el título y darle un diseño más adaptado a tus necesidades.
Igualmente, esta gráfica se puede exportar como una imagen en formato .svg, .png o .jpg, como una tabla o incluso podrías realizar una captura. Así de esta manera podrías incluirla en tus informes, o en un mapa si estás creando cartografía.
Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Herramientas para crear gráficas en ArcGIS Pro se publicó primero en Cursos GIS | TYC GIS Formación.
El software HEC-RAS ha sido una de las herramientas más utilizadas en la modelación hidráulica, ofreciendo potentes capacidades para simular el comportamiento de cuerpos de agua y las dinámicas de inundación. En su nueva versión, HEC-RAS 2025, que se encuentra en fase Alpha, el programa continúa su evolución con mejoras significativas en el procesamiento de ...
por editor (noreply@blogger.com) em February 28, 2025 07:30 AM
por editor (noreply@blogger.com) em February 28, 2025 07:28 AM
por editor (noreply@blogger.com) em February 26, 2025 07:44 AM
La idea de esta entrada es presentar una nueva plataforma, una IDE de ciencia de datos de última generación creado por Posit PBC. Realmente es una versión modificada de RStudio que permite ejecutar código en R y Python dentro de un mismo entorno. Fue creada para facilitar el trabajo en proyectos que combinan ambos lenguajes.
En relación a sus principales características, dejo este listado:
Para proceder a la instalación, puedes proceder directamente a la descarga del programa en su página web:
Incluso puedes chequear su código en el repositorio en GitHub:
Para proceder a su instalación, es muy sencillo, sólo lanza el ejecutable y sigue los pasos que vienen por defecto. Cuando finalice ya puedes abrir directamente el programa:
En la siguiente imagen puede ver el aspecto de su interfaz, muy parecida a RStudio por lo que no tendrás ningún problema a la hora de trabajar con Positron si anteriormente a usado RStudio, es bastante intuitiva.
Para empezar a trabajar simplemente tienes que abrir la carpeta de tu proyecto de R y abrir tu script y directamente se mostrará.
Por supuesto puedes elegir qué tipo de lenguaje de programación quieres utilizar, Python o R:
Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.
La entrada ¿Qué es Positron? se publicó primero en Cursos GIS | TYC GIS Formación.
por editor (noreply@blogger.com) em February 25, 2025 09:17 AM
En esta entrada de nuestro blog vamos a comentar las mejoras y novedades más destacadas de la nueva versión de QGIS, la 3.42 que lleva como nombre Münster. QGIS se encuentra bajo la General Public License (GPL), lo cual permite al usuario modificar su código fuente y garantizar la existencia y acceso a un programa GIS gratuito. Detrás del proyecto hay ...
por editor (noreply@blogger.com) em February 24, 2025 07:00 AM
por editor (noreply@blogger.com) em February 20, 2025 07:38 AM
El cambio climático es una realidad que afecta cada vez más a nuestro planeta, manifestándose en fenómenos extremos como inundaciones e incendios forestales. Estos desastres naturales no solo destruyen ecosistemas, sino que también ponen en riesgo la vida humana, la infraestructura y la economía. Para comprender y mitigar estos impactos, es fundamental el uso de ...
por editor (noreply@blogger.com) em February 17, 2025 05:20 PM
Estamos entusiasmados em anunciar que o QGIS foi oficialmente reconhecido como um Bem Público Digital (DPG) pela Digital Public Goods Alliance (DPGA)! Este reconhecimento destaca nosso compromisso com soluções geoespaciais de código aberto que contribuem para o avanço dos Objetivos de Desenvolvimento Sustentável (ODS) das Nações Unidas.
Um Bem Público Digital é uma solução digital que atende ao Padrão DPG, garantindo que seja de código aberto, respeite a privacidade, siga as melhores práticas e contribua para o desenvolvimento sustentável. A DPGA é uma iniciativa multissetorial dedicada a promover a descoberta, desenvolvimento e implementação de soluções digitais que abordem desafios globais, como mudanças climáticas, saúde pública e acesso equitativo à tecnologia.
Ser reconhecido como um Bem Público Digital destaca nosso:
Ser reconhecido como um DPG fortalece nosso alcance e impacto global, abrindo portas para colaborações com governos, ONGs e instituições educacionais que buscam ferramentas geoespaciais robustas e gratuitas. Também reafirma nossa dedicação em construir um ecossistema GIS aberto, inclusivo e inovador que sirva comunidades em todo o mundo.
Você pode encontrar o QGIS listado no Registro de Bens Públicos Digitais aqui. Incentivamos todos os membros da nossa comunidade a compartilhar esta excelente notícia e continuar contribuindo para o crescimento do QGIS!
Gostaríamos de agradecer especialmente a Enrico Ferreguti por tomar a iniciativa e preparar a inscrição para o projeto QGIS.
Fonte: https://blog.qgis.org/2025/02/08/qgis-recognized-as-digital-public-good/
O post QGIS é Reconhecido como um Bem Público Digital pela Digital Public Goods Alliance apareceu primeiro em QGISBrasil.
En este artículo vamos a mostrarte cómo podemos descargar imágenes MODIS para predecir cambios de usos del suelo con el plugin MOLUSCE para QGIS. MOLUSCE es un plugin de QGIS para simulación de cambios de usos del suelo, en nuestro post MOLUSCE: plugin de QGIS para simular cambios de usos del suelo te explicamos qué ...
Cómo descargar imágenes MODIS para predecir cambios de usos del suelo con MOLUSCE
Hoy me estreno en el blog de gvSIG para contaros nuestra participación en el Workshop on Open Source Sharing and Reuse in Local Public Sector Organisations, un evento clave para el debate sobre la reutilización de software libre en organizaciones del sector público local y regional.
Este taller ha sido una gran oportunidad para compartir experiencias y reflexionar sobre cómo se está adoptando y gestionando el software libre en diferentes instituciones. En particular, el debate se ha centrado en la validación de las conclusiones de la investigación llevada a cabo por OSOR (Open Source Observatory) sobre el uso del software libre en el sector público, tomando como referencia cinco proyectos analizados como casos de estudio.
La sesión ha sido altamente interactiva y ha permitido a los participantes aportar sus opiniones sobre temas clave como la gobernanza, la organización, la financiación y la sostenibilidad del software libre en el sector público. La agenda del workshop ha estado estructurada de la siguiente manera:
Introducción y presentación de participantes
Presentación de casos de estudio
Exposición de hallazgos sobre gobernanza y organización
Debate y feedback sobre gobernanza y organización
Exposición de hallazgos sobre financiación y sostenibilidad
Debate y feedback sobre financiación y sostenibilidad
Conclusiones y cierre
La reutilización del software libre en el sector público es un tema estratégico que puede generar grandes beneficios en términos de eficiencia, reducción de costes y soberanía tecnológica. Sin embargo, también presenta desafíos que requieren una reflexión profunda sobre la manera en que se organizan los proyectos, se gestionan los recursos y se garantiza su sostenibilidad a largo plazo.
Desde gvSIG seguimos comprometidos con estos debates y con la promoción de modelos abiertos y colaborativos en el ámbito de los Sistemas de Información Geográfica y la Infraestructura de Datos Espaciales.
¿Te interesa este tema? ¡Déjanos tus comentarios y sigamos la conversación!
DeepSeek es el nuevo modelo de Inteligencia Artificial de origen chino y código abierto que ya está a nuestra disposición. En esta entrada vamos a ver cómo crear mapas en QGIS fácilmente con Deepseek. El potencial de la Inteligencia Artifcial es realmente grande en el ámbito geoespacial, lo que puede ayudar tanto a los principiantes ...
Está claro que el desarrollo de tecnología gratuita y de código abierto ha evolucionado todo el desarrollo de la programación y ha ayudado a muchas personas a dedicarse a este campo. Un ejemplo de ello es esta aplicación, una “sandbox” denominada “pydantic.run”
El potencial de este tipo de programas es que puedes chequear los resultados que vas obteniendo conforme editas el código ejecutándolo de una manera clara y sencilla.
Es una herramienta muy útil para programadores que te animo que pruebes, en este enlace tienes el repositorio en GitHub.
Otro ejemplo relacionado, es “Python sandbox” , tal cual. Permite guardar tu código e incluso descargarlo.
Incluso podemos encontrarnos con otras “sandbox” que se adaptan no sólo a diferentes versiones de Python , sino a otros lenguajes como JavaScript o C++, es el caso de “Edube”:
Te animo a que les eches un ojo y pruebes a ver si te pueden ayudar en tu formación o tus proyectos con Python, son un buen recurso.
Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Ejemplos de “sandbox” para desplegar tu código Python se publicó primero en Cursos GIS | TYC GIS Formación.
El término IDE que vamos a trabajar en esta entrada (ojo no confundir con las “Infraestructuras de Datos Espaciales”) se refiere a las “Integrated Development Environment” las cuales crean un entorno en el que se puede trabajar con facilidad con diferentes tipos de códigos de programación como Python , R o JavaScript.
En esta ocasión se va a hablar de la IDE “Windsurf” la cual ofrece una interfaz muy parecida a VSCode pero lleva integrada una Inteligencia Artificial (IA) que puede ayudarte a editar tu código.
Para proceder a la descarga de “Windsurf Editor” dirígete a esta web y descarga el ejecutable (lo tienes para Mac , Linux y Windows).
En esta ocasión le decimos que empezamos de cero “Start Fresh” sin conectar con VSCOde:
Nos ofrece la opción de elegir un tema con el que adaptar la IDE .
Y nos pedirá crear una cuenta en Codeium.
Y ya lo podrás lanzar, crear un nuevo proyecto y preguntarle a la IA “Cascade”:
Por ejemplo, si te interesa desarrollar un complemento para QGIS, un ejemplo tonto, que corte un ráster con una capa vectorial, rápidamente te creará los archivos relacionados y te creará el código. Por supuesto, no te quepa duda que vas a tener que chequearlo y corregirlo, pero es un gran avance a la hora de poner los primeros ladrillos.
Te animo a que lo pruebes y compruebes si te puede ayudar en tus proyectos.
Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Cómo instalar la IDE denominada “Windsurf” que incluye Inteligencia Artificial (IA) se publicó primero en Cursos GIS | TYC GIS Formación.
La fundación Overture Maps proporciona conjuntos de datos de mapas abiertos, gratuitos, fáciles de usar e interoperables. Overture está disponible en el formato Parquet (nativo de la nube) y almacenado en AWS y Azure. El recien llegado complemento GeoParquet Downloader (Overture, Source & Custom Cloud) de QGIS tiene como objetivo la descarga de datos de GeoParquet en QGIS desde fuentes ...
El lenguaje de programación Python es un lenguaje con gran versatilidad ya que permite a los desarrolladores y a investigadores trabajar en diferentes campos como el GIS o la teledetección, incluso llega a fusionar los dos ámbitos.
En esta ocasión se van mostrar diferentes librerías de Python con las que se puede trabajar en proyectos dedicados a la teledetección, existen muchas, pero se ha realizado una selección que a mí me resultan de interés, si quieres, en comentarios pueden incluir alguna más que utilices o que sepas de su existencia.
De la primera que vamos a hablar es geemap es una biblioteca de Python creada sobre la plataforma «Google Earth Engine» (GEE). El lenguaje básico de GEE es JavaScript pero también se puede trabajar dentro de este ecosistema en la nube con su API de Python integrando mucha más funcionalidad a este entorno y permitiendo que expertos que trabajen con este lenguaje puedan optar a utilizar visualizar y analizar imágenes satélite con él.
La librería que voy a comentar a continuación, no la conocía, hasta que he estado buscando información para esta entrada, y la incluyo porque me ha parecido interesante, se llama: odc-stac . Organizaciones dedicadas a la Observación de la Tierra con numerosos datos disponibles como “Digital Earth Africa” la recomiendan para acceder de manera fácil y rápida a su información.
Por otro lado, no hay que dejar de lado las imágenes de satélite radar de apertura sintética (SAR) , el paquete SarPy creado por la “National Geospatial-Intelligence Agency” , es una biblioteca básica de Python para leer, escribir y realizar un procesamiento simple de datos SAR.
Fuente: Sentinel 1. Puerto de Valencia
Por otro lado, otro paquete de Python interesante es EarthPy el cual permite desarrollar funcionalidades básicas de análisis y procesamiento de imágenes satélite a través de su código.
Y por último , la librería Spectral Python (SPy) permite procesar imágenes satélite hiperespectrales, Ya vimos un poco más sobre ellas en una anterior entrada.
Como verás existen una gran variedad de recursos en este sentido , es una apuesta aprender Python si estás interesad@ en la ciencia de datos y/o la teledetección.
Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Librerías de Python para trabajar en el campo de la Teledetección se publicó primero en Cursos GIS | TYC GIS Formación.
En este tutorial vamos a mostraros cómo reemplazar cualquier texto en una tabla en QGIS. Utilizaremos una capa vectorial con los aeropuertos más importantes (puedes descargar desde aquí la capa en formato shapefile) desde Natural Earth, una de las principales fuentes de datos a nivel global. El primer paso es abrir la tabla de atributos ...
La tecnología LiDAR está avanzando en importantes ámbitos como la arqueología, la ingeniería, la conservación de la naturaleza, etc.
Y gracias a que ya existen numerosas fuentes de datos disponibles al público en general para poder trabajar con ellos de manera gratuita, fomenta el lanzamiento de diferentes tipos de proyectos para ir de esta manera mejorando sus capacidades.
Muestra de esto es la inclusión de este formato de datos LiDAR en programas tan importantes de Sistemas de Información Geográfica (SIG) como QGIS o ArcGIS Pro, o dedicados a la teledetección, incluso lenguajes de programación ya pueden trabajar e interactuar con ello realizando grandes labores de análisis como pueden ser Python, o el lenguaje que en esta entrada nos ocupa, R.
Por ello, en esta entrada vamos a hablar de la librería “lidR” la cual permite trabajar con datos LiDAR y sobre todo enfocado a trabajos dedicados a la investigación y el desarrollo de aplicaciones forestales y ecológicas.
Desde hace un tiempo (2024) este proyecto no tuvo más soporte público y se procedió a lanzarlo a través de una empresa denominada r-lidar (puedes entrar en su repositorio de GitHub) que además aporta formación con sus paquetes lidR y lasR.
Así si tienes curiosidad y/o interés a la hora de aplicar y trabajar con datos LiDAR en R te animo que veas todos los recursos que aportan para aprender a trabajar con esta librería y obtener resultados como esta visualización y futuros análisis.
Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Librerías para trabajar con datos LiDAR en R se publicó primero en Cursos GIS | TYC GIS Formación.
La simbologías de la información de tu proyecto en QGIS es uno de los pilares si tienes que crear cartografía o desarrollar un visor cartográfico. Para ello vamos a trabajar con datos descargados de manera gratuita desde la plataforma GBIF sobre cachalotes (Physeter macrocephalus).
La idea es dar a conocer diferentes fuentes de iconos que pueden ser utilizados en QGIS , hay ocasiones que no te valen con los que vienen por defecto en QGIS, o simplemente tienes una mente inquieta y creativa y quieres variar. Entonces te dejo varios recursos que puedes añadir a tus proyectos.
Por ejemplo, hay un repositorio de imágenes de animales en formato .svg en GitHub aportado por @kazuhito84455 que puedes descargar de manera gratuita para posteriormente incluirlos en tu proyecto en QGIS, están divididos en categorías: aerial, aquatic, dangerous y terrestial.
El siguiente paso sería ir a “Propiedades de la capa” y en “Simbología” sobre “Marcador único” elegir en el desplegable “Marcador SVG”. Entonces más abajo te dará la opción de buscar en tus carpetas dichas imágenes, se elige la que nos interese y se adapta.
Entonces le damos el color y tamaño que interesen y se visualizará en nuestro proyecto QGIS.
Otra opción es utilizar un complemento que permite administrar diferentes fuentes de iconos, se denomina “QGIS Resource Sharing” y vamos a descargarlo de su web para posteriormente subirlo en formato .zip a QGIS.
Si se abre el plugin, veremos que hay un listado enorme de archivos .svg de diferentes categorías que puedes seleccionar e instalar directamente, por ejemplo, ya que estamos con la temática medioambiental, elegiremos “nature_wildlife” del “US National Park Service”:
Si nos dirigimos de nuevo al apartado “Simbología” podremos encontrar que en “Colecciones” se ha creado una nueva carpeta dónde se sitúan esos iconos que podremos utilizar.
Hay otras opciones como el complemento llamado “PyQGIS Resource Browser” que permite a desarrolladores explorar iconos en QGIS de manera rápida y sencilla.
Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Cómo incluir nuevos iconos en QGIS se publicó primero en Cursos GIS | TYC GIS Formación.
No dia 7 de dezembro de 2024, a cidade de Belém do Pará foi palco do QGIS LATAM 2024, o 2º Encontro de Usuários QGIS da América Latina. O evento, realizado no espaço cedido pelo Instituto Nacional de Pesquisas Espaciais (INPE) – Coordenação Espacial da Amazônia, sob a coordenação da Dra. Alessandra Rodrigues, reafirmou a importância de Belém como referência no uso de geotecnologias e software livre, além de demonstrar seu apoio ao fortalecimento de eventos regionais e internacionais.
Com mais de 150 participantes, o QGIS LATAM 2024 contou com o patrocínio de empresas como OpenGIS, GeoOne e ClickGeo – todas também apoiadoras da conferência global FOSS4G 2024. O evento foi uma oportunidade única de conectar a comunidade de usuários e desenvolvedores de software livre para aplicações geoespaciais.
O QGIS LATAM 2024 reuniu palestrantes de renome na área de geotecnologias, que compartilharam avanços, estudos de caso e inovações no uso do software QGIS. Entre os destaques da programação estavam:
O QGIS LATAM 2024 destacou-se por promover inovação, troca de experiências e networking entre os participantes. Além disso, reforçou a importância de soluções baseadas em software livre, especialmente para enfrentar desafios globais, como as mudanças climáticas e o monitoramento ambiental na Amazônia.
Um dos momentos mais marcantes foi o encerramento do evento, com apresentações e interações que cativaram os participantes:
O QGIS LATAM 2024 consolidou Belém como um polo estratégico para o avanço das geotecnologias na América Latina. Durante uma reunião realizada após o evento, Marco Bernasocchi, presidente da QGIS.ORG, anunciou que uma futura versão do QGIS será batizada com o nome da cidade de Belém do Pará, em reconhecimento ao papel significativo da região na promoção de tecnologias de código aberto e no fortalecimento da comunidade de geotecnologias na América Latina.
<figure class="wp-block-gallery has-nested-images columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex"> <figure class="wp-block-image size-large">O post QGIS LATAM 2024: 2º Encontro de Usuários QGIS da América Latina apareceu primeiro em QGISBrasil.
Al hilo de la última entrada “El nuevo complemento de QGIS para descargar datos de tipo GeoParquet”, buscando información sobre GeoParquet la verdad que encontré pocas fuentes de datos en España donde descargar información con este formato (si conoces alguna puedes aportar el enlace en comentarios).
Los límites de cultivos de Cataluña por ejemplo:
La Diputación de Castellón ha hecho un gran trabajo con su Infraestructura de Datos Espaciales (IDE) y puedes bajarte muchos datos en formato GeoParquet, por ejemplo, este sobre la “Huella de carbono de los vehículos del parque móvil provincial”.
Pero a nivel internacional hay varios datasets con su información trasladada a formato GeoParquet como “Google Open Buildings”:
O información sobre las tierras de regadío de Nueva Zelanda:
Esta claro que es un formato que está dando sus primeros pasos pero quizás en un futuro veamos más información que pueda ser descargada en este sentido, sobre todo es de gran ayuda para conjuntos de datos de gran envergadura.
Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Dónde encontrar datos con formato de tipo GeoParquet se publicó primero en Cursos GIS | TYC GIS Formación.
GeoParquet se está imponiendo como un nuevo formato de datos para trabajar con datos geoespaciales, una de sus enormes ventajas es que es de tipo “open source” y desarrollado por Open Geospatial Consortium (OGC).
Además, el tamaño del archivo es mucho menor que GeoPackage y, por supuesto, que un shapefile:
Fuente: datos.gob
Esta evolución está dando lugar a nuevos desarrollos relacionados con GeoParquet, en esta entrada os voy a mostrar un nuevo complemento denominado “GeoParquet Downloader”. Puedes descargarlo directamente desde su web y posteriormente el archivo comprimido subirlo a QGIS o instalarlo directamente buscando en el listado. En su página de GitHub tienes más información disponible.
Este plugin se apoya en otro complemento llamado “QDuckDB”, por lo que también debes instalarlo:
Una vez superados estos pasos, puedes lanzarlo y te aparecerá la siguiente ventana:
Entonces podrás elegir entre incorporar una url para realizar directamente la descarga de datos en QGIS o aprovechar otras fuentes de datos como OpenStreetMap (OSM), por ejemplo, para descargar edificios de una determinada zona.
Es importante que tengas un mapa base y te enfoques en una zona determinada para realizar la descarga, cuanto más amplia sea lógicamente más durará, deberás tener un poco de paciencia.
Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.
La entrada El nuevo complemento de QGIS para descargar datos de tipo GeoParquet se publicó primero en Cursos GIS | TYC GIS Formación.
WebGIS é uma tecnologia usada para exibir e analisar dados espaciais na Internet. Ele combina as vantagens da Internet e do GIS oferecendo um novo meio de acessar informações espaciais sem a necessidade de você possuir ou instalar um software GIS.
A necessidade de divulgação de dados geoespaciais têm estimulado cada vez mais o uso de ferramentas WebGIS para apresentações interativas de mapas e de informações relacionadas por meio da internet.
As soluções adotadas na apresentação destes mapas devem apresentar um equilíbrio entre facilidade de uso, riqueza de recursos para visualização e navegação entre os dados, e funcionalidades geoespaciais para pós processamento, características que devem ser adequadas para cada perfil de usuário que acessará o WebGIS.
Se você e sua empresa possuem dados geoespaciais e querem disponibilizá-las na Web, o caminho natural para isso é o desenvolvimento de um WebGIS. Mas, se você não tiver uma equipe de TI, ou um especialista em desenvolvimento GIS, não se preocupe, a Geocursos pode te ajudar.
Nossa experiência em GIS nos habilita a entregar soluções baseadas nessa tecnologia utilizando ferramentas open source de visualização geográfica aliada a soluções criativas para o seu negócio.
Quem saber mais?
Acesse e peça um orçamento: https://www.geocursos.com.br/consultoria
WhatsApp: http://whats.link/geocursos
No cenário geoespacial em rápida evolução de hoje, ser um profissional de GIS é mais do que apenas trabalhar com mapas e dados.
Requer uma mistura única de conhecimento técnico, pensamento crítico, criatividade e colaboração.
Quer você esteja apenas começando ou seja um especialista experiente, essas 12 características essenciais podem ajudá-lo a se destacar e prosperar na indústria geoespacial.
Conhecimento em tecnologia
Atenção aos detalhes
Comunicador eficaz
Estar sempre aprendendo
Orientado por dados
Colaborativo
Gerente de projeto
Pensador crítico
Apaixonado por geografia
Solucionador criativo de problemas
Tomador de decisões
Pensador analítico
Qual dessas características você acredita ser a mais importante para o sucesso em GIS? Conte nos comentários!
Fonte: webgis.tech
Instagram: https://instagram.com/webgis.tech
LinkedIn: https://www.linkedin.com/company/webgis-tech
À medida que o mundo transita para um futuro energético mais limpo e sustentável, o papel dos Sistemas de Informação Geográfica (GIS) se tornou indispensável.
O GIS nos permite enfrentar os desafios complexos do desenvolvimento de energia renovável com precisão e eficiência.
Seja identificando os principais locais para fazendas solares, avaliando o potencial de energia eólica ou planejando infraestrutura hidrelétrica, o GIS fornece os insights espaciais necessários para tomar decisões informadas.
Além do planejamento de projetos, o GIS oferece suporte a avaliações ambientais, mitiga riscos e ajuda a integrar energia renovável em redes elétricas, garantindo que esses desenvolvimentos sejam sustentáveis e resilientes.
Ele também capacita provedores de energia e formuladores de políticas a envolver comunidades, reduzir emissões e enfrentar as mudanças climáticas de frente.
Aqui estão 10 maneiras principais pelas quais o GIS está moldando o setor de energia renovável, promovendo inovação e impulsionando mudanças impactantes:
Integração da Rede
Avaliação de Recursos
Avaliação de Impacto Ambiental
Engajamento da Comunidade
Análise de Risco
Monitoramento e Manutenção
Análise de Uso do Solo
Planejamento de Infraestrutura Energética
Mitigação de Mudanças Climáticas
Mapeamento de Demanda Energética
Gostou desse post? Conte nos comentários
Fonte: webgis.tech
Instagram: https://instagram.com/webgis.tech
LinkedIn: https://www.linkedin.com/company/webgis-tech
Terras indígenas, como a tribo Alto Turiaçu no Maranhão, enfrentam ameaças crescentes de incêndios florestais. Para ajudar na proteção dessas áreas, a Jéssica Uchoa criou uma aplicação WebGIS que monitora focos de incêndio e analisa seus impactos com dados geoespaciais em tempo real e históricos.
Como funciona:
FIRMS (NOAA-21) Realizar o monitoramento de focos de incêndio em tempo real (últimas 24h);
Sentinel-2: Análise de cicatrizes de queimadas com imagens de alta resolução;
MIRBI: Identificação de pontos ativos de incêndio;
Camadas do IBGE: Fornece a localização de territórios indígenas, ajudando na orientação e no planejamento das análises.
Você pode acessar uma versão do WebGIS no seguinte link: https://lnkd.in/dSpXa3Fa
Gostou desse post? Conte nos comentários
Fonte: webgis.tech
Instagram: https://instagram.com/webgis.tech
LinkedIn: https://www.linkedin.com/company/webgis-tech
Você está enfrentando problemas no desenvolvimento do seu WebGIS?
Deixe-me poupar algum tempo da sua frustração, pois você pode estar cometendo alguns erros comuns:
Pular direto para a codificação sem um roteiro
Seguir tutoriais que só fazem sentido se você já tiver conhecimento dos termos do WebGIS
Tentar construir ferramentas sem entender o fluxo de dados no WebGIS
Perder tempo “ajustando” ferramentas sem ter a mínima ideia de onde o código deveria ficar
Parece familiar?
Vou te contar alguns “segredos” para o desenvolvimento do seu WebGIS:
Entenda o fluxo de dados e os termos essenciais
Saiba exatamente quais elementos de programação são essenciais
Domine o uso das bibliotecas WebGIS para obter exatamente o que precisava
Gostou desse post? Conte nos comentários
Fonte: webgis.tech
Instagram: https://instagram.com/webgis.tech
LinkedIn: https://www.linkedin.com/company/webgis-tech
El proyecto QGIS, Sistema de Información Geográfica gratuito, está en constante renovación y prueba de ello son sus actualizaciones, tanto de su programa como por parte de los desarrolladores que crean diferentes “Plugins” para aumentar su funcionalidad.
En este caso se va a tratar la evolución del complemento “Qgis2threejs” que permite desplegar tus datos en una vista 3D, grabar vídeos e incluso exportar los resultados. Anteriormente ya mostramos cómo usar una antigua versión de este “plugin” , se ha actualizado y esta nueva versión permite trabajar de una manera más cómoda. Lo de siempre en la pestaña “Complementos” , si lo tienes instalado lo puedes actualizar y si no lo instalas directamente.
Y si lo lanzamos directamente (lo encontraremos en la pestaña “Web” de QGIS), nos aparecerá la siguiente ventana que llaman “Qgis2threejs Exporter”, ojo cuando abras puede que no veas nada, quita zoom.
Podemos observar que hay varias partes principales, el visor que muestra la información que adjuntas en tu proyecto de QGIS. Por otro lado, está la ventana dónde se organizan las diferentes capas, y la ventana de “Animación”. También hay diferentes pestañas con diferentes herramientas: File, Scene, View, Window y Help:
Cerramos la aplicación e incluimos por ejemplo datos de batimetría (ojo activa la pestaña), y lanzamos de nuevo el plugin:
Y así se visualizará:
Una de las herramientas de este complemento permite exportar los resultados en varios formatos , puedes obtenerlo como un archivo .html («Export to web«) o como una imagen. Y si la exportas para obtener tu propio visor y así poder subirlo a un servidor, podrás incluso incluirle una animación, para ello ve incluyendo «keyframes»:
Y al exportarla y lanzar el archivo index.html, se vería en un navegador, eso sí por ahora en local, si quieres compartirlo debes adjuntar ese archivo con el resto de carpetas que se han exportado.
Ya ves que es un plugin muy práctico y que da muy buenos resultados.
Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Actualización del plugin “Qgis2threejs” de QGIS para trabajar en 3D se publicó primero en Cursos GIS | TYC GIS Formación.
A maior promoção de 2024 começa hoje, dia 08 e vai até o dia 10 de novembro.
Essa é a sua chance de adquirir nossos cursos com descontos imperdíveis nessa Black Friday.
Cursos que estão com desconto:
Combo: PostgreSQL, PostGIS e GeoServer (EAD Videoaula com 38h/aula)
50% de desconto
Acesso por 24 meses
Combo: PostgreSQL, PostGIS, GeoServer e OpenLayers 4 (EAD Videoaula com 53h/aula)
60% de desconto
Acesso por 24 meses
Os cupons de desconto estão sendo informados no nosso Grupo VIP, basta você clicar no link abaixo :
No mundo do Geomarketing, a precisão é a chave para o sucesso. E uma das etapas cruciais para garantir essa precisão é a coleta de dados em campo.
Validação Realista: Enquanto os dados de mapas e bases de dados são valiosos, nada supera a validação realista que a coleta de dados em campo oferece. Verificar pessoalmente as informações nos permite confirmar sua precisão e atualidade.
Refinamento Estratégico: Ao mergulhar nas nuances de uma área específica, podemos descobrir insights que simples análises de dados remotos podem negligenciar. Detalhes sobre padrões de tráfego, comportamento do consumidor e características locais podem refinar nossas estratégias de marketing de maneiras surpreendentes.
Feedback Direto: Interagir com os residentes locais, consumidores e outras partes interessadas nos dá acesso a um feedback valioso e em tempo real. Esse feedback é uma mina de ouro para ajustar nossas estratégias e adaptá-las às necessidades locais.
Personalização Efetiva: Compreender profundamente as características locais nos permite personalizar nossas estratégias de marketing de maneira mais eficaz. Não se trata apenas de atingir o público certo, mas de atingi-lo da maneira certa, levando em conta as particularidades de cada região.
Em suma, a coleta de dados em campo não é apenas uma etapa em um estudo de geomarketing, mas sim o alicerce sobre o qual construímos estratégias eficazes e impactantes. É o que nos permite transformar dados em insights acionáveis e conquistar resultados tangíveis.
Fonte: Marcio T. Mendonça
No mundo dos bancos de dados, a simultaneidade é um benefício e um desafio. Os mecanismos de bloqueio do PostgreSQL garantem a consistência dos dados ao gerenciar várias consultas simultâneas, mas também podem levar a gargalos se não forem bem compreendidos.
Por que os bloqueios são importantes?
Pense nos bloqueios como semáforos. Quando várias consultas desejam acessar os mesmos dados, os bloqueios garantem acesso ordenado, evitando colisões de dados e problemas de desempenho.
Tipos de bloqueios no PostgreSQL:
1. Bloqueios em nível de linha: mantenha seus registros seguros durante modificações.
2. Bloqueios em nível de tabela: necessários para alterações de esquema, mas podem bloquear o acesso, causando lentidão.
3. Bloqueios consultivos: permita que os desenvolvedores controlem manualmente o acesso aos recursos.
O MVCC do PostgreSQL minimiza a contenção de bloqueios, permitindo que leitores e escritores acessem dados sem conflitos. No entanto, deadlocks podem ocorrer quando as transações bloqueiam umas às outras.
Principais conclusões:
– Use bloqueios em nível de linha com sabedoria para evitar bloqueios.
– Tenha cuidado com a escalada de bloqueios durante alterações de esquema.
– Monitore bloqueios usando ferramentas como pg_locks e pg_stat_activity para detectar problemas antecipadamente.
Fonte: webgis.tech
Instagram: https://instagram.com/webgis.tech
LinkedIn: https://www.linkedin.com/company/webgis-tech
Como você gerencia desafios de bloqueio no PostgreSQL? Compartilhe suas ideias nos comentários abaixo!
…para criar sua aplicação WebGIS. Mas vou explicar melhor em uma rápida análise:
Quando você não precisa deles:
Aplicativos de pequeno porte: HTML simples, CSS e JavaScript, juntamente com uma biblioteca de mapeamento como Leaflet, OpenLayers ou Mapbox GL JS, geralmente são suficientes.
Conteúdo estático: se seu aplicativo atende principalmente mapas estáticos com interatividade mínima, as técnicas tradicionais de desenvolvimento web funcionam bem.
Facilidade de aprendizado: como iniciante, CONCENTRE-SE em dominar as principais tecnologias da web primeiro, facilitando o aprendizado futuro de frameworks.
Quando você precisa deles:
Interfaces (UI) complexas: para UIs ou painéis dinâmicos e interativos, os frameworks podem simplificar o desenvolvimento.
Gerenciamento de estado: gerenciar estados complexos, como entradas de usuário e alternância de camadas, pode se tornar mais fácil com esses frameworks.
Componentes reutilizáveis: eles permitem a criação de elementos de UI reutilizáveis, que são usados em aplicativos WebGIS.
Escalabilidade: Frameworks ajudam a gerenciar a complexidade e garantem que seu aplicativo seja sustentável à medida que cresce.
O que você realmente precisa focar se for iniciante:
Bibliotecas de mapeamento na Web: Bibliotecas como Leaflet e OpenLayers são ferramentas poderosas que não exigem um framework de front-end, mas podem se integrar a eles.
Tecnologias de back-end: Um back-end robusto é crucial para o manuseio de dados e consultas espaciais, trabalhando independentemente de frameworks de front-end.
JavaScript: O JavaScript moderno pode lidar com a maioria das funcionalidades sem a necessidade de um framework, ideal para a maioria das necessidades.
Conclusão:
Como iniciante, concentre-se nos fundamentos como HTML, CSS e JavaScript. React e outras coisas vêm depois e ficam mais fáceis então.
Fonte: webgis.tech
Instagram: https://instagram.com/webgis.tech
LinkedIn: https://www.linkedin.com/company/webgis-tech
Gostou desse post? Conte nos comentários
A melhor prática para criar um sistema WebGIS é armazenar todos os seus dados espaciais em um servidor PostgreSQL habilitado para PostGIS. Garanta que a indexação espacial seja aplicada para recuperação de dados mais rápida.
Você pode facilmente construir uma interface intuitiva e amigável usando HTML básico, CSS, Bootstrap e JavaScript.
Use Leaflet ou OpenLayers como sua biblioteca de mapeamento padrão!
Para filtrar dados ou executar consultas, siga estas etapas:
Colete a entrada do usuário e envie-a para seu script de backend por meio de uma solicitação AJAX.
Valide a entrada no backend e busque os dados necessários do banco de dados PostgreSQL usando consultas SQL.
Prepare os dados no backend e envie-os de volta para o cliente (interface do usuário).
O cliente receberá os dados por meio da mesma chamada AJAX e os formatará em camadas Leaflet. AJAX é assíncrono.
Estilize suas camadas de forma eficaz usando funções JavaScript.
Exiba as camadas no mapa.
Ajuste automaticamente a visualização do mapa para se ajustar à extensão do recurso pesquisado.
Adicione-os a um controle de camada para alternar a visibilidade entre ligado e desligado.
Crie dicas de ferramentas ou pop-ups para exibir informações detalhadas.
Se o usuário pesquisar por um único recurso, desenhe um círculo, linha ou polígono ao redor dele e amplie o recurso.
Estas são as etapas básicas para exibir dados em um sistema WebGIS.
Gostou desse post? Conte nos comentários
Fonte: webgis.tech
Instagram: https://instagram.com/webgis.tech
LinkedIn: https://www.linkedin.com/company/webgis-tech
Versão do conjunto de dados em análise: 26 de Julho 2024
O Balcão Único do Prédio (BUPi) é uma plataforma online que permite aos proprietários auto-declarar os limites geométricos das suas propriedades (i.e. terrenos), com o objetivo de facilitar a articulação do registo e do cadastro predial numa única plataforma. O BUPi tem por base a Lei n.º 78/2017, de 17 de agosto que prevê a criação de “um sistema de informação cadastral simplificada”. A informação geométrica pode ser declarada com base em levantamentos GPS/topográficos conduzidos pelos proprietários ou por profissionais contratados para o efeito. Em alternativa, a informação geométrica pode também ter por base a interpretação visual de imagens de fotografia aérea sobre a qual os polígonos são desenhados.
A inexistência de um cadastro unificado, com informação geométrica atualizada e de qualidade é amplamente reconhecido como um fator limitativo do planeamento territorial. Dados cadastrais são também dados de grande valor para muitas outras atividades, pelo que a sua disponibilização sem restrições e em formatos abertos é fundamental e facilmente enquadrável na Lei n.º 68/2021 de 26 de agosto que mais não é do que uma transposição da Diretiva sobre Dados Abertos e Dados de Elevado Valor da União Europeia.
No início de 2024, foi anunciado pela Estrutura de Missão para a Expansão do Sistema de Informação Cadastral Simplificado (eBUPi), que o ano de 2023 terminou com 2 milhões de propriedades identificadas. Na mesma notícia, foi dada nota da disponibilização da Representação Gráfica Georreferenciada das propriedades, na Plataforma aberta para dados públicos portugueses (https://dados.gov.pt), o que se regista como uma boa iniciativa por parte da eBUPi.
No entanto, ao longo dos últimos anos, têm sido várias as notícias que alertam para os problemas que podem estar a ser criados pelo BUPi, como por exemplo centenas de terrenos reclamados por mais do que um proprietário (JN). Assim, decidiu-se fazer uma análise aos dados do BUPi disponibilizados no https://dados.gov.pt.
Começou-se por descarregar os dados em formato Geopackage (GPKG) e examinar os detalhes técnicos através da ferramenta “ogrinfo” [1].
Esta primeira inspeção revela que os dados não possuem informação alfanumérica (atributos) relativa aos prédios, ao contrário do que é referido no anúncio da eBUPi. Na realidade, só existem dois atributos: um id interno, gerado automaticamente pelo formato GPKG (“fid“), e um atributo “area” em que não é claro se se trata da área levantada ou da área calculada já em ambiente SIG (não são necessariamente a mesma coisa);
É difícil de compreender a falta de alguns atributos indispensáveis, como o número matricial, ou o número e data do processo. Sem essa informação alfanumérica dos prédios, o conjunto de dados perde uma parte relevante da sua utilidade.
Questionada a eBUPi, a justificação foi de que se tratariam de dados protegidos pelo Regulamento Geral de Proteção de Dados (RGPD). Ainda no espaço de discussão oficial da plataforma dados.gov.pt, chamou-se à atenção para o facto desses mesmos atributos estarem disponíveis num conjunto de dados acessível através de um serviço REST, conforme se pode constatar na imagem seguinte:
Estranhamente, estes dados foram subitamente removidos.
De seguida, procedeu-se a uma série de inspeções geométricas.
Para o efeito, os dados foram importados para uma base de dados PostgreSQL/PostGIS com a ferramenta “ogr2ogr” [2], de forma a ter acesso a uma série de funções de SQL (Structured Query Language) espacial, que permitem avaliar vários aspetos do conjunto de dados utilizando as capacidades de uma base de dados relacional de classe Enterprise.
Após a importação, o conjunto de dados passa a ter uma coluna denominada “gid“, que é a chave primária da tabela, com valores numéricos inteiros que identificam de forma unívoca os polígonos/geometrias que representam os prédios (com os mesmos valores da coluna “fid” do GPKG original).
Desta forma, podem obter-se algumas métricas rápidas sobre o conjunto de dados do BUPi:
De forma a quantificar a dimensão deste problema, aplicou-se uma query [6] que identifica todos estes casos de polígonos iguais sobrepostos, produzindo uma lista de resultados com o número de vezes que cada geometria se repete.
Assim, a query devolveu um total de 43776 resultados, mostrando polígonos / prédios idênticos repetidos de 2 até 130(!) vezes. Apresenta-se, de seguida, um excerto do resultado:
<figure class="wp-block-table is-style-stripes">NÚmero de repetições | ID’s dos polígonos / prédios |
---|---|
130 | 75058|75059|75060|75061|75062|75063|75064|75065|75066|75067|75068|75069|75070|75071|75072|75073|75074|75075|75076|75077|75078|75079|75080|75081|75082|75032|75083|75084|75085|75086|75087|75088|75089|74968|74969|74970|74971|74972|74973|74974|74975|74976|74977|74978|74979|74980|74981|74982|74983|74984|74985|74986|74987|74988|74989|74990|74991|74992|74993|74994|74995|74996|74997|74998|74999|75000|75001|75002|75003|75004|75005|75006|75007|75008|75009|75010|75011|75012|75013|75014|75015|75016|75017|75018|75019|75020|75021|75022|75023|75024|75025|75026|75027|75028|75029|75030|75031|75033|75034|75035|75036|75037|75038|75039|75040|75041|75042|75043|75044|75045|75046|75047|75048|75049|75050|75051|75052|75053|75054|75055|75056|75057|75095|75090|75097|75091|75092|75096|75093|75094 |
59 | 1822583|1822578|1822585|1822580|1822581|1822582|1822579|1822584|1822618|1822586|1822587|1822588|1822589|1822590|1822591|1822602|1822603|1822604|1822605|1822606|1822607|1822608|1822609|1822610|1822611|1822612|1822613|1822614|1822615|1822616|1822617|1822619|1822620|1822621|1822622|1822623|1822624|1822625|1822626|1822627|1822628|1822629|1822630|1822631|1822632|1822633|1822634|1822635|1822636|1822592|1822593|1822594|1822595|1822596|1822597|1822598|1822599|1822600|1822601 |
44 | 125905|125873|125874|125875|125876|125877|125878|125879|125880|125881|125882|125883|125884|125885|125886|125887|125888|125889|125890|125891|125892|125893|125894|125895|125896|125897|125898|125899|125900|125901|125902|125903|125904|125906|125907|125908|125909|125910|125911|125912|125913|125914|125915|125916 |
44 | 1722951|1722944|1722945|1722946|1722947|1722948|1722949|1722950|1722952|1722953|1722954|1722955|1722956|1722957|1722958|1722959|1722960|1722961|1722962|1722963|1722964|1722965|1722966|1722967|1722968|1722969|1722970|1722971|1722972|1722973|1722974|1722975|1722976|1722977|1722978|1722979|1722980|1722981|1722982|1722983|1722984|1722985|1722986|1722987 |
42 | 2162638|2162637|2162636|2162635|2162633|2162634|2162660|2162639|2162640|2162654|2162666|2162665|2162655|2162656|2162664|2162663|2162662|2162661|2162657|2162658|2162659|2162641|2162642|2162643|2162644|2162645|2162646|2162647|2162648|2162674|2162673|2162672|2162649|2162650|2162671|2162670|2162651|2162652|2162669|2162668|2162667|2162653 |
39 | 1351212|1351206|1351207|1351208|1351209|1351210|1351211|1351213|1351214|1351215|1351216|1351217|1351234|1351235|1351236|1351237|1351238|1351239|1351240|1351241|1351243|1351242|1351244|1351218|1351219|1351220|1351221|1351222|1351223|1351224|1351225|1351226|1351227|1351228|1351229|1351230|1351231|1351232|1351233 |
38 | 132033|132037|132036|132035|132040|132039|132031|132032|132038|132034|132015|132016|132052|132051|132017|132018|132050|132049|132019|132020|132048|132047|132021|132022|132046|132023|132024|132045|132025|132026|132044|132043|132027|132028|132042|132041|132029|132030 |
35 | 1780724|1780715|1780716|1780717|1780718|1780719|1780720|1780721|1780722|1780723|1780725|1780726|1780727|1780728|1780729|1780730|1780731|1780732|1780733|1780734|1780735|1780736|1780737|1780738|1780739|1780740|1780741|1780742|1780743|1780744|1780745|1780746|1780747|1780748|1780749 |
35 | 543297|543300|543299|543288|543310|543289|543309|543287|543311|543312|543290|543308|543286|543291|543307|543292|543285|543313|543314|543306|543293|543303|543302|543301|543305|543283|543294|543315|543281|543284|543298|543296|543304|543282|543295 |
33 | 65979|65948|65949|65950|65951|65952|65953|65954|65955|65956|65957|65958|65959|65960|65961|65962|65963|65964|65965|65966|65967|65968|65969|65970|65971|65972|65973|65974|65975|65976|65977|65978|65980 |
31 | 1440740|1440729|1440730|1440731|1440732|1440733|1440734|1440735|1440736|1440737|1440738|1440739|1440741|1440742|1440743|1440744|1440745|1440746|1440747|1440748|1440749|1440750|1440751|1440752|1440753|1440754|1440755|1440756|1440757|1440758|1440759 |
30 | 1461309|1461310|1461311|1461312|1461313|1461314|1461315|1461316|1461317|1461318|1461319|1461320|1461321|1461322|1461323|1461324|1461325|1461326|1461327|1461328|1461329|1461330|1461331|1461332|1461333|1461334|1461335|1461336|1461337|1461338 |
30 | 596506|596502|596503|596504|596505|596507|596508|596509|596510|596511|596512|596513|596514|596515|596516|596517|596518|596519|596520|596521|596522|596523|596524|596525|596526|596527|596528|596529|596530|596531 |
Como se pode observar, existe um polígono, correspondente a um prédio, que pertencerá a um dado proprietário, repetido 130 vezes, contando todas elas para o número total de prédios, e respetiva área, registados no BUPi.
O resultado completo desta análise de prédios repetidos, pode ser descarregado a partir do seguinte endereço:
Para se perceber a dimensão do problema, disponibiliza-se a tabela seguinte, com o número de polígonos / prédios repetidos, por número de repetições [7]:
<figure class="wp-block-table aligncenter is-style-stripes">Numero de repetições | NÚmero de POLÍGONOS |
---|---|
2 | 35751 |
3 | 4971 |
4 | 1532 |
5 | 610 |
6 | 333 |
7 | 158 |
8 | 120 |
9 | 68 |
10 | 48 |
11 | 37 |
12 | 34 |
13 | 16 |
14 | 13 |
15 | 12 |
16 | 13 |
17 | 7 |
18 | 12 |
19 | 5 |
20 | 7 |
21 | 4 |
22 | 1 |
23 | 1 |
24 | 2 |
25 | 2 |
26 | 1 |
27 | 3 |
28 | 2 |
30 | 2 |
31 | 1 |
33 | 1 |
35 | 2 |
38 | 1 |
39 | 1 |
42 | 1 |
44 | 2 |
59 | 1 |
130 | 1 |
Ou seja, estão registados 35751 prédios em duplicado, 4971 em triplicado, e assim sucessivamente. Assumindo que os polígonos / prédios idênticos repetidos não fazem sentido numa base de dados cadastral, podemos então avaliar o número e a área global (em hectares) que estas geometrias repetidas representam:
A query [8] revela que:
Novamente assumindo que os polígonos / prédios idênticos e repetidos constituem um erro, pode facilmente criar-se [9] um novo conjunto de dados, removendo os duplicados. Aqui fica esse produto:
O número de features / polígonos e a área total (em hectares) desta nova camada são, respetivamente:
Tendo agora por base esse conjunto de dados sem prédios repetidos, pode verificar-se se existem sobreposições parciais, isto é, se existem conflitos entre os limites dos prédios, algo sempre indesejável numa base de dados cadastral e que era noticiado pelo JN em junho de 2022.
Uma análise visual do conjunto de dados mostra uma panóplia desse tipo de situações:
Para um resultado quantitativo, pode avaliar-se [10] onde ocorre este tipo de sobreposições, que se traduz, muito simplesmente, em território ocupado, em simultâneo, por 2 polígonos diferentes, tal como referido pelo JN: “Há centenas de hectares de terrenos sobrepostos nos cadastros, porque várias pessoas reclamam a mesma área, na totalidade ou em parte, na altura em que fazem a georreferenciação no BUPi (…)“.
Assim:
O número de sobreposições parciais é muito elevado: mais de 30% do total de polígonos / prédios têm limites sobrepostos. O número de sobreposições é preocupante visto que poderão originar no futuro morosos e dispendiosos litígios jurídicos.
A título de exemplo, é interessante comparar este conjunto de dados do BUPi, com outros similares, produzidos por outras entidades nacionais. O Instituto de Financiamento da Agricultura e Pescas (IFAP) publica o parcelário nacional (https://www.ifap.pt/isip/ows/), com os limites das parcelas de explorações agrícolas. A Direção-Geral do Território (DGT) publica um verdadeiro cadastro predial (https://snic.dgterritorio.gov.pt/visualizadorCadastro), com origem em operações executadas ao abrigo de dois regimes: cadastro geométrico da propriedade rústica e cadastro predial experimental.
É importante frisar que o conjunto de dados da DGT só recentemente (01/08/2024) passou a ser disponibilizado de forma aberta (licença Creative Commons 4), no visualizador da Carta Cadastral que integra o Sistema Nacional de Informação Cadastral (SNIC). Contudo, ainda não é possível fazer o descarregamento direto ou através de um serviço WFS. Segundo informação da DGT, a partir de setembro de 2024 esta situação deverá ser corrigida, mas até isso acontecer, este conjunto de dados apenas pode ser obtido através de uma API não documentada.
Com acesso mais ou menos facilitado, foi possível testar ambos os conjuntos de dados, do IFAP e da DGT, e fazer uma análise análoga à que foi executada sobre os dados do BUPi, procurando identificar polígonos / parcelas / prédios repetidos e/ou parcialmente sobrepostos. Os resultados são apresentados nos parágrafos seguintes.
Parcelário do IFAP (continente), com um total de 2098901 polígonos / parcelas, cobrindo 4089238.84 hectares de território:
Cadastro Predial da DGT (não inclui SiNERrGIC), com um total de 1253925 polígonos / prédios, cobrindo 3858993.65 hectares de território:
Tanto no caso do parcelário do IFAP, como no caso do cadastro predial da DGT, são disponibilizadas informações alfanuméricas (atributos) importantes e úteis, sem ir contra as diretivas do RGPD. Exemplos:
Pontos Positivos:
Pontos Negativos:
#### Operações Realizadas ####
[1]
ogrinfo -so opendata-rgg-01072024.gpkg opendata-rgg-01072024
INFO: Open of `opendata-rgg-01072024.gpkg'
using driver `GPKG' successful.
Layer name: opendata-rgg-01072024
Geometry: Multi Polygon
Feature Count: 2255870
Extent: (-94062.316000, -41320.713000) - (162060.682800, 276013.258500)
Layer SRS WKT:
PROJCRS["ETRS89 / Portugal TM06",
BASEGEOGCRS["ETRS89",
ENSEMBLE["European Terrestrial Reference System 1989 ensemble",
MEMBER["European Terrestrial Reference Frame 1989"],
MEMBER["European Terrestrial Reference Frame 1990"],
MEMBER["European Terrestrial Reference Frame 1991"],
MEMBER["European Terrestrial Reference Frame 1992"],
MEMBER["European Terrestrial Reference Frame 1993"],
MEMBER["European Terrestrial Reference Frame 1994"],
MEMBER["European Terrestrial Reference Frame 1996"],
MEMBER["European Terrestrial Reference Frame 1997"],
MEMBER["European Terrestrial Reference Frame 2000"],
MEMBER["European Terrestrial Reference Frame 2005"],
MEMBER["European Terrestrial Reference Frame 2014"],
ELLIPSOID["GRS 1980",6378137,298.257222101,
LENGTHUNIT["metre",1]],
ENSEMBLEACCURACY[0.1]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4258]],
CONVERSION["Portugual TM06",
METHOD["Transverse Mercator",
ID["EPSG",9807]],
PARAMETER["Latitude of natural origin",39.6682583333333,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8801]],
PARAMETER["Longitude of natural origin",-8.13310833333333,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8802]],
PARAMETER["Scale factor at natural origin",1,
SCALEUNIT["unity",1],
ID["EPSG",8805]],
PARAMETER["False easting",0,
LENGTHUNIT["metre",1],
ID["EPSG",8806]],
PARAMETER["False northing",0,
LENGTHUNIT["metre",1],
ID["EPSG",8807]]],
CS[Cartesian,2],
AXIS["easting (X)",east,
ORDER[1],
LENGTHUNIT["metre",1]],
AXIS["northing (Y)",north,
ORDER[2],
LENGTHUNIT["metre",1]],
USAGE[
SCOPE["Topographic mapping (medium scale)."],
AREA["Portugal - mainland - onshore."],
BBOX[36.95,-9.56,42.16,-6.19]],
ID["EPSG",3763]]
Data axis to CRS axis mapping: 1,2
FID Column = fid
Geometry Column = geom
area: Real (0.0)
[2]
ogr2ogr -f PostgreSQL PG:"host=localhost dbname=geocatalogo user=*** password=*** active_schema=catalogo" opendata-rgg-01072024.gpkg opendata-rgg-01072024 -nln catalogo.ebupi -lco FID=gid -overwrite
[3]
geocatalogo=# SELECT count(*) FROM catalogo.ebupi;
count
---------
2255870
(1 row)
[4]
geocatalogo=# SELECT sum(ST_Area(geom))/10000 AS area FROM catalogo.ebupi;
area
--------------------
1419771.2919224324
(1 row)
[5]
geocatalogo=# SELECT count(*) FROM catalogo.ebupi WHERE ST_IsValid(geom) IS FALSE;
count
-------
0
(1 row)
[6]
WITH repeated_polygons AS (
SELECT
ARRAY_AGG(gid) AS id_list,
COUNT(*) AS count,
geom
FROM
catalogo.ebupi
GROUP BY
geom
HAVING
COUNT(*) > 1
)
SELECT
ROW_NUMBER() OVER () AS id,
count,
ARRAY_TO_STRING(id_list, '|') AS id_list,
geom AS geom
FROM
repeated_polygons
ORDER BY count DESC;
[7]
WITH polygon_repetitions AS (
SELECT
COUNT(*) AS repetition_count
FROM
catalogo.ebupi
GROUP BY
geom
HAVING
COUNT(*) > 1
)
SELECT
repetition_count,
COUNT(*) AS num_polygons
FROM
polygon_repetitions
GROUP BY
repetition_count
ORDER BY
repetition_count;
[8]
WITH repeated_polygons AS (
SELECT
ARRAY_AGG(gid) AS id_list,
COUNT(*) AS count,
ST_Area(geom) AS area,
geom
FROM
catalogo.ebupi
GROUP BY
geom
HAVING
COUNT(*) > 1
)
SELECT
SUM(count - 1) AS total_extra_polygons,
SUM((count - 1) * area)/10000 AS total_extra_area
FROM
repeated_polygons;
[9]
CREATE TABLE catalogo.ebupi_no_duplicates AS
WITH ranked_polygons AS (
SELECT
gid,
geom,
ROW_NUMBER() OVER (
PARTITION BY geom
ORDER BY gid ASC
) AS rank
FROM
catalogo.ebupi
)
SELECT
gid,
geom
FROM
ranked_polygons
WHERE
rank = 1;
ALTER TABLE catalogo.ebupi_no_duplicates
ADD CONSTRAINT ebupi_no_duplicates_pkey PRIMARY KEY (gid);
CREATE INDEX ebupi_no_duplicates_geom_idx
ON catalogo.ebupi_no_duplicates
USING GIST (geom);
[10]
CREATE TABLE catalogo.ebupi_partial_overlaps AS
WITH bbox_filtered AS (
SELECT
a.gid AS gid_polygon1,
b.gid AS gid_polygon2,
a.geom AS geom1,
b.geom AS geom2
FROM
catalogo.ebupi_no_duplicates a,
catalogo.ebupi_no_duplicates b
WHERE
a.gid < b.gid
AND a.geom && b.geom
)
SELECT
row_number() over() AS gid,
gid_polygon1,
gid_polygon2,
ST_Area(ST_Intersection(geom1, geom2))/10000 AS area_hectares,
ST_Multi(ST_Intersection(geom1, geom2)) AS geom
FROM
bbox_filtered
WHERE
ST_Intersects(geom1, geom2)
AND (ST_GeometryType(ST_Intersection(geom1, geom2)) = 'ST_Polygon'
OR ST_GeometryType(ST_Intersection(geom1, geom2)) = 'ST_MultiPolygon');
ALTER TABLE catalogo.ebupi_partial_overlaps
ADD CONSTRAINT ebupi_partial_overlaps_pkey PRIMARY KEY (gid);
CREATE INDEX ebupi_partial_overlaps_geom_idx
ON catalogo.ebupi_partial_overlaps
USING GIST (geom);
O universo da geoinformação é vasto e em constante evolução, demandando dos profissionais e entusiastas uma compreensão aprofundada e prática das ferramentas disponíveis. Se você é um usuário do QGIS ou está buscando aprimorar suas habilidades em edição e criação de dados vetoriais, temos uma novidade imperdível para você: o e-book “Guia Prático: QGIS edição vetorial”. Este recurso foi cuidadosamente desenvolvido para proporcionar uma compreensão clara e aplicada das operações vetoriais dentro do software QGIS, abrangendo desde conceitos fundamentais até as ferramentas mais avançadas.
A importância de entender as operações vetoriais vai muito além da simples manipulação de dados. Compreender os modelos de dados vetoriais, como espaguete, dicionário de vértices e arco-nó, é essencial para qualquer profissional que lida com geoinformação. Este e-book não só introduz esses conceitos de maneira acessível, mas também oferece uma visão prática de como aplicá-los utilizando o QGIS.
Além disso, o guia se destaca por sua abordagem metodológica baseada no “paradigma dos quatro universos”, que organiza o entendimento da informação geográfica no ambiente computacional. Esse modelo teórico é um diferencial significativo, pois permite que o usuário compreenda como a geoinformação é estruturada e processada, promovendo uma prática mais consciente e eficiente.
O “Guia Prático: QGIS edição vetorial“ foi estruturado a partir de exemplos reais, usando como base uma carta topográfica georreferenciada na escala 1:100.000, elaborada pelo Instituto Brasileiro de Geografia e Estatística (IBGE). Essa escolha não foi aleatória, mas sim uma estratégia para garantir que os exemplos sejam aplicáveis à realidade dos profissionais que atuam no Brasil.
Você aprenderá a criar e editar dados vetoriais para representar obras e edificações, pontos cotados, curvas de nível, hidrografia, lagos e lagoas. Cada passo é minuciosamente descrito, desde a vetorização até a modificação da ordem e estilo das camadas, ajustando cores e simbologias conforme os padrões de confecção de documentos cartográficos.
O sucesso do “Guia Prático: QGIS edição vetorial” não seria possível sem a expertise dos autores envolvidos em sua criação. Cada autor trouxe uma vasta experiência acadêmica e prática, proporcionando um conteúdo rico e embasado para o leitor.
Danilo Heitor Caires Tinoco Bisneto Melo é Bacharel em Geografia pela Universidade Estadual de Maringá (UEM), com Mestrado em Sensoriamento Remoto pelo Instituto Nacional de Pesquisas Espaciais (INPE) e Doutorado em Geologia pelo Instituto de Geociências da Universidade Federal da Bahia (IGEO/UFBA). Atualmente, é professor no Instituto de Geociências da UFBA. Seu profundo conhecimento em geoinformação e sensoriamento remoto foi fundamental na elaboração deste e-book, garantindo que o conteúdo esteja alinhado com as necessidades dos profissionais e estudantes da área. (danilo.melo@ufba.br)
Lara Cristianni Andrade da Silva é Técnica em Geologia, formada pelo Instituto Federal de Educação, Ciência e Tecnologia da Bahia (IFBA), Campus de Salvador. Atualmente, é graduanda em Geologia pela Universidade Federal da Bahia (UFBA). Sua formação técnica e acadêmica proporciona uma visão prática e detalhada das operações geológicas e da aplicação das ferramentas do QGIS. (laracristianni@gmail.com)
Luan Victor Sacramento dos Santos também é Técnico em Geologia formado pelo Instituto Federal de Educação, Ciência e Tecnologia da Bahia (IFBA), Campus de Salvador, e graduando em Geologia pela UFBA. Com uma sólida base em geoprocessamento, Luan contribuiu para o desenvolvimento das seções práticas do guia, focando na aplicação direta das ferramentas de vetorização. (luan.sacramento2016@gmail.com)
Hildeberto Ferreira Macêdo Filho é Bacharel em Engenharia Ambiental pela Universidade Federal do Amazonas (UFAM), Pós-graduado em Geoprocessamento Aplicado pelo Instituto Federal do Norte de Minas Gerais (IFNMG), e Mestrando em Ciências Ambientais pela UFAM. Sua experiência em engenharia ambiental e geoprocessamento garantiu que o e-book incluísse as melhores práticas na aplicação das ferramentas QGIS, com foco na sustentabilidade e no uso eficiente dos recursos. (hildebertomacedo@ufam.edu.br)
O guia também oferece uma introdução prática ao software QGIS, explorando suas ferramentas de edição vetorial. Seja você um iniciante ou um usuário intermediário, encontrará informações valiosas para otimizar seus projetos. As ferramentas de vetorização no QGIS são detalhadas em uma linguagem acessível, permitindo que o usuário acompanhe cada etapa de forma autônoma.
Desde a criação inicial dos dados vetoriais até os ajustes finais de estilo e simbologia, o e-book guia o leitor por um processo completo e integrado. Ao final, você terá não apenas compreendido os aspectos teóricos da vetorização, mas estará apto a aplicar essas técnicas em seus próprios projetos, garantindo resultados profissionais e consistentes.
Este e-book é indispensável para:
Interessado em elevar seu conhecimento e domínio sobre vetorização no QGIS? O “Guia Prático: QGIS edição vetorial” está disponível para download na comunidade QGIS Brasil. Este é um recurso valioso que complementa seu arsenal de ferramentas e conhecimentos, proporcionando uma compreensão sólida e prática das operações vetoriais.
O post Descubra o E-book “Guia Prático: QGIS edição vetorial” apareceu primeiro em QGISBrasil.
Olá pessoal,
O assunto hoje será um pouco diferente do costume. Quem fez a prova do concurso nacional unificado percebeu que não é tão simples chegar ao cálculo da pontuação final, não é mesmo!
Pensando nisto, criei esta planilha para facilitar o trabalho. Por enquanto apenas o Bloco 1 está pronto, mas havendo interesse, deixe aqui nos comentários para que eu possa saber e assim fazer dos demais blocos.
Deixe nos comentários, também, se gostariam de um vídeo manipulando os dados da planilha.
PLANILHA PARA CONTAGEM DA NOTACaso necessite de suporte ou consultoria para tratamento de dados, visualização, análise de dados alfanuméricos e/ou espaciais, entre em contato pelo email hebertazevedo.consultorgeo@gmail.com
Um abraço e até a próxima
Hebert Guilherme de Azevedo - Consultor em Geotecnologias Adquira nosso curso sobre customização de formulários no QGIS pelo link https://www.udemy.com/course/customizacao-de-formulario-qgis/?referralCode=658DB6242221F6D7BFD7 Veja nossos cursos na plataforma Udemy: https://www.udemy.com/user/hebert-azevedo-2/ Inscreva-se e acompanhe nosso blog: http://bit.ly/2CL63UZ Inscreva-se e acompanhe nosso canal Youtube: http://bit.ly/2J0H2Wa Curta e acompanhe nossa página no Facebook: http://bit.ly/2yGErMppor Hebert Azevedo - Consultor em Geotecnlogias (noreply@blogger.com) em August 20, 2024 01:30 PM
O Docker tornou-se essencial hoje em dia… quase todos os produtos são distribuídos como containers e até muitas vezes nem há outra opção (os scripts de instalação começam a ser raros). O Docker Compose leva isto ainda mais longe, permitindo instalar e executar aplicações constituídas por múltiplos containers.
E qual é o problema com isto?
Bem, o problema é que quando um upgrade docker compose falha já numa fase avançada, por exemplo quando falham as migrações da base de dados, ficamos sem forma de voltar à versão anterior… se alguma coisa nos dados foi alterada pela nova versão, como fazemos para voltar à versão anterior que até funcionava tão bem!???
Este post discute o problema, fornece uma solução manual utilizando funcionalidades padrão do Docker, e apresenta uma solução mais avançada e automatizada para fazer backup de stacks Docker Compose. Aviso – este é o 1º artigo que escrevi com a ajuda do meu assistente pessoal virtual (neste artigo usei o chatgpt, e penso usar outros no futuro para comparar). Fiz alterações no texto, mas acho que se nota bem as secções que são 100% artificiais porque parecem anúncios e o português é um pouco “abrasileirado”.
O Docker Compose ganhou popularidade significativa devido a várias razões principais:
docker-compose.yml
. Isso simplifica o processo de gerir aplicações complexas com múltiplos serviços.O problema é simples: como podemos fazer um backup de todos os volumes usados por todos os containers num docker-compose.yml? Vamos tentar resolver estas 4 questões:
Tanto quanto sei o Docker não fornece uma solução abrangente out-of-the-box (OOTB) para funcionalidades avançadas de backup, mas tem os blocos de construção básicos necessários para criar backups. Vamos ver este processo passo-a-passo…
Se alguém souber de um processo “oficial” backup-restore ou snapshot por favor deixe aqui um comentário.
Primeiro, paramos os serviços para garantir a consistência dos dados.
docker compose stop
Também podemos fazer docker compose down. A diferença do comando stop é que não destrói os containers… ou seja, ao fazermos stop/start os containers mantém o estado. Por exemplo, se alterámos alguma coisa num container como instalar um pacote, essa alteração mantém-se ao fazer start. Se fizermos down/up os containers são recriados no seu estado inicial, perdendo-se todas as alterações que tenhamos feito (exceto claro o que estiver guardado em volumes).
Em seguida, usamos os comandos docker run
e tar
para criar backups dos seus volumes.
Dado que os containers Docker são como máquinas temporárias, em cada reinicio voltam ao seu estado inicial e tudo o que lá pusemos de novo ou atualizado desaparece. Os Volumes são áreas de ficheiros onde podemos guardar dados que são mantidos mesmo quando reiniciamos os containers.
Ora, como explica a AI o que são volumes?
“Volumes são áreas de armazenamento persistente usadas por containers Docker para armazenar dados. Eles permitem que os dados sejam armazenados fora do ciclo de vida dos containers, garantindo que as informações permaneçam intactas mesmo após reinicializações ou recriações dos containers.”
Por exemplo, os Volumes têm de ser usados em containers de bases de dados. De outra forma, quando se reinicializasse esse container a bd voltava ao 0.
Ou seja, um backup de um container é na verdade apenas o backup dos seus volumes. Fazer backup de um container não faz sentido algum…
# Listar volumes
docker volume ls
# Fazer backup de cada volume
docker run --rm -v <nome_do_volume>:/data -v <pasta_local_para_backup>:/backup busybox tar czf /backup/volume_name.tar.gz -C /data .
Aqui temos muito sumo para analisar… usamos 2 capacidades do docker: i) corremos um container temporário que é apagado assim que for terminado (opção -rm) e ii) ligamos este container temporário ao volume que queremos copiar (opção -v). Este é um truque elegante que tem várias coisas importantes:
Pois é… um comando tão simples e afinal cheio de truques…
No script final, mais à frente, vamos fazer algumas coisas adicionais – vamos listar os volumes de cada container referido no docker-compose, incluindo volumes anónimos (sem nome). Isto permite automatizar o backup do grupo de containers.
Copiamos manualmente o ficheiro Docker Compose para o local do backup.
cp docker-compose.yml <pasta_local_para_backup>docker-compose_<data>.yml
Num processo de recriação do estado funcional anterior ao desastre vamos precisar do docker-compose.yml tal como estava antes de qualquer alteração. Também vamos precisar de saber a versão exata de cada container que estava em uso…
Registamos manualmente as versões das imagens usadas nos seus containers.
# Listar todos os containers em execução docker ps
# Para cada container, obter o ID da imagem
docker inspect --format='{{.Name}} {{.Image}}' container_id
Isto é fundamental… há containers com um ritmo acelerado de lançamento de novas versões. Para voltarmos ao estado inicial temos de saber as versões exatas, e alterar o docker-compose.yml para “tagar” essas versões, garantindo que puxamos as mesmas versões que estavam em uso no momento do backup (em geral são puxadas as versões mais recentes). Isto obrigará à edição do .yml antes de o usar.
Finalmente, voltamos a iniciar os containers:
docker-compose start
Isto serve apenas para voltar a ter os containers a funcionar. Uma vez que já fizemos o backup, podemos então prosseguir com o update dos containers.
Obviamente fazer isto tudo antes de fazermos um update aos nossos containers é absurdo… e a mim irrita-me ligeiramente que o docker não tenha um comando docker compose snapshot… mas enfim…
Já que vamos criar um script então mais vale usar compressão multi-thread e uma opção de dry run. Além disso procuramos volumes com e sem nome (anonymous). O nosso script vai chamar-se compose_snapshot.sh
.
pigz
para compressão multi-thread, tornando o processo de backup mais rápido e eficiente.Aqui está o script compose_snapshot.sh
, escrito a meias por mim e pelo meu novo assistente virtual (tenho de lhe arranjar um nome… ART (Asshole Research Transport)*):
#!/bin/bash
# Função para exibir informações de uso
usage() {
echo "Uso: $0 -f <compose_file> -o <output_folder> -p <num_threads> [--dry-run]"
exit 1
}
DRY_RUN=false
NUM_THREADS=4
# Analisar argumentos
while getopts ":f:o:p:-:" opt; do
case ${opt} in
f )
COMPOSE_FILE=$OPTARG
;;
o )
OUTPUT_FOLDER=$OPTARG
;;
p )
NUM_THREADS=$OPTARG
;;
- )
case "${OPTARG}" in
dry-run)
DRY_RUN=true
;;
*)
usage
;;
esac
;;
\? )
usage
;;
esac
done
# Verificar se todos os argumentos necessários são fornecidos
if [ -z "$COMPOSE_FILE" ] || [ -z "$OUTPUT_FOLDER" ] || [ -z "$NUM_THREADS" ]; then
usage
fi
# Verificar se o ficheiro Docker Compose existe
if [ ! -f "$COMPOSE_FILE" ]; then
echo "Erro: Ficheiro Compose $COMPOSE_FILE não encontrado."
exit 1
fi
# Criar pasta de saída se não existir
mkdir -p "$OUTPUT_FOLDER"
# Obter o timestamp atual
timestamp=$(date +%Y%m%d%H%M%S)
# Copiar o ficheiro Docker Compose para a pasta de saída com o timestamp
cp "$COMPOSE_FILE" "$OUTPUT_FOLDER/$(basename "$COMPOSE_FILE" .yml)_${timestamp}.yml"
# Verificar se os serviços Docker Compose estão ativos
if ! docker compose -f "$COMPOSE_FILE" ps | grep -q "Up"; then
echo "Erro: Serviços Docker Compose não estão em execução. Por favor, inicie os serviços usando 'docker compose -f $COMPOSE_FILE up -d' e tente novamente."
exit 1
fi
# Obter todos os IDs dos containers do projeto Docker Compose
CONTAINER_IDS=$(docker compose -f "$COMPOSE_FILE" ps -q)
# Função para fazer backup de um volume
backup_volume() {
local volume_name=$1
local output_folder=$2
local timestamp=$3
local num_threads=$4
local backup_file="$output_folder/${volume_name}_${timestamp}.tar.gz"
if [ "$DRY_RUN" = true ]; then
echo "Faria backup do volume $volume_name para $backup_file"
else
echo "Fazendo backup do volume $volume_name para $backup_file"
docker run --rm -v "$volume_name:/mnt/volume" -v "$output_folder:/backup" alpine \
sh -c "apk add --no-cache pigz && tar cvf - -C /mnt/volume . | pigz -p $num_threads > /backup/${volume_name}_${timestamp}.tar.gz"
fi
}
if [ "$DRY_RUN" = false ]; then
# Parar containers
echo "Parando todos os containers..."
docker compose -f "$COMPOSE_FILE" stop
fi
# Fazer backup dos volumes de cada container
for container_id in $CONTAINER_IDS; do
# Obter os volumes montados de cada container
VOLUMES=$(docker inspect --format '{{ range .Mounts }}{{ .Name }} {{ end }}' $container_id)
for volume in $VOLUMES; do
# Ignorar nomes de volumes vazios (montagens não de volumes)
if [ -n "$volume" ]; then
backup_volume "$volume" "$OUTPUT_FOLDER" "$timestamp" "$NUM_THREADS"
fi
done
# Listar o ID da imagem de cada container
IMAGE_ID=$(docker inspect --format '{{.Image}}' $container_id)
CONTAINER_NAME=$(docker inspect --format '{{.Name}}' $container_id | cut -c2-)
echo "Container $CONTAINER_NAME está a usar a imagem ID $IMAGE_ID" >> "$OUTPUT_FOLDER/image_ids_${timestamp}.txt"
done
if [ "$DRY_RUN" = false ]; then
# Reiniciar containers
echo "Iniciando todos os containers..."
docker compose -f "$COMPOSE_FILE" start
fi
if [ "$DRY_RUN" = true ]; then
echo "Dry run concluído. Nenhum volume foi backupado e nenhum container foi parado."
else
echo "Backup concluído. IDs das imagens salvos em $OUTPUT_FOLDER/image_ids_${timestamp}.txt."
echo "Ficheiro Docker Compose salvo em $OUTPUT_FOLDER/$(basename "$COMPOSE_FILE" .yml)_${timestamp}.yml."
fi
O script compose_snapshot.sh
é uma ferramenta para facilitar o backup de stacks Docker Compose de forma rápida, com garantia de consistência dos dados, compressão multi-thread, rastreamento de versões e com uma opção de dry run. Implementar uma solução de backup como esta não só protege os seus dados, mas também garante que você pode rapidamente recuperar e recriar o seu ambiente quando necessário. Mas pessoalmente é algo que quero fazer sempre e rapidamente antes de qualquer update a um stack docker-compose.
Nota 1: falta o script de restore! Que pretendo em breve publicar…
Nota 2: o método que uso atualmente é colocar o docker dentro de um container LXD. Antes de fazer um update aos containers, faço apenas 1 comando: lxc snapshot <container> <nome_do_snapshot>. Fácil e rápido.
Mas há coisas que não funcionam bem nesta abordagem, como usar GPUs. Daí o script…
Nota 3: há ferramentas que devem fazer backup de containers, como o portainer. Mas mascaram a mecânica das coisas, impedindo que aprendamos como a tecnologia funciona, e substituindo essa aprendizagem por outra que me parece menos útil.
*ART dos fantásticos livros do MurderBot.
The WISE Water Framework Directive maps contain information from the River Basin Management Plans (RBMPs) reported by EU Member States, Norway and the United Kingdom according to article 13 of the Water Framework Directive (WFD). The maps include the River Basin Districts (RBDs) and their sub-units, the surface water bodies (water body category, ecological status or potential and chemical status), the groundwater bodies (aquifer type, quantitative status and chemical status) and the monitoring sites
The Quality Elements map contains information from the River Basin Management Plans (RBMPs) reported by EU Member States, Norway and the United Kingdom according to article 13 of the Water Framework Directive (WFD). The map shows the quality element status or potential for the European surface water bodies. The Quality Element status layer contains the ecological status or potential based on the quality element status value (i.e. the lowest of the known quality element status values per waterbody).