## Sesc Av. Paulista
# Ilustrações experimentais usando mapas e dados geográficos - Aula 1
### `hackmd.io/@sesc-av-paulista/ilustra-mapas-2025-a1` - [índice](https://hackmd.io/@sesc-av-paulista/ilustra-mapas-2025)

## Manipulando dados georeferenciados com programação em Python
### Apresentação
### Ferramentas
- [Thonny IDE (Python) + py5](https://abav.lugaralgum.com/como-instalar-py5/)
- Biblioteca **osmnx** (`osmnx`)
- Dados do projeto **OpenStreetMap**
- `geopandas` (GeoDataFrame), `shapely` (geometrias), `networkx` (grafos).
```python
"""
Meus estudos de mapas - docstring
"""
import py5 # biblioteca de desenho
import osmnx as ox # para pegar dados do OSM
sé = ox.geocode('Praça da Sé, São Paulo, SP, Brasil')
municipio = ox.geocode_to_gdf('São Paulo, Brasil')
def setup():
py5.size(600, 600)
x_min, y_min, x_max, y_max = municipio.total_bounds
map_w, map_h = (x_max - x_min), (y_max - y_min)
x_scale = y_scale = py5.height / map_h
translate_and_scale_gdf(municipio, -x_min, -y_min, x_scale, -y_scale)
forma = municipio.geometry[0]
py5.shape(forma, 0, 600)
py5.save_frame('são paulo.png')
def translate_and_scale_gdf(gdf, x, y, x_scale, y_scale):
gdf['geometry'] = gdf.geometry.translate(x, y)
gdf['geometry'] = gdf.geometry.scale(
xfact=x_scale, yfact=y_scale, origin=(0, 0))
py5.run_sketch(block=False)
```
### Perguntas
Vamos testar o CRS `EPSG:31983` semana que vem! Parece ser Sirgas mas em metros :)
### Códigos
```python
"""
Tina
meus estudos de mapas
"""
import py5
import osmnx as ox
sé = ox.geocode('Praça da Sé, São Paulo, SP Brasil')
municipio = ox.geocode_to_gdf('São Paulo, Brasil')
def setup():
py5.size(600,600)
py5.save_frame ('São Paulo.png')
```
Jessuca
```python
"""
meus estudos de mapas jessica
"""
import osmnx as ox # para pegar dados do osm
import py5 # biblioteca de desenho
sé = ox.geocode('Praça da Sé, São Paulo, sp, Brasil')
municipio = ox.geocode_to_gdf('São Paulo, Brasil')
def setup():
py5.size(600, 600)
forma = municipio.geometry[0]
py5.shape(forma, 0, 0, 600, 600)
py5.run_sketch()
```
Manacapuro - Laura
```python
"""
laura
"""
import osmnx as ox # para pegar os dados OSM
import py5 #biblioteca de desenho
manacapuru = ox.geocode('Manacapuru, AM, Brasil')
municipio = ox.geocode_to_gdf('Manacapuru, AM, Brasil')
def setup():
py5.size(600, 600)
x_min, y_min, x_max, y_max = municipio.total_bounds
map_w, map_h = (x_max - x_min), (y_max - y_min)
x_scale = y_scale = py5.height / map_h
translate_and_scale_gdf(municipio, -x_min, -y_min, x_scale, -y_scale)
forma = municipio.geometry[0]
py5.shape(forma, 0, 600)
py5.save_frame('manacapuru.png')
def translate_and_scale_gdf(gdf, x, y, x_scale, y_scale):
gdf['geometry'] = gdf.geometry.translate(x, y)
gdf['geometry'] = gdf.geometry.scale(
xfact=x_scale, yfact=y_scale, origin=(0, 0))
py5.run_sketch(block=False)
```