## 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) ![sketch_2025_02_24](https://hackmd.io/_uploads/r1k-NUcJWx.png) ## 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) ```