Suomalaisen avoimen datan discovery- ja ymmärryspalvelu
5 690+ datasettiä · 12 390+ resurssia · 250+ organisaatiota · ~1,6 TB avointa dataa
23 datalähteestä: avoindata.fi, SYKE, HRI, Tilastokeskus, LUKE, Digitraffic, Ilmatieteen laitos, Overture Maps, GTK, Traficom, Metsäkeskus, Taustakartat, Ruokavirasto, Kuntien paikkatiedot (36 kuntaa) ym.
Aura kyntää suomalaisen avoimen datan esiin piilostaan ja tekee sen ymmärrettäväksi. Palvelu toimii MCP-serverinä tekoälyille sekä avoimena web-palveluna ihmisille.
Aura — suomen kielen kyntämistä. Aura kyntää datan esiin.
- Aggregoi metadatan 23 avoimen datan lähteestä
- Normalisoi CKAN, PxWeb, OData, WFS ja OpenAPI -formaatit yhtenäiseen muotoon
- Tekee hakukelpoiseksi — FTS5-täystekstihaku luonnollisella kielellä
- Arvioi datakoon — jokaiselle datasetille arvioitu koko
- Rikastaa joukkoistamalla — MCP-sessiot kerryttävät tietoa dataseteistä
- Palvelee tekoälyjä MCP-serverin kautta (Claude, GPT, jne.)
- Python 3.11+ — tarkista:
python3 --version - pip tai uv pakettien asennukseen
- git repon kloonaamiseen
SQLite tulee Python 3.11:n mukana (FTS5-tuki sisäänrakennettu). Erillistä SQLite-asennusta ei tarvita.
Valinnainen:
- MML API-avain — Maanmittauslaitoksen aineistoihin (ks. Rajausaineistot)
Auran repo sisältää .mcp.json-tiedoston, joka konfiguroi MCP-serverin automaattisesti. Ei tarvitse tehdä mitään ylimääräistä:
git clone https://github.com/trotor/aura.git
cd aura
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
claude # Aura MCP-server käynnistyy automaattisestiClaude Code tunnistaa .mcp.json:n ja käynnistää serverin taustalle. Voit heti kysyä: "Mitä avoimia datasettejä Helsingin kaupunki tarjoaa?"
Lisää Auran MCP-server Clauden asetustiedostoon:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"aura": {
"command": "/polku/aura/.venv/bin/python",
"args": ["-m", "aura.cli", "serve"]
}
}
}Korvaa
/polku/aurakloonatun repon absoluuttisella polulla. Käytä virtuaaliympäristön Pythonia (.venv/bin/python).
Lisää .cursor/mcp.json projektin juureen tai globaalisti ~/.cursor/mcp.json:
{
"mcpServers": {
"aura": {
"command": "/polku/aura/.venv/bin/python",
"args": ["-m", "aura.cli", "serve"]
}
}
}Lisää ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"aura": {
"command": "/polku/aura/.venv/bin/python",
"args": ["-m", "aura.cli", "serve"]
}
}
}Aura on standardi MCP-server. Mikä tahansa työkalu joka tukee MCP-protokollaa voi käyttää Auraa. Käynnistyskomento:
/polku/aura/.venv/bin/python -m aura.cli serveTai uv:llä ilman erillistä asennusta:
uv --directory /polku/aura run aura servesource .venv/bin/activate
# Hae datasettejä
aura search "väestö helsinki"
aura search "joukkoliikenne"
# Tilastot ja lähteet
aura stats
aura sources
# Päivitä data
aura harvest # kaikki lähteet
aura harvest avoindata.fi # yksittäinen lähde
aura harvest --list # listaa saatavilla olevat
# Rikastukset
aura export-enrichments -o contributions/omat.json
aura import-enrichments contributions/*.jsonHuom: Tietokanta (
data/aura.db) tulee repon mukana valmiina — ei tarvitse harvestoida erikseen.
| Työkalu | Kuvaus |
|---|---|
search |
Hae datasettejä luonnollisella kielellä (suodattimet: lähde, formaatti, organisaatio, saatavuus) |
search_structured |
Hae datasettejä ja palauta JSON tekoälyagenteille |
describe |
Kuvaa datasetti yksityiskohtaisesti (sis. rikastukset) |
recommend |
Suosittele parhaita datasettejä aiheesta |
compare |
Vertaile datasettejä rinnakkain (2–5 kpl) |
find_related |
Etsi samankaltaiset datasetit |
enrich |
Rikasta datasetin tietoja (avainsanat, kuvaukset, laatuhuomiot) |
get_enrichments_tool |
Näytä datasetin rikastukset |
stats |
Näytä tilastot tietokannasta |
list_organizations |
Listaa datan julkaisijat |
list_formats |
Listaa saatavilla olevat dataformaatit |
harvest |
Hae datasettien metatiedot lähteistä |
list_sources |
Listaa datalähteet ja harvestoinnin tila |
probe_sizes |
Mittaa paikkatietoaineistojen koot |
Katso täydellinen datasettikatalogi: docs/CATALOG.md Katso lähteiden tekniset tiedot: docs/SOURCES.md
| Lähde | Tyyppi | Datasettejä | Arvioitu koko |
|---|---|---|---|
| avoindata.fi | CKAN API | 1 943 | 114 GB |
| SYKE | CKAN API | ~615 | ~50 GB |
| HRI (hri.fi) | CKAN API | 549 | 39 GB |
| LUKE | PxWeb API | 495 | 2,3 GB |
| Tilastokeskus | PxWeb API | 374 | 1,7 GB |
| Digitraffic | REST/OpenAPI | 162 | 1,5 GB |
| Ilmatieteen laitos | WFS 2.0 | 160 | 14 GB |
| Overture Maps | GeoParquet (S3) | 6 | ~215 GB |
| Metsäkeskus | WFS/WCS/ZIP | 43 | 1,2 TB |
| Traficom | OData v4 | 32 | 2,5 GB |
| GTK | ArcGIS WFS/WMS | 5 | 7 GB |
| Taustakartat | TMS | 4 | ~20 GB |
| Ruokavirasto | INSPIRE/GeoServer | 33 | — |
| Kuntien paikkatiedot | WMS/WFS/ArcGIS | 36 | — |
| Yhteensä | ~5 690 | ~1,6 TB |
Auraan voi osallistua monella tavalla — myös ilman koodaamista.
Jokaisella Aura MCP -sessiolla kertyy arvokasta tietoa dataseteistä: mitä kenttiä data sisältää, miten sitä haetaan, millainen laatu on. Tämä tieto voidaan tallentaa pysyvästi enrich()-työkalulla.
MCP-session aikana tekoäly voi kutsua enrich()-työkalua automaattisesti:
"Tutki Ruokaviraston peltolohkorekisterin sisältö ja tallenna löydökset."
AI tutkii datasetin, löytää kentät ja metatiedot, ja kutsuu:
enrich("ruokavirasto-peltolohkorekisteri-2024", "data_fields",
'["lohko_id", "kasvilaji", "pinta_ala_ha"]', confidence="high")
enrich("ruokavirasto-peltolohkorekisteri-2024", "keywords",
'["maatalous", "CAP", "tukialue"]')Kontribuoi rikastuksia muille:
aura export-enrichments -o contributions/omat-rikastukset.json
git add contributions/
git commit -m "data: enrich Ruokaviraston datasettejä"
# Avaa pull requestTuetut rikastuskentät:
| Kenttä | Tyyppi | Kuvaus |
|---|---|---|
keywords |
lista | Lisäavainsanat ('["maatalous", "peltolohko"]') |
tags |
lista | Vapaamuotoiset tagit ('["paikkatietoaineisto"]') |
data_fields |
lista | Datasetin kentät ('["id", "nimi", "pinta_ala"]') |
description_extended |
teksti | Laajennettu kuvaus |
api_endpoint |
teksti | Löydetty rajapinta-URL |
api_format |
teksti | Rajapinnan formaatti |
access_instructions |
teksti | Ohjeet datan hakemiseen |
quality_notes |
teksti | Huomioita datan laadusta |
use_case |
teksti | Käyttötapausesimerkki |
related_datasets |
teksti | Liittyvät datasetit |
temporal_coverage |
teksti | Ajallinen kattavuus |
update_frequency_actual |
teksti | Havaittu päivitystiheys |
organization_context |
teksti | Taustatietoa julkaisijasta |
Katso CONTRIBUTING.md ohjeet uuden harvesterin luomiseen.
Avaa issue GitHubissa.
aura/
├── src/aura/ # Pääpaketti
│ ├── server.py # MCP-server (FastMCP)
│ ├── database.py # SQLite + FTS5 + enrichments
│ ├── models.py # Pydantic-tietomallit
│ ├── search.py # Hakutoiminnot ja muotoilu
│ ├── cli.py # Komentorivityökalu
│ └── harvesters/ # Datalähteiden keräimet (23 kpl)
├── data/
│ ├── aura.db # SQLite-tietokanta (osa repoa)
│ └── boundaries/ # Rajausaineistot GeoPackage (gitignore)
├── contributions/ # Jaetut rikastukset (JSON)
├── scripts/migrations/ # Tietokantamigraatiot
├── docs/ # Dokumentaatio
└── tests/ # Testit
SQLite + FTS5 -täystekstihaku. Tietokanta on osa git-repoa — ei tarvitse harvestoida erikseen.
Skeemamuutokset hoidetaan migraatiojärjestelmällä (scripts/migrations/). Migraatiot ajetaan automaattisesti init_db():n yhteydessä — tietokanta ei nollaudu päivityksessä.
Aura tallentaa jokaiselle datasetille geographical_coverage-kentän, joka kertoo minkä alueen dataa datasetti sisältää. Tieto tulee pääasiassa harvestoinnin yhteydessä.
| Tilasto | Arvo |
|---|---|
| Datasettejä joilla aluetieto | ~1 200+ / 5 690 |
| Yleisimmät arvot | Helsinki, Turku, Oulu, Espoo, Vantaa |
| Viitetaulut | 308 kuntaa, 3 784 postinumeroa |
| Oletusarvo | ["Suomi"] (kaikki harvestarit ellei tarkempaa tietoa) |
Arvot tulevat eri lähteistä:
- avoindata.fi — API palauttaa kaupunkien ja alueiden nimet
- Kuntien paikkatiedot — 36 kuntaa omalla
geographical_coverage-arvolla - Staattiset harvestarit — konfiguraatiossa (esim. Overture Maps →
["Maailma"]) - Muut — oletusarvo
["Suomi"]
Paikallisina rajausaineistoina käytetään GeoPackage-tiedostoja data/boundaries/-kansiossa. Kansio on gitignoressa — aineistot ladataan erikseen. Lähde: Kapsi.fi (MML:n avoin data, CC BY 4.0).
# Lataa kaikki rajausaineistot yhdellä komennolla (~40 MB)
bash scripts/download_boundaries.shSkripti on idempotentti — ohittaa jo ladatut tiedostot.
MML:n karttalehtijako kattaa koko Suomen ETRS-TM35FIN (EPSG:3067) -koordinaatistossa. 7 hierarkiatasoa:
| Taso | Mittakaava | Koodimuoto | Ruudun koko | Ruutuja |
|---|---|---|---|---|
| 1 | 1:200 000 | L4 |
192 × 96 km | 65 |
| 2 | 1:100 000 | L41 |
96 × 48 km | 208 |
| 3 | 1:50 000 | L413 |
48 × 24 km | 832 |
| 4 | 1:25 000 | L4133 |
24 × 12 km | 3 328 |
| 5 | 1:10 000 | L4133A |
6 × 6 km | 26 624 |
| 6 | 1:5 000 | L4133A3 |
3 × 3 km | 106 496 |
| 7 | 1:1 000 | L4133A3_1 |
1 × 1 km | 398 286 |
MML:n hallinnolliset aluejaot: 308 kuntaa, 19 maakuntaa, 23 hyvinvointialuetta, Suomen raja. Kaksi mittakaavaa: 1:1M (yleiskäyttö) ja 1:10k (tarkka geometria).
Kiinteistörajat haetaan MML:n rajapintapalvelusta (liian suuria lokaaliin tallennukseen).
MML:n OGC API Processes -tiedostopalvelu vaatii ilmaisen API-avaimen. Kapsi.fi-peili toimii ilman avainta, mutta muihin MML-aineistoihin avain tarvitaan:
- Rekisteröidy: https://omatili.maanmittauslaitos.fi/user/new/avoimet-rajapintapalvelut
- Luo API-avain OmaTili-palvelussa
- Tallenna
.env-tiedostoon:MML_API_KEY=avaimesi
region-suodatin MCP-työkaluissa:
search("joukkoliikenne", region="Helsinki") # kaupunkitaso
search("ympäristödata", region="Uusimaa") # maakuntataso → laajentuu kuntiin
search("palvelut", region="33100") # postinumero → kuntaHierarkkinen haku: haettaessa maakunnalla palautetaan myös maakunnan kuntien aineistot. Viitetaulut (308 kuntaa, 3 784 postinumeroa) mahdollistavat alueen tunnistuksen.
source .venv/bin/activate
pip install -e ".[dev]"
pytest # testit
ruff check src/ # lintteri
mypy src/ # tyypintarkistusKatso CONTRIBUTING.md tarkemmat ohjeet.