REST-rajapinnan kautta hakeminen (Survo)-R:ssä

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

REST-rajapinnan kautta hakeminen (Survo)-R:ssä

eino uotila
HSL:llä on laaja kyselydata ladattavissa ilmeisesti avoimena verkossa.

Olen jo pariin otteeseen yrittänyt ladata sitä, käytännössä pelkästään R:llä, koska siihen löytyy jotain ohjeita. HSL ohjeet DATA API -osiossa ovat hieman niukat. Yritin mm. näin:

hsl <- GET("https://hsl.louhin.com/api/1.0/data/350",
           query = list(key1 = "LWSAccessKey=b21f0e72-de32-4cee-ab24-242eeba7726b",
                        key2 = "filter[LINJA]=55"))

Tuollakaan ei pääse pitkälle, koska status on 401 eli en osaa käyttää tuota annettua LWSAccessKeytä.

Miten tuon datan saa siis ladattua, ja onko Survossa jotain omia keinoja hakea dataa näin? Vai onnistuuko vain R:n kautta?

Rajapinnoista haku ja HTTP ym. jutut eivät ole minulle tuttuja, joten voi olla että tähän on yksinkertainenkin ratkaisu jota en vain tajua.
Reply | Threaded
Open this post in threaded view
|

Re: REST-rajapinnan kautta hakeminen (Survo)-R:ssä

Reijo Sund
Administrator
This post was updated on .
eino uotila wrote
HSL:llä on laaja kyselydata ladattavissa ilmeisesti avoimena verkossa.

Miten tuon datan saa siis ladattua, ja onko Survossa jotain omia keinoja hakea dataa näin? Vai onnistuuko vain R:n kautta?
Juu, näyttää olevan avoimena käytössä ja tarjoaa APInkin. Tavalliseen API-tyyliin parametreja voi antaa ihan osoiterivillä kysymysmerkin jälkeen ja käyttämällä &-merkkiä erottelemaan parametrit.

Jos haluaa ladata tuon kokonaan Survon puolella, niin aktivoimalla seuraavan GET-rivin Survon editorissa haetaan havainnosta 40000 lähtien 10000 havaintoa. Jättämällä nuo offset- ja limit-parametrit pois saa koko datan, mutta sen koko on miltei 200Mb, joten ottaa jonkin verran aikaa ladata eli kannattaa ehkä ensin kokeilla pienemmällä määrällä.

Tuossa myös esimerkki, miten ladattu csv-tiedosto saadaan tallennettua Survo-dataksi, kun puolipiste-erottimen lisäksi siinä UTF-8 alkutavut ja lainausmerkkejä kenttien ympärillä, jotka saa kätevästi hoidettua noilla näkyvillä täsmennyksillä.

GET https://hsl.louhin.com/api/1.0/data/350?LWSAccessKey=b21f0e72-de32-4cee-ab24-242eeba7726b&offset=40000&limit=10000 asty.csv
................................................................................................................................
FILE SAVE asty.csv TO NEW ASTY / ENCODING=UTF-8 DELIMITER=; REMOVE_QUOTES=1

Tai jos haluat käyttää filter-parametria, kuten nähtävästi tuossa kysymyksessäsi oli, niin sekin toki onnistuu esim. seuraavasti:

GET https://hsl.louhin.com/api/1.0/data/350?LWSAccessKey=b21f0e72-de32-4cee-ab24-242eeba7726b&filter[LINJA]=55 asty55.csv
................................................................................................................................
FILE SAVE asty55.csv TO NEW ASTY55 / ENCODING=UTF-8 DELIMITER=; REMOVE_QUOTES=1
Reply | Threaded
Open this post in threaded view
|

Re: REST-rajapinnan kautta hakeminen (Survo)-R:ssä

eino uotila
Kiitos! Johan toimii