Slovakia: catalogue the sources (R5/R6/R2) — the go/no-go gate #213

Closed
opened 2026-08-24 17:03:06 +00:00 by art-bot · 0 comments
Collaborator

Adding four countries (Norway, Denmark, Czechia, Slovakia). This is Slovakia's gate issue,
per .claude/skills/add-country/.

Deliverable: docs/country-sk.md in the docs/country-gr.md reference shape (R129–R136).

Research verdict (2026-08-24): GO, but this is the awkward one

The data exists and is CC BY 4.0. The delivery is the problem: ÚGKK publishes ZBGIS
chiefly as raster tiles, its vector attributes sit behind an ArcGIS MapServer whose
/query endpoint is currently load-shedding, and only two ZBGIS themes are exposed as
WFS. All hosts resolve over IPv4.

What works today

  • zbgis_administrativne_hranice_wfs → sr (1 polygon — the country),
    obec (2 927), okres, kraj. This is the mask and the borders, anonymous.
  • SAŽP https://geos.sazp.sk/geoserver/corine/clc2018/wfs → corine:clc2018,
    22 775 polygons, attributes code_18, legend_name_sk/en, area_ha, licence
    CC BY 4.0 (…/by/4.0/deed.sk, per distribution). code_18 is the same column name
    Greece's CORINE delivery uses
    , so conf/sk/02-cover.yaml is the Greece/Finland identity
    CASE almost verbatim — over an anonymous WFS, needing neither the CLMS provider nor
    a credential. CLC 2000/2006/2012/2018/2024 are all published this way.

So the pilot (mask + cover) is unblocked and cheap even though the rest is not.

The blocker for everything else

https://zbgis.skgeodesy.sk/zbgis/rest/services/ZBGIS/MapServer?f=json → HTTP 200,
92 layers, Query advertised, maxRecordCount = 1000. That 92-layer list is the R6
full published class list, and it maps cleanly onto ismap: 22 Cesta (RTN route
number, RDT, RST), 37 Železnica (RRC, RRA, RGC), 35 Vodný tok (NAM,
HYC), 73 Vodná plocha (NAM), 10 Prameň, 19 Vodopád, 41 Budova,
62 Plocha letiska, 100 Štandardizovaný názov (NAM + CAT), 81 Slovenská republika.

But every …/MapServer/<id>/query?… call returned HTTP 503, twice, ~20 minutes apart,
serving the cadastre portal's Slovak load-shedding page. Layer metadata returns 200
throughout — so this is not DNS, not IPv6, not a firewall, and not a verdict. It is a
re-test. At maxRecordCount = 1000, a national fetch of Cesta or Budova is tens of
thousands of paged requests against an endpoint that is already shedding, which is a real
import-design risk in its own right.

Two national alternatives, both with a catch

  • CDB (Cestná databanka, SSC) INSPIRE WFS
    https://ismcs.cdb.sk/inspire/services/INSPIRE/Inspire_download/MapServer/WFSServer →
    RoadLink 132 181, RoadNode. The INSPIRE profile strips the semantics again —
    geographicalName_void = 1, no functional class. Geometry yes, classes no. (Same trap as
    Denmark's roadlink.)
  • ŽSR "Jednotná železničná mapa – vektorové údaje AS IS"
    https://gisgeo.zsr.sk/geoserver/public/ows → JZM_LvALL_Line_public 1 315 888
    features whose attributes are ELEMTYPE, LVNUMBER, COLORRGB, STYLE, WEIGHT,
    MAPNAME
    , in 4-metre segments. This is a CAD drawing exported as WFS, not a
    topological rail network
    — it would render as a picture of a map. Reject on shape, not
    on licence.

Other findings

  • geograficky_nazov WFS (136 380 points) is a decoy for places: DescribeFeatureType
    exposes only ZBGIS_ID, Existencia_objektu and geometry. The name is only
    DISPLAY_EXPRESSION, an ArcGIS display alias, and there is no name-type attribute —
    no rank signal. The usable version is MapServer layer 100 with NAM + CAT, i.e. behind
    the throttled endpoint.
  • ferries: provisionally ABSENT — the 92-layer list contains no ferry class, only
    Brod (ford). Danube kompy exist on the ground, so check SSC/CDB before finalising.
  • transit and stations: unresolved — no tram layer and no station layer in the 92;
    Lanovka, vlek mixes cable cars with ski tows. Bratislava's GTFS (data.bratislava.sk,
    an ArcGIS Hub with 626 datasets) is CC BY 4.0 and covers the urban half.
  • data.slovensko.sk is an SPA, not CKAN — use the EU aggregator with
    facets={"country":["sk"]} as Slovakia's index.

Open items, in the order they block things

  1. Re-test …/MapServer/<id>/query on zbgis.skgeodesy.sk. Everything except mask and
    cover depends on it. If it stays 503, find ÚGKK's bulk-download route ("na stiahnutie")
    or fall back to CDB geometry plus a class join.
  2. Where tram and station geometry actually live.
  3. The places population join key (ŠÚ SR ↔ ZBGIS obec).
  4. Ferries — confirm against SSC/CDB before writing the absence down.

Border tests (R135): Slovakia borders Poland (already imported) and Czechia
(catalogued in this same batch)
— the first chance in the project to get a border right on
the first import of both sides rather than retrofitting it.

Adding four countries (Norway, Denmark, Czechia, Slovakia). This is Slovakia's gate issue, per `.claude/skills/add-country/`. Deliverable: `docs/country-sk.md` in the `docs/country-gr.md` reference shape (R129–R136). ## Research verdict (2026-08-24): GO, but this is the awkward one The data exists and is CC BY 4.0. The *delivery* is the problem: ÚGKK publishes ZBGIS chiefly as **raster tiles**, its vector attributes sit behind an ArcGIS MapServer whose `/query` endpoint is **currently load-shedding**, and only two ZBGIS themes are exposed as WFS. All hosts resolve over IPv4. ### What works today - **`zbgis_administrativne_hranice_wfs`** → `sr` (**1** polygon — the country), `obec` (**2 927**), `okres`, `kraj`. This is the mask and the borders, anonymous. - **SAŽP `https://geos.sazp.sk/geoserver/corine/clc2018/wfs`** → `corine:clc2018`, **22 775** polygons, attributes **`code_18`**, `legend_name_sk/en`, `area_ha`, licence **CC BY 4.0** (`…/by/4.0/deed.sk`, per distribution). `code_18` is the **same column name Greece's CORINE delivery uses**, so `conf/sk/02-cover.yaml` is the Greece/Finland identity `CASE` almost verbatim — over an **anonymous WFS**, needing neither the CLMS provider nor a credential. CLC 2000/2006/2012/2018/**2024** are all published this way. So the **pilot (mask + cover) is unblocked and cheap** even though the rest is not. ### The blocker for everything else `https://zbgis.skgeodesy.sk/zbgis/rest/services/ZBGIS/MapServer?f=json` → HTTP 200, **92 layers**, `Query` advertised, `maxRecordCount = 1000`. That 92-layer list *is* the R6 full published class list, and it maps cleanly onto ismap: 22 `Cesta` (**`RTN`** route number, `RDT`, `RST`), 37 `Železnica` (`RRC`, `RRA`, `RGC`), 35 `Vodný tok` (**`NAM`**, `HYC`), 73 `Vodná plocha` (**`NAM`**), 10 `Prameň`, 19 `Vodopád`, 41 `Budova`, 62 `Plocha letiska`, 100 `Štandardizovaný názov` (**`NAM`** + **`CAT`**), 81 `Slovenská republika`. **But every `…/MapServer/<id>/query?…` call returned HTTP 503**, twice, ~20 minutes apart, serving the cadastre portal's Slovak load-shedding page. Layer *metadata* returns 200 throughout — so this is not DNS, not IPv6, not a firewall, and **not a verdict**. It is a re-test. At `maxRecordCount = 1000`, a national fetch of `Cesta` or `Budova` is tens of thousands of paged requests against an endpoint that is already shedding, which is a real import-design risk in its own right. ### Two national alternatives, both with a catch - **CDB (Cestná databanka, SSC)** INSPIRE WFS `https://ismcs.cdb.sk/inspire/services/INSPIRE/Inspire_download/MapServer/WFSServer` → `RoadLink` **132 181**, `RoadNode`. **The INSPIRE profile strips the semantics again** — `geographicalName_void = 1`, no functional class. Geometry yes, classes no. (Same trap as Denmark's `roadlink`.) - **ŽSR "Jednotná železničná mapa – vektorové údaje AS IS"** `https://gisgeo.zsr.sk/geoserver/public/ows` → `JZM_LvALL_Line_public` **1 315 888** features whose attributes are `ELEMTYPE`, `LVNUMBER`, **`COLORRGB`, `STYLE`, `WEIGHT`, `MAPNAME`**, in 4-metre segments. **This is a CAD drawing exported as WFS, not a topological rail network** — it would render as a picture of a map. Reject on shape, not on licence. ### Other findings - **`geograficky_nazov` WFS (136 380 points) is a decoy for `places`**: `DescribeFeatureType` exposes only `ZBGIS_ID`, `Existencia_objektu` and geometry. The name is only `DISPLAY_EXPRESSION`, an ArcGIS display alias, and there is **no name-type attribute** — no rank signal. The usable version is MapServer layer 100 with `NAM` + `CAT`, i.e. behind the throttled endpoint. - **`ferries`: provisionally ABSENT** — the 92-layer list contains no ferry class, only `Brod` (ford). Danube `kompy` exist on the ground, so check SSC/CDB before finalising. - **`transit` and `stations`: unresolved** — no tram layer and no station layer in the 92; `Lanovka, vlek` mixes cable cars with ski tows. Bratislava's GTFS (`data.bratislava.sk`, an ArcGIS Hub with 626 datasets) is **CC BY 4.0** and covers the urban half. - `data.slovensko.sk` is an SPA, not CKAN — use the EU aggregator with `facets={"country":["sk"]}` as Slovakia's index. ## Open items, in the order they block things 1. **Re-test `…/MapServer/<id>/query` on `zbgis.skgeodesy.sk`.** Everything except mask and cover depends on it. If it stays 503, find ÚGKK's bulk-download route ("na stiahnutie") or fall back to CDB geometry plus a class join. 2. Where tram and station geometry actually live. 3. The `places` population join key (ŠÚ SR ↔ ZBGIS `obec`). 4. Ferries — confirm against SSC/CDB before writing the absence down. Border tests (R135): Slovakia borders **Poland (already imported)** and **Czechia (catalogued in this same batch)** — the first chance in the project to get a border right on the first import of *both* sides rather than retrofitting it.
art-bot self-assigned this 2026-08-24 17:03:06 +00:00
art closed this issue 2026-10-09 06:58:28 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
art/ismap#213
No description provided.