Skip to content

Commit 3d8c1c4

Browse files
doublebyte1Jorge S. Mendes de Jesusdoublebyte1ricardogsilva
authored
Add Portuguese translation of the workshop (#216)
* - updated event and workshop team * - updated workshop team * - updated workshop team * - added portuguese translation * - added github action * - fixed req path * - fixed req path * - added translation for nav bar * - added pt translation for introduction * - added pt translation of setup section * - enable workflow to run manually * - added exercises 1 and 2 of data publishing section * - Updated site title in Portuguese - Updated workshop team * - added translations for coverages, maps, features, maps, tiles, standard, and first dataset * feat: Complete PT translation of workshop docs (26 files). Add PT translations for conclusion, OGC API exercises 6-8,and all advanced topics. Consistent future periphrastic tense and 1st person plural * - addd translation for OARec * - added translations for ogc api edr and ogc api processes * - added portuguese translations for records and conclusion * - updated ogcapi image * - fixed typo * - updated metadata link of hyderabad * - updated room number * Rework pt translations for introduction and oafeat exercises * Rework pt translations for introduction and oafeat exercises * - removed test workflow * - Addressed mkdocs build --strict warnings * - renamed ogcapi image file - removed extra spaces and lines --------- Co-authored-by: Jorge S. Mendes de Jesus <[email protected]> Co-authored-by: doublebyte1 <[email protected]> Co-authored-by: Ricardo Garcia Silva <[email protected]>
1 parent 51163b7 commit 3d8c1c4

31 files changed

+4018
-14
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
.DS_Store
22
workshop/exercises/data/tiles
33
workshop/content/site
4+
5+
.idea
6+
.venv
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
title: Administração
3+
---
4+
5+
# Administração
6+
7+
## Visão geral
8+
9+
A pygeoapi fornece uma API de administração (consulte a [documentação](https://docs.pygeoapi.io/en/latest/admin-api.html) da pygeoapi para mais informações sobre como ativar, configurar e usar) em suporte à gestão da sua configuração. A API (não uma OGC API) é implementada como um serviço RESTful para ajudar a criar, atualizar, substituir ou eliminar vários elementos da configuração da pygeoapi. Uma UI simples apenas de leitura é implementada como parte da API de administração.
10+
11+
## Interface de utilizador
12+
13+
Por design, a pygeoapi não fornece uma verdadeira interface de utilizador para administrar a configuração. Dado que a API de administração existe, algumas opções podem ser consideradas para desenvolver uma UI de administração:
14+
15+
- autónoma
16+
- aplicação simples sem conectividade à API de administração da pygeoapi
17+
- construída a partir do [esquema](https://github.com/geopython/pygeoapi/blob/master/pygeoapi/schemas/config/pygeoapi-config-0.x.yml) de configuração da pygeoapi
18+
- permite copiar uma configuração já existente da pygeoapi
19+
- permite gerar configuração da pygeoapi para copiar/colar numa implementação da pygeoapi
20+
- pode ser implementada em qualquer lugar (por exemplo, GitHub Pages)
21+
- integrada
22+
- aplicação conectada a uma implementação da pygeoapi
23+
- construída a partir do [esquema](https://github.com/geopython/pygeoapi/blob/master/pygeoapi/schemas/config/pygeoapi-config-0.x.yml) de configuração da pygeoapi
24+
- lê/escreve uma configuração da pygeoapi em tempo real através da API de administração da pygeoapi (controlo de acesso)
25+
- implementada como parte de uma aplicação Docker Compose
26+
27+
!!! note
28+
29+
Tem a sua própria ideia para uma UI de administração da pygeoapi? Conecte-se com a [comunidade da pygeoapi](https://pygeoapi.io/community) para discutir a sua ideia!
Lines changed: 220 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
---
2+
title: Exercício 9 - pygeoapi como ponte para outros serviços
3+
---
4+
5+
# Exercício 9 - pygeoapi como ponte para outros serviços
6+
7+
Nesta secção vamos explorar como a pygeoapi pode ser usada como um interface para re-publicar serviços web com distintas interfaces. Estas pontes podem ajudar [organizações a migrar de OWS para OGC API](https://ogcapi-workshop.ogc.org/transition-and-migration).
8+
9+
## Publicar WFS como OGC API - Features
10+
11+
Um caso de uso importante para a pygeoapi é fornecer uma interface OGC API - Features sobre endpoints Web Feature Service (WFS)
12+
ou ESRI FeatureServer existentes. Neste cenário, diminui a barreira de acesso e aumenta a usabilidade de serviços existentes para
13+
uma audiência mais ampla. Vamos configurar uma API sobre um WFS existente (correndo nos servidores da cidade de Florença).
14+
15+
!!! question "Atualizar a configuração da pygeoapi"
16+
17+
Abra a configuração da pygeoapi num editor de texto.
18+
Encontre a linha `# START - EXERCISE 8 - WFS Proxy`.
19+
20+
Adicione uma nova secção de conjunto de dados descomentando as linhas até `# END - EXERCISE 8 - WFS Proxy`:
21+
22+
23+
``` {.yaml linenums="1"}
24+
suol_epicentri_storici:
25+
type: collection
26+
title: Epicentros dos principais sismos históricos
27+
description: Localização dos epicentros dos principais sismos históricos no território da Cidade Metropolitana de Florença classificados por ano e intensidade
28+
keywords:
29+
- sismos
30+
links:
31+
- type: text/xml
32+
rel: canonical
33+
title: Epicentros dos principais sismos históricos
34+
href: http://pubblicazioni.cittametropolitana.fi.it/geoserver/territorio/wfs?request=getCapabilities&service=WFS&version=2.0.0
35+
hreflang: it
36+
extents:
37+
spatial:
38+
bbox: [10.94, 43.52, 11.65, 44.17]
39+
crs: http://www.opengis.net/def/crs/OGC/1.3/CRS84
40+
providers:
41+
- type: feature
42+
name: OGR
43+
data:
44+
source_type: WFS
45+
source: WFS:http://pubblicazioni.cittametropolitana.fi.it/geoserver/territorio/wfs?
46+
source_capabilities:
47+
paging: True
48+
source_options:
49+
OGR_WFS_LOAD_MULTIPLE_LAYER_DEFN: NO
50+
gdal_ogr_options:
51+
EMPTY_AS_NULL: NO
52+
GDAL_CACHEMAX: 64
53+
CPL_DEBUG: NO
54+
id_field: cpti_id
55+
crs:
56+
- http://www.opengis.net/def/crs/OGC/1.3/CRS84
57+
- http://www.opengis.net/def/crs/EPSG/0/4258
58+
- http://www.opengis.net/def/crs/EPSG/0/3857
59+
- http://www.opengis.net/def/crs/EPSG/0/3003
60+
storage_crs: http://www.opengis.net/def/crs/EPSG/0/3003
61+
title_field: d
62+
layer: territorio:suol_epicentri_storici
63+
```
64+
65+
Guarde o ficheiro e reinicie o Docker Compose. Navegue para <http://localhost:5000/collections>
66+
para avaliar se o novo conjunto de dados foi publicado.
67+
68+
Note estes importantes excertos de configuração sob `providers`:
69+
70+
* Usamos o [Fornecedor OGR](https://docs.pygeoapi.io/en/latest/data-publishing/ogcapi-features.html#ogr) da pygeoapi.
71+
Este é o backend mais versátil da pygeoapi para suportar numerosos formatos. Usar a biblioteca GDAL/OGR (bindings Python) permite à pygeoapi conectar-se a [cerca de 80+ Formatos Vetoriais](https://gdal.org/drivers/vector).
72+
Podíamos ter usado o Fornecedor `OGR` em vez do Fornecedor `SQLiteGPKG` acima no exercício `osm_places-vec` acima.
73+
74+
* `storage_crs` denota o CRS (Sistema de Referência de Coordenadas) no qual o conjunto de dados é armazenado (o padrão é CRS84, ou seja, 'longitude, latitude')
75+
* `crs` é um array de CRSs que podem ser especificados para as Funcionalidades serem devolvidas (parâmetro `crs=`), ou para a sua bounding box (parâmetro `bbox-crs=`). O padrão também é CRS84.
76+
77+
O suporte CRS permite efetivamente à pygeoapi *reprojetar* os dados do seu CRS de armazenamento (aqui EPSG:3003)
78+
de acordo com [OGC API - Features - Part 2: Coordinate Reference Systems by Reference](https://docs.opengeospatial.org/is/18-058r1/18-058r1.html).
79+
A secção Avançada desta workshop [elaborará o suporte CRS da pygeoapi](../advanced/crs.md).
80+
81+
82+
## Publicar WMS como OGC API - Maps
83+
84+
Podemos usar o provider/fornecedor WMSFacade da pygeoapi para publicar interfaces OGC Web Map Service (WMS) como OGC API - Maps.
85+
86+
Vamos configurar uma API sobre um WMS existente no Servidor de Demonstração MapServer:
87+
88+
<https://demo.mapserver.org/cgi-bin/msautotest>
89+
90+
91+
!!! note
92+
93+
Sinta-se à vontade para usar um WMS à sua escolha!
94+
95+
!!! question "Atualizar a configuração da pygeoapi"
96+
97+
Abra a configuração da pygeoapi num editor de texto.
98+
Encontre a linha `## START - EXERCISE 8 - WMS Proxy`.
99+
100+
Adicione uma nova secção de conjunto de dados descomentando as linhas até `## END - EXERCISE 8 - WMS Proxy`:
101+
102+
Certifique-se de manter a indentação YAML adequada.
103+
104+
``` {.yaml linenums="1"}
105+
wms-facade-demo:
106+
type: collection
107+
title: Demonstração WMS Facade
108+
description: Demonstração WMS Facade
109+
keywords:
110+
- WMS facade
111+
links:
112+
- type: text/html
113+
rel: canonical
114+
title: MapServer
115+
href: https://mapserver.org
116+
hreflang: en
117+
extents:
118+
spatial:
119+
bbox: [-180,-90,180,90]
120+
crs: http://www.opengis.net/def/crs/OGC/1.3/CRS84
121+
providers:
122+
- type: map
123+
name: WMSFacade
124+
data: https://demo.mapserver.org/cgi-bin/msautotest
125+
options:
126+
layer: world_latlong
127+
style: default
128+
format:
129+
name: png
130+
mimetype: image/png
131+
```
132+
133+
Execute os seguintes pedidos no seu navegador web:
134+
135+
- mapa padrão: <http://localhost:5000/collections/wms-facade-demo/map?f=png>
136+
- largura/altura específicas: <http://localhost:5000/collections/wms-facade-demo/map?f=png&width=800&height=600>
137+
- área de interesse específica (bbox do Canadá): <http://localhost:5000/collections/wms-facade-demo/map?f=png&width=800&height=600&bbox=-142,42,-52,84>
138+
139+
![](../assets/images/maps-response.png){ width=80% }
140+
141+
!!! tip
142+
143+
Experimente com os seus próprios valores de bbox e largura/altura!
144+
145+
## Publicar CSW como OGC API - Records
146+
147+
Nesta secção veremos como publicar Catalogue Service for the Web (CSW) como OGC API - Records. Para isso, usaremos o serviço CSW [pycsw OGC CITE demo](https://demo.pycsw.org/cite/).
148+
149+
!!! question "Atualizar a configuração da pygeoapi"
150+
151+
Abra a configuração da pygeoapi num editor de texto.
152+
Encontre a linha `# START - EXERCISE 8 - CSW Proxy`.
153+
154+
Adicione uma nova secção de conjunto de dados descomentando as linhas até `# END - EXERCISE 8 - CSW Proxy`:
155+
156+
``` {.yaml linenums="1"}
157+
cite_demo:
158+
type: collection
159+
title: pycsw OGC CITE demo e Implementação de Referência
160+
description: pycsw é uma implementação de servidor OARec e OGC CSW escrita em Python. O pycsw implementa totalmente a OGC API - Records e a OpenGIS Catalogue Service Implementation Specification (Catalogue Service for the Web). O desenvolvimento inicial começou em 2010 (anunciado mais formalmente em 2011). O projeto é certificado OGC Compliant, e é uma Implementação de Referência OGC. Desde 2015, o pycsw é um Projeto OSGeo oficial. O pycsw permite a publicação e descoberta de metadados geoespaciais através de numerosas APIs (CSW 2/CSW 3, OpenSearch, OAI-PMH, SRU). Repositórios existentes de metadados geoespaciais também podem ser expostos, fornecendo um componente de metadados e catálogo baseado em normas de infraestruturas de dados espaciais. O pycsw é Open Source, lançado sob uma licença MIT, e executa em todas as principais plataformas (Windows, Linux, Mac OS X)
161+
keywords:
162+
- ogc
163+
- cite
164+
- conformidade
165+
- interoperabilidade
166+
extents:
167+
spatial:
168+
bbox: [-180,-90,180,90]
169+
crs: http://www.opengis.net/def/crs/OGC/1.3/CRS84
170+
providers:
171+
- type: record
172+
name: CSWFacade
173+
data: https://demo.pycsw.org/cite/csw
174+
id_field: identifier
175+
time_field: datetime
176+
title_field: title
177+
```
178+
179+
Pode explorar a coleção de catálogo com proxy usando estes endpoints:
180+
181+
* página de metadados da coleção: <http://localhost:5000/collections/cite_demo>
182+
* lista de registos: <http://localhost:5000/collections/cite_demo/items>
183+
* registo: <http://localhost:5000/collections/cite_demo/items/urn:uuid:19887a8a-f6b0-4a63-ae56-7fba0e17801f>
184+
185+
!!! tip
186+
187+
Lembre-se de que pode usar o cliente QGIS sugerido [aqui](https://dive.pygeoapi.io/publishing/ogcapi-records/#client-access) para explorar esta API.
188+
189+
## Publicar SensorThings API como OGC API - Features
190+
191+
A [norma OGC SensorThings API](https://ogcapi-workshop.ogc.org/api-deep-dive/sensorthings/) oferece interfaces RESTful para interconectar dispositivos IoT, dados, de forma aberta e unificada. Embora existam alguns clientes que suportam esta norma, há muito mais que suportam OGC API - Features.
192+
193+
A ponte SensorThings da pygeoapi permite fazer proxy das entidades SensorThings (por exemplo: `Thing` , `Sensor`, `DataStream`, `ObservedProperty` ) em coleções de funcionalidades.
194+
195+
Nesta secção veremos como Publicar um `Thing` da SensorThings API como uma coleção OGC API - Features, que pode então ser consumida por vários clientes, como [os listados aqui](../publishing/ogcapi-features.md#client-access)
196+
197+
!!! question "Atualizar a configuração da pygeoapi"
198+
199+
Abra a configuração da pygeoapi num editor de texto.
200+
Encontre a linha `# START - EXERCISE 8 - SensorThings Proxy`.
201+
202+
Adicione uma nova secção de conjunto de dados descomentando as linhas até `# END - EXERCISE 8 - SensorThings Proxy`:
203+
204+
``` {.yaml linenums="1"}
205+
toronto_bikes:
206+
type: collection
207+
title: Toronto Bikes SensorThings
208+
description: A localização geográfica com coordenadas para a estação de partilha de bicicletas de Toronto
209+
keywords:
210+
- sedimentos
211+
extents:
212+
spatial:
213+
bbox: [-180,-90,180,90]
214+
crs: http://www.opengis.net/def/crs/OGC/1.3/CRS84
215+
providers:
216+
- type: feature
217+
name: SensorThings
218+
data: https://toronto-bike-snapshot.sensorup.com/v1.0/
219+
entity: Things
220+
```
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
---
2+
title: Implementação na cloud
3+
---
4+
5+
# Implementação na cloud
6+
7+
A implementação em infraestruturas cloud e conceitos como Microsserviços e [Twelve-Factor](https://12factor.net) apresentam requisitos específicos para
8+
como o software é projetado e implementado. A pygeoapi suporta estes conceitos, tendo uma pegada baixa em CPU e memória, e não persiste estado
9+
do utilizador, sendo portanto capaz de escalar sem riscos.
10+
11+
## pygeoapi e Docker
12+
13+
Uma [imagem Docker](https://hub.docker.com/r/geopython/pygeoapi) está disponível para a pygeoapi. Pode executar a imagem localmente como:
14+
15+
=== "Linux/Mac"
16+
17+
<div class="termy">
18+
```bash
19+
docker run -p 5000:80 geopython/pygeoapi:latest
20+
```
21+
</div>
22+
23+
=== "Windows (PowerShell)"
24+
25+
<div class="termy">
26+
```bash
27+
docker run -p 5000:80 geopython/pygeoapi:latest
28+
```
29+
</div>
30+
31+
!!! question "Rever o Dockerfile da pygeoapi"
32+
33+
Note no [Dockerfile da pygeoapi](https://github.com/geopython/pygeoapi/Dockerfile) como o ficheiro open api é gerado como parte do script de arranque do Docker.
34+
35+
Numa configuração típica, substituir-se-ia o ficheiro de configuração padrão da pygeoapi na imagem por um personalizado e incluir a pasta de dados:
36+
37+
!!! example "usar configuração personalizada"
38+
39+
=== "Linux/Mac"
40+
41+
<div class="termy">
42+
```bash
43+
docker run -p 5000:80 \
44+
-v $(pwd)/pygeoapi-config.yml:/pygeoapi/local.config.yml \
45+
-v $(pwd)/geodata:/geodata https://hub.docker.com/r/geopython/pygeoapi:latest
46+
```
47+
</div>
48+
49+
=== "Windows (PowerShell)"
50+
51+
<div class="termy">
52+
```bash
53+
docker run -p 5000:80 -v ${pwd}/pygeoapi-config.yml:/pygeoapi/local.config.yml -v ${pwd}/geodata:/geodata https://hub.docker.com/r/geopython/pygeoapi:latest
54+
```
55+
</div>
56+
57+
58+
Alternativamente, pode construir uma nova imagem Docker incluindo tanto a configuração como os dados para o serviço.
59+
60+
```
61+
FROM geopython/pygeoapi:latest
62+
COPY ./my.config.yml /pygeoapi/local.config.yml
63+
```
64+
65+
Pode ter notado que o ficheiro de configuração da pygeoapi inclui uma referência ao endpoint no qual a pygeoapi é publicada. Esta configuração deve
66+
corresponder ao endpoint público do serviço (domínio, caminho e porta).
67+
68+
Por defeito, a imagem Docker da pygeoapi executará a partir do caminho raiz `/`. Se precisar de executar a partir de um sub-caminho e ter todos os URLs internos corretos pode
69+
definir a variável de ambiente `SCRIPT_NAME`.
70+
71+
=== "Linux/Mac"
72+
73+
<div class="termy">
74+
```bash
75+
docker run -p 5000:80 -e SCRIPT_NAME='/mypygeoapi' \
76+
-v $(pwd)/my.config.yml:/pygeoapi/local.config.yml -it geopython/pygeoapi
77+
# navegue para http://localhost:5000/mypygeoapi
78+
```
79+
</div>
80+
81+
=== "Windows (PowerShell)"
82+
83+
<div class="termy">
84+
```bash
85+
docker run -p 5000:80 -e SCRIPT_NAME='/mypygeoapi' -v ${pwd}/my.config.yml:/pygeoapi/local.config.yml -it geopython/pygeoapi
86+
# navegue para http://localhost:5000/mypygeoapi
87+
```
88+
</div>
89+
90+
# Resumo
91+
92+
Parabéns! Agora pode implementar a pygeoapi como um serviço cloud native.

0 commit comments

Comments
 (0)