Tento dokument popisuje krok za krokem jak kód stáhnout, nachystat na spuštění a spustit.
Výstup předchozího spuštění skriptu (tj. webové logy procesu a dokumentace) jsou dostupné na https://esif-data-cleaning.netlify.app/.
Co je třeba:
viz soubor LICENSE.
Kód je v soukromém git repozitáři na Githubu; k přístupu je potřeba Github účet a zpřístupnění vlatníkem (momentálně Petr Bouchal, pbouchal@gmail.com).
Tyto kroky je potřeba udělat jen jednou.
2 možnosti:
git clone https://github.com/petrbouchal/mmr-esif-clean/

Veškerý kód určený k “ostrému” využití je v branchi master.
Adresář lze otevřít jako projekt v RStudiu. To lze udělat otevřením souboru mmr-esif-clean.Rproj.
Bude ale fungovat i v R v příkazové řádce.
Poznámka: všechny adresářové cesty v dokumentaci i kódu jsou relativní k adresáři projektu.
Tyto kroky je potřeba udělat jen jednou po stažení kódu z Githubu
Po otevření projektu v RStudiu, popř. spuštění R v terminálu v adresáři by měla automaticky proběhnout instalace balíku renv, který udržuje fixované prostředí balíků potřebných pro analýzu ve správných verzích.
Pokud by v tomto kroku došlo k chybě, lze balík nainstalovat příkazem install.packages(renv) a následně pro jistotu aktualizovat záznam prostředí pro nainstalovanou verzi balíku renv příkazem renv::upgrade().
Následně je třeba v adresáři vytvořit kopii prostředí (sady balíků) potřebného pro spuštění kódu:
renv::restore()
Pokud v této fázi nastane neřešitelná chyba, lze správu prostředí vypnout (renv::deactivate()) a balíky nainstalovat ručně. Stav balíků při posledním úspěšném buildu lze dovodit ze souboru renv.lock, popř. v této části webového odrazu dokumentace.
data-input podadresář, pojmenujte jakkoli a vložte do něj excelové (.xlsx) soubory - pro každý OP jeden. Název každého souboru by měl být stejný jako v původní sadě, s mezerami, tj. např. "OP Z.xlsx"data-input/nova_data) do parametru input_dir v souboru config.yml.data-input/CHKONP.xlsx novým, popř. vložte pod novým názvem a upravte parametr v input_chu_xlsxCelý proces naráz lze spustit skriptem build-and-render.R. Tento skript:
.Rmd souborech a vygeneruje z toho vyplývající webovou prezentaciPro snadnější spuštění z příkazové řádky existuje i skript build-and-render.sh, která udělá totéž bez nutnosti spouštět R nebo RStudio.
V současném stavu je v datech cca 119 projektů, u kterých jsou uvedeny vnitřně nekonzistentní geografické údaje, např. ukazují realizaci projektu zároveň v kraji a zároveň v obci, která ale není v daném kraji.
U těchto projektů je třeba manuálně rozhodnout, který údaj se použije.
TO DO
Jak na to:
data-output/prj_nehierarchicke.xlsxvybrat hodnotu TRUE nebo jen T. Ostatní můžete nechat prázdné (tj. netřeba vkládat FALSE).
TRUE do sloupce vybrat, nebo ve všech řádcích vložíte FALSE), projekt se ve výstupních datech vůbec neobjevídocs/widget.html nebo na https://esif-data-cleaning.netlify.app/widget.html.data-manual/prj_nehierarchicke-resolved.xlsxinput_resolved_xlsx v config.yml)export-excel.R.Pokud
Celé workflow není centrálně orchestrováno ani cacheováno žádným workflow nástrojem á la make; jde jednoduše o posloupnost skriptů, které si mezivýstupy předávají přes datové exporty v adresářích data-input (hrubá externí data) a data-processed (zpracovaná data). Každý skript poběží sám o sobě, ale předpokládá přítomnost mezivýstupů předchozích skriptů v těchto adresářích.
R skripty zmíněné v build-and-render.R načítají vlastní ESIF data a externí data a metadata z ČSÚ, ČÚZK a Státní pokladny Ministerstva financí. Jako mezivýstup ukládají stažené datové soubory v data-input a parquet/Rds obraz vstupních ESIF dat a některých metadat v data-processed.
Explorace, validace i transformace a export dat se dějí v Rmd skriptech, které zároveň provádí datové úkony a exporty a zároveň generují webový výstup. (To není ideální setup pro případné produkční nasazení, ale je funkční pro interaktivní práci s jednotlivými částmi workflow.)
Mezivýstupy se běžně přepisují, tj. při novém spuštění vzniknou nové, ale v několika případech jsou znovuvyužity, pokud existují, aby se ušetříl čas. Zcela čisté spuštění tedy vyžaduje vymazání obsahu adresářů data-input (s výjimkou adresáře s excelovými vstupy) a adresáře data-processed.
Celkové pořadí spouštění odpovídá skriptu build-and-render.R.
Rmd skripty, které společně tvoří webovou prezentaci a zároveň provádějí datovou validaci a transformaci, se společně v abecedním pořadí spustí příkazem rmarkdown::render_site() (též zahrnut v build-and-render.R), ale lze je spouštět i samostatně přes rmarkdown::render("xxx.RMd") nebo tlačítkem Knit v Rstudiu.
docs: lze ji otevřít lokálně v prohlížeči poklepáním na soubor index.html.data-outputdata-exportWebovou prezentaci v adresáři docs lze snadno zveřejnit kdekoli. V souboru .netlify/state.json je nastavení použitelné pro rychlý deploy na netlify; pokud bude potřeba stránku aktualizovat na Netlify, můžu subdoménu na někoho převést, nebo bude třeba tento soubor smazat a navázat projekt na novou subdoménu na Netlify.
Konfigurace a struktura webové prezentace jsou upraveny v _site.yml; viz dokumentaci k rmarkdown websites.
Zcela nové spuštění načisto vyžaduje:
data-input vyjma adresáře se vstupními excelydata-processeddata-outputdata-manual jen pokud nechceme využít předchozí manuální rozřešení nekonzistentních projektůTyto kroky nechávám jako manuální, aby nedocházelo k nechtěnému mazání výstupů nějakým skriptem.