Prezados leitores,
Há alguns posts atrás falei sobre a utilização do GeoFence, que é um plugin que nos permite subir ao nível da camada e definir a permissão conforme nossa necessidade, utilizando as configurações através da interface gráfica. Hoje irei mostrar como realizar as configurações de acesso/restrição através da API REST.
1. Criar regra para restringir acesso a qualquer layer e usuário
Para isso vou criar um arquivo XML que irei dar o nome de geofence_restrict_all_access.xml, e ele irá conter o seguinte conteúdo:
<?xml version="1.0" encoding="UTF-8"?> <Rule> <access>DENY</access> </Rule>
Após criar esse arquivo, basta executar o comando abaixo:
curl.exe -v -u admin:geoserver -XPOST -H "Content-type: text/xml" -d @geofence_restrict_all_access.xml http://localhost:8080/geoserver/rest/geofence/rules
2. Criar regra para permitir acesso do ROLE ADMIN as camadas
Como no passo 1 eu restringi o acesso a todo e qualquer usuário, agora estou permitindo o acesso a camadas para o ROLE ADMIN, através das informações contidas no arquivo geofence_restrict_admin.xml detalhado abaixo:
<?xml version="1.0" encoding="UTF-8"?> <Rule> <userName>ADMIN</userName> <access>ALLOW</access> </Rule>
Após a criação do arquivo, é necessário executar no console o comando abaixo:
curl.exe -v -u admin:geoserver -XPOST -H "Content-type: text/xml" -d @geofence_restrict_admin.xml http://localhost:8080/geoserver/rest/geofence/rules
3. Adicionar usuário geocursos
Agora vamos adicionar um usuário chamado geocursos, e partir dele vamos criar nossas regras de acesso. Neste caso não criamos um arquivo XML, pois o comando está direto na requisição, veja:
curl.exe -v -u admin:geoserver -X POST http://localhost:8080/geoserver/rest/security/usergroup/users/ -H "accept: application/json" -H "content-type: application/xml" -d "<?xml version=\"1.0\" encoding=\"UTF-8\"?><user>\t<userName>geocursos</userName>\t<password>geocursos</password>\t<enabled>true</enabled></user>"
4. Adicionar regras para o usuário geocursos
Agora vamos adicionar regras de acesso para o nosso novo usuário (geocursos), e na regra que segue abaixo estamos dando acesso ao método GetMap da camada topp:states (através do serviço WMS). Vamos colocar essas regra dentro do arquivo geofence_restrict_geocursos.xml:
<?xml version="1.0" encoding="UTF-8"?> <Rule> <userName>geocursos</userName> <workspace>topp</workspace> <layer>states</layer> <service>WMS</service> <request>GetMap</request> <access>ALLOW</access> </Rule>
Após criado o aquivo XML, basta executar o comando abaixo no console::
curl.exe -v -u admin:geoserver -XPOST -H "Content-type: text/xml" -d @geofence_restrict_geocursos.xml http://localhost:8080/geoserver/rest/geofence/rules
5. Adicionar o usuário fernandoquadro
Nesse passo, estamos adicionando um novo usuário, nesse caso o fernandoquadro, conforme demonstra o comando abaixo:
curl.exe -v -u admin:geoserver -X POST http://localhost:8080/geoserver/rest/security/usergroup/users/ -H "accept: application/json" -H "content-type: application/xml" -d "<?xml version=\"1.0\" encoding=\"UTF-8\"?><user>\t<userName>fernandoquadro</userName>\t<password>fernando</password>\t<enabled>true</enabled></user>"
6. Adicionar regra para o usuário fernandoquadro
Diferente do que configuramos para o usuário geocursos, para o usuário fernandoquadro estamos dando acesso a camada topp:states porém apenas quando o atributo STATE_ABBR for igual a FL. Qualquer outra informação que esteja nessa camada não será exibida para o usuário fernandoquadro. Para isso, vamos criar o arquivo geofence_restrict_fernandoquadro.xml com o seguinte conteúdo:
<?xml version="1.0" encoding="UTF-8"?> <Rule> <userName>fernandoquadro</userName> <workspace>topp</workspace> <layer>states</layer> <access>ALLOW</access> <layerDetails> <layerType>VECTOR</layerType> <cqlFilterRead>STATE_ABBR = 'FL'</cqlFilterRead> <cqlFilterWrite>STATE_ABBR = 'FL'</cqlFilterWrite> <attribute> <name>STATE_NAME</name> <datatype>String</datatype> <accessType>READWRITE</accessType> </attribute> <attribute> <name>STATE_ABBR</name> <datatype>String</datatype> <accessType>READWRITE </accessType> </attribute> <attribute> <name>the_geom</name> <datatype>MultiPolygon</datatype> <accessType>READWRITE</accessType> </attribute> </layerDetails> </Rule>
Feito isso, basta executar o comando abaixo:
curl.exe -v -u admin:geoserver -XPOST -H "Content-type: text/xml" -d @geofence_restrict_fernandoquadro.xml http://localhost:8080/geoserver/rest/geofence/rules
PS: Se você perceber acima, dentro da tag LayerDetails, tem algumas informações dentro das tags attribute. Essa configuração, segundo a documentação oficial é pra restringir o acesso a coluna do banco (apresentar apenas as que estivem listadas no arquivo de configuração), porém até a versão atual (2.21.0) ela ainda não funciona via REST, apenas se você realizar a configuração pela interface gráfica do GeoServer. Esse erro já foi reportado a equipe de desenvolvimento do GeoServer, porém, ainda não foi solucionada.
Esse foi apenas um exemplo de como realizar suas restrições de acesso utilizando o GeoFence pela API REST, mas claro que as possibilidade são enormes e tudo vai depender da sua necessidade. Espero que o post tenha sido útil.
En esta entrada vamos a explicarte como hacer un globo en 3D con QGIS, Para crear un globo en 3D podemos utilizar el complemento Globe Builder. Este complemento está diseñado para agregar visualización de globo al mapa o diseño actual. Instalación del plugin Globe Builder El complemento se puede instalar a través del repositorio oficial ...
Prezados leitores,
Gostaria de informá-los que estão abertas as inscrições para mais uma turma do Curso Online de GeoServer que estarei ministrando pela GEOCURSOS. O objetivo do curso é que você aprenda a configurar e compartilhar dados geográficos na internet com o GeoServer. Veja abaixo a ementa:
O curso ocorrerá entre os dias 21 e 30 de junho, terças, quartas e quintas das 19:00 as 21:30 (horário de Brasília).
Aqueles que poderem divulgar para seus contatos, agradeço. Quem quiser saber mais informações sobre o curso, pode obtê-las nos seguintes links:
Na versão 2.21.0 foi adicionado um novo recurso há muito tempo solicitado, que é a capacidade de renomear e alterar a ordem dos atributos ao publicar uma camada.
Também é possível alterar o tipo de atributo e, com o uso de expressões ECQL, gerar novos atributos em tempo real.
O exemplo acima contorna as limitações do shapefile para usar nomes mais longos e cria um novo atributo capital dinamicamente a partir de uma expressão, conforme mostrado na saída GetFeatureInfo a seguir.
Fonte: GeoServer Blog
Prezados leitores,
No dia 24 deste mês foi lançada a versão 2.21.0 do GeoServer, e com ela me parece que chegamos a uma solução para o problema do idioma (que vem se arrastando desde a versão 2.8.x).
Como é possível visualizar na imagem acima, a partir desta versão foi adicionado a possibilidade do usuário escolher o idioma desejado a partir de um seletor de idiomas na tela de login do GeoServer.
Com isso não solucionamos o problema da linguagem pt_BR, que ainda está incompleta e com palavras em mais de um idioma (português, inglês e espanhol), porém agora a quem estiver incomodando a salada mista do idioma pt_BR tem a possibilidade de facilmente realizar a alteração para outro idioma sem a necessidade da “gambiarra” descrita no post de 2016.
Fonte: GeoServer Blog
Prezados leitores,
A equipe de desenvolvimento do GeoServer anunciou ontem o lançamento da versão 2.21.0. Esta provavelmente será a última versão a dar suporte ao Java 8, desta forma, incentiva-se a transição para o Java 11.
Algumas funcionalidade importantes nessa nova versão:
Fonte: GeoServer Blog
Las nuevas versiones del software de modelización Hec-Ras soluciona muchos problemas y trae nuevas funcionalidades que la comunidad llevaba tiempo demandando y que resultan muy útiles a la hora de realizar modelizaciones hidráulicas sobre todo en modelos bidimensionales.
Una de estas novedades es la posibilidad de introducir elementos unidimensionales como pueden ser puentes en modelos bidimensionales de una manera muy intuitiva y sencilla. Si que es verdad que en cierta manera esto ya se podía realizar en versiones anteriores, pero con las nuevas actualizaciones se ha avanzado mucho en este ámbito y es digno de mención en esta publicación.
De todas las novedades, nos vamos a centrar en dar unas pinceladas de como introducir estructuras tipo puentes en la malla de un modelo bidimensional:
Lo primero que sería necesario es generar la conexión: Localizada la zona donde queremos colocar nuestra estructura, definimos su eje con la herramienta SA/2D Area Conn, de izquierda a derecha mirando hacia aguas abajo. Tened en cuenta que para que la malla se ajuste correctamente a nuestra estructura será necesario, tras esto, volver a generar los puntos de cálculo y recalcular la malla.
El siguiente paso sería definir el puente, esto se realiza de manera muy similar a un modelo unidimensional. Para esto lo primero que hay que hacer es entrar en el editor de la conexión y seleccionar en la pestaña de Structure Type: bridge.
Una vez que el programa entiende que queremos definir esa conexión como un puente nos aparecerán las pestañas típicas de definición de puentes en unidimensional. No nos vamos a centrar en la definición del puente ni en las ecuaciones, lo que si es importante mencionar es que el programa va a realizar el cálculo de la estructura como si fuese un elemento unidimensional y para ello necesitara secciones unidimensionales.
Las secciones que se necesitan para el cálculo de un puente con Hec-Ras son 4:
• Una un poco aguas arriba del inicio de la estructura. Esta sección transversal se genera automáticamente aguas arriba de la plataforma del puente en función del campo Distance ingresado por el usuario.
• Otra justo en la entrada de la estructura, la colocara automáticamente el programa sabiendo el eje y el grosor del tablero
• Otra justo en la salida de la estructura, la colocara automáticamente el programa sabiendo el eje y el grosor del tablero.
• Y la ultima un poco aguas abajo del final de la estructura. Como la primera se genera automáticamente aguas abajo de la plataforma del puente en función del campo Distance ingresado por el usuario.
Por otro lado, estas secciones necesitaras tener unos valores de Manning para estar completamente definidas, para esto entramos en Opciones de la conexión y seleccionamos Bridge Cross Section. En la pestaña que aparece será posible definir estos valores para cada sección.
Por último habrá que definir las ecuaciones que queremos que el programa utilice para realizar el cálculo y las propiedades de la tabla de parámetros hidráulicos. En esta publicación no nos centraremos en la explicación de cada una de las ecuaciones y la selección de parámetros, si se quiere profundizar más sobre este tema se puede acceder a los propios manuales del programa.
Una vez realizado esto, ya tendríamos nuestro puente definido en el modelo, quedaría revisar los resultados y la tabla de propiedades hidráulicas de nuestro puente para corroborar que el cálculo es correcto.
Nota: Hay una valoración incluida en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Modelización de puentes en modelos bidimensionales 2D con Hec-Ras se publicó primero en Cursos GIS | TYC GIS Formación.
Gracias a los datos gratuitos se han desarrollado numerosos proyectos y ha evolucionado el mundo geoespacial. Un ejemplo son los datos de OpenStreetMap (OSM) creados por numerosas personas de manera altruista y colaborativa. En otras entradas ya vimos cómo disponer de ellos a través de QGIS y de la librería OSMnx de Python.
En esta ocasión vamos a ver cómo descargar esos datos para trabajar con ellos con el lenguaje de programación R en RStudio, para ello trabajaremos con la librería de R “osmdata”
Para la instalación, desde Anaconda, lanzamos RStudio y ya en nuestro proyecto en RStudio (versión 3.6.3), instalamos la librería:
A continuación, la activamos:
Aquí puedes obtener más información de las características de los datos que componen OpenStreetMap. También se pueden mostrar en R con este comando:
En próximas entradas se mostrará cómo trabajar más en detalle con esta librería y los datos OpenStreetMap (OSM).
Nota: Hay una valoración incluida en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Cómo acceder a datos de OpenStreetMap (OSM) a través de R se publicó primero en Cursos GIS | TYC GIS Formación.
Existen muchas plataformas para trabajar con Python, la más famosa los notebooks de Jupyter. Pero también se puede utilizar este lenguaje de programación en Sistemas de Información Geográfica (SIG) como QGIS o ArcGIS Pro (el hermano pequeño de ArcGIS).
Esto es posible gracias a una librería denominada ArcPy , la cual posee varios módulos (ojo difieren un poco de ArcGIS) que permiten incorporar a nuestro código las funcionalidades de ArcGIS Pro y sus diferentes extensiones, los recordamos:
Y te preguntarás, ¿qué funciones fundamentales podemos hacer con Python si realmente dichas herramientas ya están integradas en el SIG? Pues básicamente la automatización de procesos, te detallo algunas de las funciones más destacadas:
Y esto es sólo un ejemplo, desde TYC GIS te ofertamos una amplia formación de cursos de Python en diferentes entornos SIG, desde nivel básico al nivel avanzado. Ojo, también se han integrados notebooks en ArcGIS online para trabajar con Python en la nube.
Nota: Hay una valoración incluida en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Funcionalidades de Python en ArcGIS Pro se publicó primero en Cursos GIS | TYC GIS Formación.
En un mapa, la altitud se indica mediante las curvas de nivel. Una curva de nivel es una línea que, en un mapa, une los puntos (cotas) que tienen el mismo valor de altitud. Estas suelen representarse en tonalidades marrones para el terreno y en tonalidades azules para glaciares y mares y océanos. Las curvas ...
En el siguiente tutorial vamos a mostrarte cómo crear un MDT a partir de un CSV (archivo de texto delimitado por comas), con las cotas. Para ello, utilizaremos un proceso conocido como interpolación espacial. Te animamos a seguir este tutorial, puedes descargarte los datos necesarios pinchando aquí. ¿Qué es la interpolación espacial? Por interpolación espacial se entiende ...
La IDE provincial de Cáceres es una IDE muy activa que con frecuencia dispone de nuevas actualizaciones y va progresivamente aumentando su contenido. Es una IDE muy activa que nos encanta y un ejemplo a seguir.
Publicado por la editora.
En anteriores entradas os hemos explicado como se instala Leaflet, esta vez vamos a realizar un visor de información aeronáutica utilizando la base de datos de aviación mundial gratuita tambien llamada OpenAIP.
Para poder visualizar OpenAIP, vamos ha usar los Leaflet Providers.
Los Leaflet Providers nos proporcionan capas de mosaicos de diferentes proveedores, incluidos OpenStreetMap, Stamen, Esri y OpenWeatherMap.
Desde su página web podemos ver una lista completa de su uso, dicha pagina nos mostrara el código que tenemos que programar para poder usarlos
Lo primero que debemos hacer es crear un simple archivo HTML en el que instalaremos las dependencias de Leaflet y Leaflet Providers, tambien crearemos el mapa donde va ha ir nuestro visor y el archivo de JavaScript donde programaremos todo para poder realizarlo.
Una vez ya tengamos escrito el código HTML vamos a crear una carpeta que se llamará js y dentro crearemos un archivo JavaScript llamado index.js.
Lo primero que vamos a escribir en este archivo es la iniciación del mapa.
Una vez tengamos iniciado el mapa vamos añadir la capa base de dicho mapa, en este caso usaremos la capa de Open Street Map.
Y ya solo nos quedaría añadir la capa del OpenAIP para poder montar nuestro visor aeronáutico.
Nota: Hay una valoración incluida en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Cómo crear un visor de información aeronáutica con Leaflet se publicó primero en Cursos GIS | TYC GIS Formación.
La geocodificación consiste en convertir datos de ubicaciones (por ejemplo la dirección de una calle) en un dato geográfico (coordenadas geográficas). Esta operación tiene múltiples aplicaciones y es cada vez más empleada. La operación contraria, es decir, a partir de unas coordenadas geográficas obtener una dirección se llama geocodificación inversa. Existen varios motores de búsqueda ...
El próximo 21 junio, junto con el verano, comenzará un nuevo curso dedicado a la plataforma ArcGIS online (AGOL) de Esri. En esencia es un Sistema de Información Geográfica en la nube que incorporar numerosas funcionalidades. Estamos acostumbrados a trabajar con SIG de escritorio, pero el trabajar en la nube te permite más independencia de tu máquina, colaboración entre diferentes personas de tu organización y por supuesto la posibilidad de compartir tu trabajo.
Con más detalle, ¿qué vas a aprender en este curso? A lo largo de las diferentes unidades aparte de tener asesoramiento en tu formación, aprenderás a:
Nota: Hay una valoración incluida en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Qué vas a aprender en el curso sobre ArcGIS online se publicó primero en Cursos GIS | TYC GIS Formación.
Hay diferentes programas (el complemento QuickOSM de QGIS) y librerías (por ejemplo, de Python) que permiten la descarga de datos de OpenStreetMap de manera directa. No sé dónde vi que con el plugin OSMDownloader, también de QGIS, incluso se descargaba la simbología y quise comprobarlo.
He trabajado con la versión 3.4. de QGIS , y he instalado la herramienta desde la pestaña “Complementos” de QGIS.
Con él haces un recuadro abarcando la zona de interés y guardas el archivo en la ruta de tu interés (en formato .osm). Ojo activa la casilla para que se cargue directamente en QGIS.
Si la descarga ha tenido éxito te aparecerá este mensaje:
Y si deseleccionas el mapa base y algunas capas verás la simbología propia de OSM y en la ventana de estilos las reglas que se utilizan para adoptar dicha simbología.
Nota: Hay una valoración incluida en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Descarga de datos de OpenStreetMap (OSM) con simbología en QGIS se publicó primero en Cursos GIS | TYC GIS Formación.
En este post, queremos mostrarte cómo generar modelos de pendiente y orientación en QGIS. Para realizar estos cálculos, debemos de partir de un Modelo Digital del Terreno (MDT), sobre el que podemos realizar análisis de superficie empleando la variable cota o altitud alojada en cada una de sus celdillas/píxeles. Trabajar con datos ráster es muy ...
Hoy en día existen muchos programas que nos permiten trabajar con datos geoespaciales. Sistemas de Información Geográfica como QGIS o ArcGIS, o lenguajes de programación como R y Python que facilitan nuestra labor analizando y facilitando dicha información.
Es por esto que la posibilidad de crear y desarrollar nuevas herramientas que permitan ayudarnos ante nuevos frentes de trabajo es algo imprescindible, y los desarrolladores se amparan en herramientas para crearlas. Vamos a ver algunos ejemplos:
Los complementos (plugins) de QGIS, los cuales aportan mucha funcionalidad se desarrollan bajo el lenguaje de programación Python. Para facilitar su montaje QGIS posee una propia herramienta, Qt Designer.
Además, existen a su vez otros complementos de QGIS que permiten crear tus propios complementos como Plugin Builder 3.
Ya se ha hablado en este blog cómo trabajar con R en RStudio, R es un lenguaje de programación muy utilizado en análisis y visualización de datos. Esto es gracias a la gran cantidad de desarrolladores que hay detrás elaborando muchos paquetes o librerías que amplían su funcionalidad.
Hay paquetes que ayudan a realizar nuevas librerías para R de manera que, si encuentras un vacío y necesitas resolver un determinado problema en R, puedes crear tu propia herramienta con “devtools”.
El SDK de ArcObjects para ArcGIS y ArcGIS Pro trabaja con el lenguaje de programación .NET y te ayuda a crear herramientas (“tools”) que integran estos programas SIG.
Otra manera de desarrollar cajas de herramientas y/o herramientas para ArcGIS/ArcGIS Pro, es con Python, en este caso se utiliza la librería ArcPy (mientras que con QGIS la librería por excelencia es PyQGIS).
Nota: Hay una valoración incluida en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Desarrollo de herramientas para QGIS, ArcGIS/ArcGIS Pro o R se publicó primero en Cursos GIS | TYC GIS Formación.
por Hebert Azevedo - Consultor em Geotecnlogias (noreply@blogger.com) em April 30, 2022 06:19 PM
por Hebert Azevedo - Consultor em Geotecnlogias (noreply@blogger.com) em April 26, 2022 12:10 PM
Python es un lenguaje de programación muy versátil y extendido con el que es posible realizar análisis espacial y de datos. Es un lenguaje que extiende enormemente las capacidades de un GIS. Cuenta con más de 300.000 proyectos. Estas librerías hacen que Python sea muy útil cuando necesitamos conseguir un fin específico: desde lo tradicional ...
En esta entrada de nuestro blog vamos a comentar las mejoras y novedades más destacadas de la nueva versión de Leaflet, la 1.8.0. La versión 1.8.0 es la culminación de un año y medio de desarrollo, ya que desde septiembre de 2020 la librería JavaScript para crear mapas web Leaflet no había lanzado ninguna versión. ...
Tableau es una de las aplicaciones más utilizadas a nivel mundial para el análisis y visualización de datos.
Uno de sus grandes potenciales es la alta capacidad de conectar con diferentes formatos de datos como ya vimos en una entrada anterior.
Tableau también ofrece la posibilidad de realizar conexiones con numerosos servidores de datos, resultando esto de gran utilidad ya que se pueden integrar la información que cualquier usuario o empresa tenga alojada en alguno de estos servidores. Tableau da soporte a empresas tan potentes como Google, Esri, Oracle y también a software de tipo open source como la base de datos PostgreSQL.
Por ejemplo, si realizamos una conexión, con PostgreSQL, se realizaría de la siguiente manera:
Y se incluirían las tablas (alfanuméricas y geoespaciales) que tenemos en la database de PostgreSQL/PostGIS que le hemos indicado y ya podríamos trabajar con dicha información en Tableau.
Desde TYC GIS te ofrecemos formación sobre PostgreSQL/PostGIS y Tableau si quieres aprender más sobre estos programas.
Nota: Hay una valoración incluida en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Servidores de datos que conectan con Tableau se publicó primero en Cursos GIS | TYC GIS Formación.
Olá, pessoal
Importantíssimo documento sobre a regularização fundiária na Amazônia paraense. Este ebook foi organizado pelo Dr em Ciências do Desenvolvimento Socioambiental (UFPA/NAEA) Durbens Martins Nascimento.
Este documento reúne um debate interessante acerca dos instrumentos e mecanismos disponíveis para avançar no processo de regularização fundiária na Amazônia paraense. Apresentam metodologias aplicadas a caracterização de imóveis da Amazônia em quatro tipologias. Mostra a evolução histórica das sesmarias e terrenos de marinha, bem como o uso da cartografia digital para caracterização e identificação das terras da União.
Boa leitura!
por Luis Lopes (noreply@blogger.com) em April 18, 2022 10:34 PM
En la mayoría de las ocasiones, cuando queremos ejecutar un algoritmo (conocido también como herramienta) en nuestro script de QGIS, nos encontramos con que no sabemos qué parámetros necesita el algoritmo, cuáles son opcionales, y qué tipo de dato requiere cada uno de ellos.
Pues bien, conocer sus parámetros se puede hacer fácilmente desde la documentación de QGIS o desde la propia consola de Python que incluye QGIS.
1. Desde la documentación de QGIS
La documentación de QGIS (también conocida como la guía de usuario de QGIS) incluye infinidad de información que nos facilita el uso del programa. Si entramos a la documentación, veremos multitud de apartados. En este caso, para conseguir información sobre los algoritmos, nos interesa el apartado 23: Proveedor de procesos y algoritmos.
En este apartado se nos ofrece información de cada unos de los algoritmos, tanto de los nativos de QGIS, como de los externos (GDAL, LAStools…).
Si entramos, por ejemplo, al apartado 23.1. Proveedor de algoritmos de QGIS, tendremos numerosos subapartados referentes a los diferentes tipos de algoritmos de QGIS (Análisis vectorial, Herramientas de ráster, Análisis de red, etc). Dentro de cada subapartado, tenemos de nuevo más apartados con cada una de las herramientas.
Por ejemplo, dentro del apartado 23.1.16 Superposición vectorial, tengo la herramienta “Intersección”.
Si hacemos click en el algoritmo nos aparecerá una descripción de lo que hace la herramienta y, lo que viene al caso en esta entrada, los parámetros de la herramienta. Si nos fijamos, el algoritmo “Intersección” necesita una capa de entrada vectorial (INPUT), una capa vectorial de superposición (OVERLAY), los campos que queremos mantener de la capa de entrada (INPUT_FIELDS) y de la capa de superposición (OVERLAY_FIELDS), el prefijo de los campos superpuestos (OVERLAY_FIELDS_PREFIX) y la salida (OUTPUT).
Es muy importante fijarse en los parámetros que son opcionales (donde en la columna etiqueta aparece “Opcional”), en el tipo de dato que requiere cada parámetro y en la descripción, donde nos puede indicar, por ejemplo, el valor predeterminado que toma si no se le especifica ningún valor.
También nos es de mucha utilidad información que viene más abajo, acerca de cómo ejecutar el algoritmo (ID del algoritmo y su procesamiento dentro del script).
2. A través de la consola de Python de QGIS
Si tenemos el ID del algoritmo y estamos trabajando directamente sobre la consola de Python, podemos consultar cuáles son los parámetros de ese algoritmo.
Por si no lo sabéis, es posible consultar el ID del algoritmo situando el cursor del ratón justo encima de una herramienta (“qgis” es un alias de “native”, por lo que en los algoritmos podemos usar ambos).
Con el ID del algoritmo ya podemos conocer los parámetros en la consola introduciendo el ID como argumento de la función algorithmHelp(). Por tanto, si en la consola de Python de QGIS escribimos: processing.algorithmHelp(“native:intersection”).
Como observamos, nos aparecen los parámetros, los tipos de datos que aceptan y una breve descripción del parámetro.
Si quieres aprender más sobre Python y QGIS no dudes en contactarnos para más información sobre nuestro Curso online de PyQGIS.
Nota: Hay una valoración incluida en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Cómo saber los parámetros de los algoritmos de PyQGIS se publicó primero en Cursos GIS | TYC GIS Formación.
La nueva versión de QField 2.0 ya está aquí y supone llevar el trabajo de campo GIS profesional a un nivel completamente nuevo. QField es la aplicación móvil profesional para QGIS más utilizada, que permite a los usuarios implementar sus proyectos QGIS existentes en el campo, editando datos espaciales y alfanuméricos sobre la marcha. QField ...
Las capas XYZ son unos recursos muy utilizados y extremadamente útiles para poder cargar mapas base de una manera muy sencilla en QGIS. Una capa XYZ es un mapa de teselas, donde la X y la Y identifican las coordenadas de la tesela, mientras que la Z identifica el nivel de zoom a la que se representan esas teselas.
En esta entrada vamos a explicar cómo cargar una capa XYZ como mapa base, pero no de manera manual, sino utilizando Python y QGIS.
Para el ejemplo vamos a coger una capa XYZ de OpenStreetMap: OSM Standard. Lo primero en el script para llevar a cabo la importación de la capa XYZ de OSM Standard es importar las librerías y clases que nos hacen falta.
/** from qgis.core import QgsRasterLayer, QgsProject */
Después, referenciamos una variable que contenga la URL de la capa XYZ y otra variable que contenga la clase QgsRasterLayer. Como primer parámetro le introduciremos una concatenación del tipo de capa (XYZ) y la url anteriormente referenciada. Como segundo parámetro le introducimos el nombre que queremos que tenga la capa en nuestro proyecto, y como tercer argumento le introducimos el proveedor (WMS).
/** url = 'https://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png&zmax=19&zmin=0&crs=EPSG3857' rasterLayer = QgsRasterLayer("type=xyz&url=" + url, 'OSM', "wms") */
Para añadir la capa, simplemente debemos introducir el método addMapLayer(capa) de la clase QgsProject.
/** QgsProject.instance().addMapLayer(rasterLayer) */
Con esto ya tendríamos nuestra capa XYZ cargada en nuestro proyecto, pero colocada encima de todas las demás capas. Como en este caso estamos hablando de un mapa base, lo que queremos es colocarlo debajo de todas las demás capas dentro de nuestro árbol de capas. Para ello, como segundo argumento del método addMapLayer (argumento “añadir a la leyenda”, que por defecto se incluye como True), le especificamos False. De esta manera la capa no se añade directamente al canvas.
/** QgsProject.instance().addMapLayer(rasterLayer, False) */
Para añadir la capa al canvas, vamos a referenciar el árbol de capas con el método layerTreeRoot() de la clase QgsProject y vamos a utilizar su función insertLayer(), la cual en su primer argumento le podemos especificar el índice que tomará la capa en el árbol de capas (-1 indica que cogerá el último índice, por lo que estará debajo de todas las demás capas). Como segundo argumento le especificamos la capa que queremos añadir.
/** root = QgsProject.instance().layerTreeRoot() root.insertLayer(-1, rasterLayer) */
Este sería el código completo:
/** from qgis.core import QgsRasterLayer, QgsProject url = 'https://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png&zmax=19&zmin=0&crs=EPSG3857' rasterLayer = QgsRasterLayer("type=xyz&url=" + url, 'OSM', "wms") QgsProject.instance().addMapLayer(rasterLayer, False) root = QgsProject.instance().layerTreeRoot() root.insertLayer(-1, rasterLayer) */
Si deseas aprender más sobre PyQGIS no dudes en contactarnos para conseguir información sobre nuestro curso online de PyQGIS.
Nota: Hay una valoración incluida en esta entrada, por favor, visita esta entrada para valorarla.
La entrada Cómo importar un mapa base XYZ con PyQGIS se publicó primero en Cursos GIS | TYC GIS Formación.
Olá, pessoal
Quero trazer aqui um curso bacana, e gratuito, sobre características do projeto cartográfico e dos principais programas de geoprocessamento. Trata-se do curso online "Comunicação cartográfica e a linguagem dos mapas", ministrado pelo professor Dr Christian Nunes, que também é colunista deste blog :)
O curso está disponível neste link (clique aqui) e tem como público alvo discentes do ensino técnico, graduação e pós-graduação em Geografia e Engenharias. Docentes do ensino fundamental, médio, técnico e/ou do ensino superior.
Boa aula!
por Luis Lopes (noreply@blogger.com) em April 11, 2022 11:00 AM
Olá pessoal,
Olha só que legal. Foi lançado o Atlas Geográfico Escolar do estado do Amapá. O Atlas é um produto didático-pedagógico construído conjuntamente pelo Instituto de Pesquisa Científicas e Tecnológicas do Estado do Amapá (IEPA) e Universidade Federal do Amapá (UNIFAP), via o Programa Estadual de Gerenciamento Costeiro (GERCO) e o Programa de Pós-Graduação em Geografia (PPGEO/UNIFAP).
Capa do Atlas Geográfico Escolar do estado do Amapá |
Segue o link para download, clique aqui
por Luis Lopes (noreply@blogger.com) em April 08, 2022 11:58 PM
AcuGIS es uno de los pocos servidores especializados en WEB GIS. Ellos mismo dicen que es líder mundial en hosting GIS, pero es que no parece que haya muchas más opciones si queremos contratar un servicio de alojamiento que nos permita trabajar con PostGIS o GeoServer. Con sede en los EEUU, AcuGIS proporciona servicios de ...
por Hebert Azevedo - Consultor em Geotecnlogias (noreply@blogger.com) em April 06, 2022 12:55 AM
por Luis Lopes (noreply@blogger.com) em March 31, 2022 02:13 AM
por Luis Lopes (noreply@blogger.com) em March 31, 2022 01:53 AM
![]() |
PARNA da Restinga de Jurubatiba. Figura extraída do artigo |
![]() |
PARNA da Restinga de Jurubatiba |
![]() |
A esquerda o MDE e a direita o MDT do PARNA da Restinga de Jurubatiba |
por Luis Lopes (noreply@blogger.com) em March 31, 2022 12:30 AM
por Luis Lopes (noreply@blogger.com) em March 31, 2022 12:23 AM
StoryMap JS es una herramienta sencilla y gratuita que nos ayuda a contar historias con mapas. Las ventajas de utilizar StoryMap JS son, entre otras: Tiene una interfaz para crear las historias muy amigable. No es necesario instalar ningún programa. Todo el contenido se aloja en la nube. No es necesario programar nada, ya que ...
Olá, pessoal!
Tutorial simples, mas não menos importante: como coletar elementos climáticos (temperatura, vento, umidade do ar, etc) no QGIS.
Tudo é feito pelo complemento chamado QWeather, que usa API do Yahoo Weather.
Aproveita e se inscreve no nosso canal!
por Luis Lopes (noreply@blogger.com) em March 28, 2022 10:30 PM
por Luis Lopes (noreply@blogger.com) em March 26, 2022 08:23 PM
Inscreva-se em nosso canal neste link youtube.com/geoluislopes
por Luis Lopes (noreply@blogger.com) em March 23, 2022 02:20 AM
O sistema de segurança do Geoserver é muito bom por si só. Ele permite criar vários Papéis, Grupos, Usuários e fazer combinações entre eles, protegendo nossos dados. Caso você não conheça o sistema de segurança do GeoServer temos uma série com 1, 2, 3, 4 posts aqui no blog.
Como mencionado no título, iremos utilizar neste post o GeoFence, e para um melhor entendimento irei descrever um problema para demonstrar o funcionamento do plugin.
1. Descrição do Problema
Imagine um cenário, onde você tem uma camada que contém informações para todas as regiões do mundo e diversos atributos. Por exemplo, a camadas de Lugares (Places) que pode ser encontrada em https://www.naturalearthdata.com/downloads/10m-cultural-vectors/10m-populated-places/
Baixe o shape no link acima e configure como uma camada do workspace cite no seu GeoServer.
Neste cenário nós queremos restringir o acesso de acordo com a planilha abaixo:
Se você perceber estamos entrando no nível de camada, e querendo realizar restrições nas informações (ex: ter acesso apenas aos lugares localizados no Brasil e apenas a alguns atributos específicos por role e/ou usuário).
Para conseguir isso, usaremos o GeoFence, que nos permite subir ao nível da camada e definir a permissão conforme nossa necessidade. A ferramenta de GeoFence pode ser usada via interface do usuário ou como uma API REST.
2. Trabalhando com GeoFence
2.1 Instalação
Se você estiver usando GeoServer a partir da versão 2.18, lembre-se de instalar apenas o plugin GeoFence Server, e não instalar o plugin GeoFence Client. Para este teste, eu estou usando a versão 2.18.4, desta forma a página para download é http://geoserver.org/release/2.18.4/
Uma vez realizado o download, coloque todos os jars em /geoserver/webapps/geoserver/WEB-INF/lib/ e reinicie o geoserver. Uma vez feito, você verá novas opções adicionadas na guia de segurança:
2.2 Configuração
Finalizada a instalação, você deve ir na guia GeoFence e clicar no botão de conexão de teste e ver a mensagem de conexão bem-sucedida. Se você não vir isso, significa que você não instalou o plugin corretamente, ou seja, reveja os passos anteriores.
2.3 Definindo papéis e usuários
Precisamos definir os usuários e papéis (roles) de acordo com a declaração do problema, na guia Configurações -> Usuários, Grupos, Funções. Veja como:
2.3.1. Criar os papéis (roles) brasil_gov, brasil_public e latam
2.3.2. Criar os usuários class_1, class_2 e normal vinculados ao papel brasil_public
2.3.3. Criar o usuário gov vinculado ao papel brasil_gov
2.3.4. Criar o latam_user vinculado ao papel latam
A configuração deverá ficar assim:
2.4 Definindo regras de dados do GeoFence
Para definir as regras de dados do GeoFence de acordo com a declaração do nosso problema vamos em Secutiry -> Geofencing Data Rules, e em seguinte clique em adicionar nova regra:
Vamos agora entender os parâmetros para realizar as configurações:
Priority — Mantenha essa prioridade
Role — Selecione o nome da role
Username — Se você deseja criar uma regra específica para um determinado usuário, selecione o nome, caso contrário, mantenha o valor selecionado como *
Service – Se você deseja criar uma regra específica para o serviço (WMS, WFS, etc.), selecione o nome do serviço, caso contrário, mantenha o valor selecionado como *
Request — Se você selecionar qualquer serviço específico, as solicitações vinculadas a ele estarão disponíveis para seleção
Workspace — Selecione a área de trabalho em qual sua camada pertence, mantendo * aplicará uma regra a todas as áreas de trabalho
Layer — Se você deseja aplicar a regra a uma camada específica na workspace selecionada, selecione o nome, mantendo * aplicará a regra a todas as camadas da workspace
IP Address range — O endereço IP permitido que pode usar o geoserver pode ser escrito aqui, mantendo ele em branco tornará o geoservidor disponível globalmente
Access — Aqui definimos se queremos permitir que o usuário/função selecionado acesse o espaço de trabalho/camada selecionado. as opções disponíveis são ALLOW (PERMITIR), DENY (NEGAR), LIMIT (LIMITAR).
Layer details — Se você selecionar um nome de camada específico, essa opção estará disponível. Aqui será definida a regra de acordo com a especificação da camada. Marque a caixa de seleção “Specify Layer Details” para ver mais opções.
Allowed Styles — Aqui você pode definir o estilo permitido visível para o usuário, se deixado em branco, todos os estilos estarão disponíveis
CQL Read Filter — Aqui você pode definir o filtro CQL que será aplicado à camada, limitando assim os recursos baseados a este filtro
CQL Write Filter — Aqui você pode definir o filtro que será aplicado na solicitação de gravação (por exemplo, WFSTransaction)
Allowed area (WKT) — Usando isso, você pode restringir a visibilidade dos recursos específicos apenas para determinadas áreas. Como indica o rótulo do campo, o formato aceito é o WKT, como no exemplo abaixo:
POLYGON ((-127.96875 -57.51582286553883, -32.34375 -57.51582286553883, -32.34375 31.952162238024975, -127.96875 31.952162238024975, -127.96875 -57.51582286553883))
Layer Attributes — Selecione os atributos da camada que você deseja permitir que os usuários usem. Certifique-se de que o atributo de geometria esteja sempre ATIVADO para que você possa ver a camada. As opções disponíveis para seleção são:
None — para ocultar o atributo
Readonly — Apenas para ler os dados, mas a transação não será permitida
Readwrite — O usuário pode ler e gravar este atributo
PS: Lembre sempre de permitir o acesso ao campo geometria
Assim, todas as regras serão definidas. Veja:
Para criar as regras acima, na guia “Layer Details” foram usados os campos de CQL para todas as regras que continham as roles brasil_gov e brasil_public. Para a regra latam, não foi utilizado o campo CQL e sim o campo WKT, passando um polígono com as dimensões da América Latina.
3. Testes
Quando fizermos login como gov, veremos os seguintes dados:
Quando fizermos login como class_1, veremos os seguintes dados:
Quando fizermos login como class_2, veremos os seguintes dados:
Quando fizermos login normal, veremos os seguintes dados:
Quando fizermos login como latam_user, veremos os seguintes dados:
Este material foi baseado no post “Using Geofence to add layer level security in Geoserver” escrito originalmente por Krishna G. Lodha
Fonte: Blog Krishna G. Lodha