Hack de Overheid!

Data Projecten

NPO Backstage Datablog #1: Geodata meets programmadata

Van politieke opstootjes in Den Haag tot nucleaire onderhandelingen in Tehran. De NPO Backstage API stelt je in staat om programma-items te koppelen aan geodata. Altijd al willen weten hoeveel programma’s gaan over – of zich afspelen in – Baku? Of ben je op zoek naar die ene Tegenlicht uitzending over New York? In de API vind je nu bijna 460 programma-items met een locatie.

Twee functies helpen je om objecten met een locatie uit de API te krijgen:

Met de facets-functie kun je erachter komen welke locaties er allemaal te vinden zijn in de API en hoe vaak ze voorkomen. Met de filter-functie kun je de voor jou relevante items uit de API halen. Op GitHub vind je voorbeeldcode in Python voor zowel de facet als filter.

Amsterdam meest voorkomende locatie

Amsterdam

Alle locaties in de NPO Backstage API hebben een naam (Location.Name). Deze naam is gelijk aan de stad waarin het object zich “afspeelt”. Amsterdam komt met 51 items het meest voor in de API gevolgd door Den Haag met 31 items. Deze informatie kun je verkrijgen via de facets-functie:

data_facet = {
    "facets": {
        "Locations.Name": {"size": 250}
    }
}

Met deze ‘call’ krijg je een complete lijst met locaties terug. Ook wordt aangegeven hoeveel objecten er zijn met deze locatie. size geeft aan van hoeveel items je deze informatie wilt opvragen. Als je size weglaat krijg je standaard enkel de tien meest voorkomende items te zien.

Voorbeeld: filter de G4

API explain

Als je eenmaal weet waar je op wil filteren dan kun je met de volgende code-snippet alle objecten met een bepaalde locatie uit de API opvragen:

data_filter = {
    "filters": {
        "Locations.Name": {
            "terms": ["Amsterdam"]
        }
    }
}

Onder terms definieer je de plaatsnaam waar je op wil zoeken. Je kunt hier meerdere plaatsen opgeven door ze met een komma te scheiden. Bijvoorbeeld alle items uit de grootste vier gemeenten haal je eruit met:

"terms": ["Amsterdam”, “Rotterdam”, “Utrecht”, “Den Haag"]

Deze call geeft alle items terug met Amsterdam, Utrecht, Den Haag en Rotterdam in de Locations.Name.

Pas facets en filters toe op andere velden

In deze voorbeelden hebben we gebruikt gemaakt van het Locations.Name veld. Er zijn echter veel meer velden waarop je facets en filters kan toepassen, bijvoorbeeld: title, authors, Keywords.Name, Categories.Name, Broadcasts.ChannelName en genres. Alle beschikbare velden hebben een sterretje achter hun naam op de datasets pagina van de documentatie.

Verder kan ook het date-veld gebruikt worden. Bij een facet call kan je dan in plaats van size de optie interval gebruiken om te specificeren over welke tijdsperiode er geteld moet worden hoeveel items er zijn (bv., day of month).

Idee?

bags

We hopen dat je een tof idee hebt om met deze (geo) data een mooie app te maken. Jonathan werkt bijvoorbeeld aan (NPO Geo Finder). Welke ideeën heb jij met de NPO-data? Laat het ons weten via Facebook of Twitter. En doe mee aan de NPO Backstage app-competitie. De deadline voor het inleveren van je app is donderdag 17 september 2015 om 23:59 uur. Op vrijdag 25 september 2015 vindt de uitreiking van de competitie ’s avonds plaats in Hilversum. Houd npo.nl/backstage in de gaten voor alle informatie!

The following two tabs change content below.