4.9 KiB
name, description, tags
| name | description | tags | |||||||
|---|---|---|---|---|---|---|---|---|---|
| adres-analyse | Genereer uitgebreide adresrapporten met geocodering, isochronen (bereikbaarheidskaarten), en andere locatie-gerelateerde analyses voor Nederlandse adressen. |
|
Adres Analyse
Genereer modulaire rapporten voor Nederlandse adressen. Elk onderdeel wordt als aparte sectie toegevoegd aan het rapport.
Rapport generatie
Hoofdscript: scripts/rapport.py (ook geïnstalleerd op /root/adres-analyse/rapport.py)
python3 scripts/rapport.py "Adres Plaats"
Output is markdown formaat, direct naar stdout (voor Telegram) én wordt opgeslagen in Obsidian vault (map: huizenjacht).
Huidige onderdelen
1. Bereikbaarheid (Isochroon)
- Auto profiel:
driving-car, 20 minuten, blauw op de kaart - Fiets profiel:
cycling-regular, 30 minuten, groen op de kaart - Metrics: Oppervlakte (km²), reach factor, geografisch bereik
- Data bron: ORS op
192.168.1.71:9080
2. Voorzieningen in de buurt
- Bron: lokale PostGIS database met geselecteerde POI's uit heel Nederland OSM extract
- Docker:
postgis/postgisop poort5433, databaseadresanalyse - Import:
import-osm.shdownloadtnetherlands-latest.osm.pbfenosm-poi-import.pyimporteert alleenshop=supermarketenamenity=school - Routeverrijking: ORS Matrix voor
driving-carencycling-regular - Output: top 5 supermarkten en top 5 scholen in rapport + markers op Folium kaart
3. (Toekomstige onderdelen)
- OV bereikbaarheid
- Luchtkwaliteit
- Demografie
- Vastgoeddata
Workflow (intern)
Stap 1: Geocoding (adres → coördinaten)
Gebruik PDOK Locatieserver (gratis, geen API key nodig):
curl -s "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q={adres}&rows=5&fl=centroide_ll,weergavenaam,postcode,woonplaatsnaam,type,huisnummer"
Parsing:
- Zoek naar
type=adresvoor exacte adres match (niet straat) centroide_llis in formaatPOINT(lon lat)→ split op spatie, coords[0]=lon, coords[1]=lat- Fallback naar eerste resultaat als geen adres match
Stap 2: Isochroon ophalen
POST naar ORS:
curl -s -X POST "http://192.168.1.71:9080/ors/v2/isochrones/driving-car" \
-H "Content-Type: application/json" \
-d '{
"locations": [[lon, lat]],
"range": [1200],
"attributes": ["area","reachfactor","total_pop"]
}'
Parameters:
rangein seconden (20 min = 1200)- Response bevat GeoJSON FeatureCollection met polygon geometrie
- GeoJSON wordt opgeslagen in
/tmp/isochroon_{timestamp}.geojson
Stap 3: Kaart genereren (optioneel)
Gebruik script: scripts/generate-map.py
python3 scripts/generate-map.py "Griendvelden 14, Best" /root/adres-analyse/kaart.html
Voor Telegram delivery:
- Open HTML in browser:
browser_navigatenaarfile:///root/adres-analyse/kaart.html - Screenshot maken:
browser_visionmet vraag over kaart inhoud - Screenshot pad gebruiken in MEDIA: directive voor Telegram
Vereisten: pip install folium shapely
Pitfalls
-
Geocoding exactheid: PDOK zoekt op straatnaam als huisnummer niet exact matcht - altijd checken of
type=adresin response. Zoek door eerste 5 resultaten voor adres match. -
ORS cycling profielen niet geactiveerd: Alleen
driving-carwerkt momenteel. Fietsprofielen geven error "RoutingProfile.getGraphhopper() is null". Ziereferences/ors-setup.mdvoor activatie-instructies. -
Coördinaten volgorde: PDOK geeft
POINT(lon lat)(WGS84), maar ORS verwacht[[lon, lat]]in array. Let op volgorde bij parsen. -
Oppervlakte conversie: ORS geeft area in m², niet km². Deel door 1_000_000 voor km² of 10_000 voor hectare.
-
Folium installatie:
pip install folium shapelynodig voor kaartgeneratie (niet voor basis rapport). -
Telegram media: HTML-kaarten werken niet direct in Telegram - maak PNG screenshots via browser tools.
-
Rapport zonder kaart: Het rapport.py script genereert alleen tekst. Voor visuele kaart: gebruik apart folium script + browser screenshot workflow.
-
Obsidian API: Vereist dat Obsidian draait met Local REST API plugin ingeschakeld. Token en host staan in script. Bestandsnaam wordt gegenereerd met timestamp om collisions te voorkomen.
Uitbreiding
Nieuwe onderdelen toevoegen:
- Voeg functie toe aan
/root/adres-analyse/rapport.py - Roep aan in
genereer_rapport()na geocoding - Update deze skill met nieuwe sectie onder "Huidige onderdelen"
- Verhoog onderdeel teller in output footer
Voorbeeld rapport
📍 **Adres Analyse Rapport**
Gegenereerd: 19-06-2026 18:42
🔍 Geocoding...
**Adres:** Griendvelden 14, 5685JL Best
**Coördinaten:** 51.505547, 5.370553
🚗 **Bereikbaarheid (Auto 20 min)**
**Oppervlakte:** 316.8 km²
**Reach factor:** 0.091
**Bereik:** 51.378°-51.679°N, 5.128°-5.530°E
💾 Data opgeslagen: `/tmp/isochroon_20260619_184239.geojson`
---
_Onderdeel 1/?: Isochroon bereikbaarheid_