Published
Edited
Jun 30, 2020
Insert cell
md`# World Bank Metadata API`
Insert cell
allData = d3.json(
"https://www.ilo.org/surveyLib/index.php/api/catalog/search?collection=LFS&ps=10000"
)
Insert cell
Insert cell
Insert cell
Insert cell
get_topic={
let arr=[]
format_info.map(d=>arr.push(...d.topics))
return Array.from(new Set(arr))
}
Insert cell
Insert cell
survey_id=variable_occupation.map(d=>d.sid)
Insert cell
limited_studies_2=limited_info.filter(d=>survey_id.includes(d.id))
Insert cell
Insert cell
// select the most recent survey for each country that contains data on earning and occupation
selected_surveys=limited_studies_2.filter(d=>d.year_end==recent[d.nation])
Insert cell
Insert cell
promises = variable_apis.map( d => d3.json(d) )
Insert cell
// get variable for each selected survey
data_variables=Promise.all( promises )
Insert cell
// these are all the variables from 52 selected surveys
get_relevant={
let questions=[]
for (let i of data_variables){
let labels=i['variables'].map(d=>{return{question:d.labl,
vid:d.vid,
sid:d.sid}})
questions.push(...labels)
}
return questions
}
Insert cell
jsonp = require("@tmcw/jsonp@0.2.2")
Insert cell
d3=require("d3")
Insert cell
// test api structure
vars=d3.json('https://www.ilo.org/surveyLib/index.php/api/catalog/VNM_2018_LFS_v01_M_ILO_VAR/variables')
Insert cell
vars.variables.filter(d=>d.labl.includes('earning'))
Insert cell
variable_occupation={
let newarr=[]
for (let t of data_variables){
newarr.push(...t.variables.filter(d=>d.name=='ilo_job1_ocu_isco08_2digits'))

// newarr.push(...t.variables.filter(d=>d.name=='ilo_job1_eco_isic4'))
}
return newarr
}
Insert cell
occupation_urls=variable_occupation.map(d=>`https://www.ilo.org/surveyLib/index.php/api/catalog/${selected_surveys.filter(s=>(s.id==d.sid))[0].idno}/variables/${d.vid}`)
Insert cell
occupation_data=Promise.all(occupation_urls.map(d=>d3.json(d)))
Insert cell
variable_earning={
let newarr=[]
for (let t of data_variables){
newarr.push(...t.variables.filter(d=>d.name=='ilo_job1_lri_ees'))
}
return newarr
}
Insert cell
earning_urls=variable_earning.map(d=>`https://www.ilo.org/surveyLib/index.php/api/catalog/${selected_surveys.filter(s=>(s.id==d.sid))[0].idno}/variables/${d.vid}`)
Insert cell
earning_data=Promise.all(earning_urls.map(d=>d3.json(d)))
Insert cell
total_data=[...earning_data,...occupation_data].map(d=>d.variable)
Insert cell
// https://microdata.worldbank.org/index.php/api/catalog?id_format=ID/2705
Insert cell
ihsn_url=selected_surveys.map(d=>`https://catalog.ihsn.org/index.php/api/catalog/${d.idno.slice(0,d.idno.length-8)}`)
Insert cell
ihsn_data=Promise.all(ihsn_url.map(d=>d3.json(d)))
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more