@golemio/energetics
Version:
Golemio Energetics Module
93 lines (74 loc) • 3.28 kB
Markdown
# Příprava dat z ENO do datové platformy Golemio
## Postup poprvé
1. Stažení zdrojových dat z:
- [Data o objektech spravovaných MHMP](https://operator.sharepoint.com/:x:/s/Energetickportl2024/EY0U2oAmVctHt0uv6wlZfacBgv63KMOpcU9JHUmVeXAuFA?e=qjvGZz)
- [Data o objektech spravovaných Městskými částmi (MČ)](https://operator.sharepoint.com/:x:/s/Energetickportl2024/EbN7TKYgnEBHlBX7gRjw7CYBfOqLbfz5sacuy0Bhq97jJQ?e=cSyPsL)
2. Převést první list do formátu CSV
3. Importovat csv do databáze jako novou tabulku např. skrze proram DBeaver
- pro importer setings zaškrtnuto nastavení `Set empty string to null`, `Trim whitespace` a také nastaveno `Sample rows count` na 10000 (kvůli možnému podhodnocení datových typů)
- v `Table mapping` kliknout na tlačítko `configure` a nastavit všechny sloupce jako varchar
4. Spustit sql nad importovanými tabulkami (doplnění gps viz níže)
```sql
CREATE TABLE eno_address_gps (
adresa varchar(250) NULL,
longitude float4 NULL,
latitude float4 NULL
);
CREATE VIEW v_eno_map_objects AS
with base as (
select
*,
'MČ' as "TYP_SPRAVCE",
CASE
WHEN "NAZEV_EJ" LIKE 'Odbor%' THEN "NAZEV_EJ_OTEC" || ' ' || "NAZEV_EJ"
ELSE "NAZEV_EJ"
END as "nazev_pozice_v_mape"
from eno_raw_budova_majetek_mc
union all
select
*,
'MMHP' as "TYP_SPRAVCE",
CASE
WHEN "NAZEV_EJ" LIKE 'HL.M.PRAHA%' THEN 'HL.M.PRAHA'
ELSE "NAZEV_EJ"
END as "nazev_pozice_v_mape"
from eno_raw_budova_majetek_mhmp
)
select
"POPIS_ADRESA" as adresa,
null as "ruian_id",
"NAZEV_EJ" as "nazev_ej",
"NAZEV_EJ_OTEC" as "ej_otec",
"TYP_SPRAVCE" as "typ_spravce",
"nazev_pozice_v_mape",
ST_SetSRID(ST_MakePoint(ag.longitude, ag.latitude), 4326) as "gps_poloha"
from base b
left join eno_address_gps ag on
b."POPIS_ADRESA" = ag.adresa
where "POPIS_ADRESA" is not null
```
5. Doplnit práva k tabulkám a pohledu
```sql
GRANT REFERENCES, SELECT ON TABLE energetics.eno_raw_budova_majetek_mc TO dataplatform_energetics_ro;
GRANT ALL ON TABLE energetics.eno_raw_budova_majetek_mc TO dataplatform_energetics_rw;
GRANT REFERENCES, SELECT ON TABLE energetics.eno_raw_budova_majetek_mhmp TO dataplatform_energetics_ro;
GRANT ALL ON TABLE energetics.eno_raw_budova_majetek_mhmp TO dataplatform_energetics_rw;
GRANT SELECT, REFERENCES ON TABLE energetics.eno_address_gps TO dataplatform_energetics_ro;
GRANT ALL ON TABLE energetics.eno_address_gps TO dataplatform_energetics_rw;
GRANT REFERENCES, SELECT ON TABLE energetics.v_eno_map_objects TO dataplatform_energetics_ro;
GRANT ALL ON TABLE energetics.v_eno_map_objects TO dataplatform_energetics_rw;
```
## Doplnění GPS souřadnic
1. exportovat relevatní adresy
```sql
select distinct "adresa", LENGTH("adresa") from energetics.v_eno_map_objects
where
(adresa like '%Praha%' and LENGTH("adresa")>19
or adresa not like '%Praha%' and LENGTH("adresa")>11)
```
2. použít přiložený skript se správným tokenem
3. importovat výstupní csv do mapovací tabulky `eno_address_gps`
## Postup aktualizace dat
Stačí kroky 1-3., s tím že data se importují do existujících tabulek a stará data se smažou.
## Poznámky
Sloupec ruian_id je prázdný, protože to je volitelná část prototypu.