Hello all,
Speaking of dbnomics, I have noticed in my version of gretl (2018a for Windows) that i
have dbnomics following the path help/look for addons/dbnomics 0.1
However, I tried to install it but it did not work. I got a responce indicating dbnomic
could’n be found.
Any idea what is going wrong?
Thanks for Information in advance!
Regards,
Waldemar
Von: Riccardo (Jack) Lucchetti
Gesendet: Mittwoch, 4. Juli 2018 10:02
An: Gretl users mailing list
Betreff: [Gretl-users] Datahub
Dear all,
Allin and I are working on automated data download from dbnomics (if you
don't know what I'm talking about:
https://db.nomics.world). This led both
of us to using JSON object more systematically than we used to, and I have
to say JSON is very nice.
During my experiments, I wrote a little function for automatically
downloading datasets from DataHub (
https://datahub.io). A small example
script follows:
<hansl>
set verbose off
function string datahub_get(string URL, string filename[null])
s = readfile(URL)
printf "reading %s...\n", URL
flush
printf "Dataset name: %s\n", jsonget(s, "$.title")
resources = jsonget(s, "$.resources..datahub.type")
got = 0
loop i = 1 .. nelem(resources) --quiet
string r = strstrip(jsonget(s, sprintf("$.resources[%d].datahub.type",
i-1)))
if r == "derived/csv"
hit = i-1
got = 1
break
endif
endloop
if got
if exists(filename)
ret = filename
else
fname = sprintf("%04d.csv", randgen1(i,0,9999))
if $windows
ret = sprintf("@dotdir\\%s", fname)
else
ret = sprintf("@dotdir/%s", fname)
endif
endif
printf "data URL found, reading...\n"
flush
path = jsonget(s, sprintf("$.resources[%d].path", hit))
c = readfile(path)
outfile "@ret" --quiet --write
print c
outfile --close
else
printf "No data found\n"
ret = ""
endif
return ret
end function
URL =
"https://pkgstore.datahub.io/core/pharmaceutical-drug-spending/19/datapackage.json"
fname = datahub_get(URL)
print fname
open "@fname"
</hansl>
Of course the function above can be enhanced in many ways, but the gist
is: once you have the URL to the dataset, the function will download the
data to a CSV file (you can supply a name if you want, otherwise a random
one will be generated for you). At that point, you may just open the CSV
file.
How do you get the URLs for the datasets you want? Easy:
* Navigate to the page of the dataset you want (for example,
https://datahub.io/core/co2-ppm)
* scroll to the bottom and copy the URL corresponding to the
"Datapackage.json" button. In most cases, it's just the page URL with
"/datapackage.json" appended at the end (for example,
"https://datahub.io/core/co2-ppm/datapackage.json")
* run the function datahub_get() with the URL string as first parameter;
you maty supply an optional second parameter if you want to save the CSV
file to a location of your choice.
Enjoy!
-------------------------------------------------------
Riccardo (Jack) Lucchetti
Dipartimento di Scienze Economiche e Sociali (DiSES)
Università Politecnica delle Marche
(formerly known as Università di Ancona)
r.lucchetti(a)univpm.it
http://www2.econ.univpm.it/servizi/hpp/lucchetti
-------------------------------------------------------