Přidat okres
zoul opened this issue · comments
Pro rozlišení obcí se stejným názvem (například Nová Ves je v datech 14✕) by se nám velmi hodil okres. (Kraj je pro rozlišení nedostatečný.) Dá se nějak odvodit z toho, co už máme, nebo kde ho vezmeme? (Wikidata? Viz #28.)
Okres se da vytahnout pres wikidata nejak takto:
SELECT DISTINCT (REPLACE(STR(?lua), "CZ", "") as ?kodObce) ?ico ?population ?area ?localArea ?firstRecord ?CoA ?flag ?website ?district (?item as ?wikiLink) WHERE {
SERVICE wikibase:label {
bd:serviceParam wikibase:language "cs".
?website rdfs:label ?websiteLabel.
}
#{ ?czechMunicipality wdt:P31 wd:Q5153359 . }
OPTIONAL {
# Select Municipalites with propper RÚIAN
{ ?item wdt:P31 wd:Q5153359; wdt:P7606 ?lua; . }
UNION
# as some of them don't have it, select Municipalities with Czech LUA (NUTS4)
# !!! beware that in some cases data marked as LUA are districts
# => select only LUA with length greater then RUIAN ("CZxxxxxx")
{ ?item wdt:P31 wd:Q5153359; wdt:P782 ?lua . FILTER (STRLEN(STR(?lua)) > 6) }
}
# Select Municipalities in Czech republic
OPTIONAL { ?item wdt:P4156 ?ico . }
OPTIONAL { ?item wdt:P1082 ?population . }
OPTIONAL { ?item wdt:P2046 ?area . }
OPTIONAL { ?item wdt:P131 ?district . } # tady je okres
}
#FILTER ( ?lua = 599100 || ?lua = "CZ599140" ) #Find specific result
#OFFSET 10000
LIMIT 10000
Super. Nezkusil bys to projet pro celý dataset, abysme měli představu, jestli je kombinace název obce + okres skutečně unikátní?
Nemá smysl jít přímo po kódech obcí (možná na separátní issue)? Z toho budou přímé vazby na kraje, atd. Navíc je to oficiální výstup csoz, wikidata jsou až sekundární zdroj (pro start tu:
https://apl.czso.cz/iSMS/cisdet.jsp?kodcis=43)
Nemá smysl jít přímo po kódech obcí (možná na separátní issue)? Z toho budou přímé vazby na kraje, atd. Navíc je to oficiální výstup csoz, wikidata jsou až sekundární zdroj (pro start tu: https://apl.czso.cz/iSMS/cisdet.jsp?kodcis=43)
? Něco jako:
const CZSO_URL = "https://apl.czso.cz/iSMS/cisexp.jsp";
const input_helper = (name, value) => {
const hiddenField = document.createElement('input');
hiddenField.type = 'hidden';
hiddenField.name = name;
hiddenField.value = value;
hiddenField.checked = true;
return hiddenField;
};
const request_info = (id) => {
const form = document.createElement('form');
form.action = CZSO_URL;
form.appendChild(input_helper("kodcis", `${id}`));
// CONTEXT:Ciselnik
form.appendChild(input_helper("typdat", "0"));
// DATE:dd.mm.yyyy
form.appendChild(input_helper("datpohl", "02.10.2021"));
// LANG:CS
form.appendChild(input_helper("cisjaz", "203"));
// FORMAT:XML
form.appendChild(input_helper("format", "0"));
document.body.appendChild(form);
form.submit();
};
// ...
request_info(43);