[Git][debian-gis-team/pystac-client][master] 5 commits: New upstream version 0.8.5

Antonio Valentino (@antonio.valentino) gitlab at salsa.debian.org
Sun Oct 27 07:16:09 GMT 2024



Antonio Valentino pushed to branch master at Debian GIS Project / pystac-client


Commits:
b5573265 by Antonio Valentino at 2024-10-27T06:58:23+00:00
New upstream version 0.8.5
- - - - -
12390366 by Antonio Valentino at 2024-10-27T06:58:52+00:00
Update upstream source from tag 'upstream/0.8.5'

Update to upstream version '0.8.5'
with Debian dir c236ea2d4b79799c7d6528ff3c261c2e470d1f49
- - - - -
af1a4818 by Antonio Valentino at 2024-10-27T06:59:26+00:00
New upstream release

- - - - -
8c0b8ba9 by Antonio Valentino at 2024-10-27T07:05:21+00:00
Skip tests that require access to the internet

- - - - -
cdd999b7 by Antonio Valentino at 2024-10-27T07:05:22+00:00
Set distribution to unstable

- - - - -


11 changed files:

- .pre-commit-config.yaml
- CHANGELOG.md
- debian/changelog
- debian/rules
- pyproject.toml
- pystac_client/_utils.py
- pystac_client/client.py
- pystac_client/mixins.py
- pystac_client/version.py
- + tests/cassettes/test_client/test_query_string_in_collections_url.yaml
- tests/test_client.py


Changes:

=====================================
.pre-commit-config.yaml
=====================================
@@ -3,7 +3,7 @@
 
 repos:
   - repo: https://github.com/charliermarsh/ruff-pre-commit
-    rev: "v0.6.9"
+    rev: "v0.7.0"
     hooks:
       - id: ruff
         args: [--fix, --exit-non-zero-on-fix]
@@ -25,7 +25,7 @@ repos:
         additional_dependencies:
           - importlib_metadata < 5; python_version == "3.7"
   - repo: https://github.com/pre-commit/mirrors-mypy
-    rev: v1.12.0
+    rev: v1.13.0
     hooks:
       - id: mypy
         files: ".*\\.py$"


=====================================
CHANGELOG.md
=====================================
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
 
 ## [Unreleased]
 
+## [v0.8.5] - 2024-10-23
+
+### Fixed
+
+- Use urljoin to build hrefs [#746](https://github.com/stac-utils/pystac-client/pull/746)
+
 ## [v0.8.4] - 2024-10-16
 
 ### Added
@@ -395,7 +401,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
 
 Initial release.
 
-[Unreleased]: https://github.com/stac-utils/pystac-client/compare/v0.8.4...main
+[Unreleased]: https://github.com/stac-utils/pystac-client/compare/v0.8.5...main
+[v0.8.5]: https://github.com/stac-utils/pystac-client/compare/v0.8.4...v0.8.5
 [v0.8.4]: https://github.com/stac-utils/pystac-client/compare/v0.8.3...v0.8.4
 [v0.8.3]: https://github.com/stac-utils/pystac-client/compare/v0.8.2...v0.8.3
 [v0.8.2]: https://github.com/stac-utils/pystac-client/compare/v0.8.1...v0.8.2


=====================================
debian/changelog
=====================================
@@ -1,3 +1,11 @@
+pystac-client (0.8.5-1) unstable; urgency=medium
+
+  * New upstream release.
+  * debian/rules:
+    - Skip tests requiring access to the internet.
+
+ -- Antonio Valentino <antonio.valentino at tiscali.it>  Sun, 27 Oct 2024 06:59:55 +0000
+
 pystac-client (0.8.4-1) unstable; urgency=medium
 
   [ Bas Couwenberg ]


=====================================
debian/rules
=====================================
@@ -54,7 +54,8 @@ and not test_enabled_but_client_side_q \
 and not test_client_side_q \
 and not test_client_side_bbox \
 and not test_client_side_datetime \
-and not test_collection_search[inprocess]" \
+and not test_collection_search[inprocess] \
+and not test_query_string_in_collections_url" \
 --block-network
 
 %:


=====================================
pyproject.toml
=====================================
@@ -52,7 +52,7 @@ dev = [
     "pytest~=8.0",
     "recommonmark~=0.7.1",
     "requests-mock~=1.12",
-    "ruff==0.6.9",
+    "ruff==0.7.0",
     "tomli~=2.0; python_version<'3.11'",
     "types-python-dateutil>=2.8.19,<2.10.0",
     "types-requests~=2.32.0",


=====================================
pystac_client/_utils.py
=====================================
@@ -1,3 +1,4 @@
+import urllib
 import warnings
 from typing import Any, Callable, Dict, Optional, Union
 
@@ -25,3 +26,12 @@ def call_modifier(
             "a function that returns 'None' or silence this warning.",
             IgnoredResultWarning,
         )
+
+
+def urljoin(href: str, name: str) -> str:
+    """Joins a path onto an existing href, respecting query strings, etc."""
+    url = urllib.parse.urlparse(href)
+    path = url.path
+    if not path.endswith("/"):
+        path += "/"
+    return urllib.parse.urlunparse(url._replace(path=path + name))


=====================================
pystac_client/client.py
=====================================
@@ -20,7 +20,7 @@ from pystac import CatalogType, Collection
 from pystac.layout import APILayoutStrategy, HrefLayoutStrategy
 from requests import Request
 
-from pystac_client._utils import Modifiable, call_modifier
+from pystac_client._utils import Modifiable, call_modifier, urljoin
 from pystac_client.collection_client import CollectionClient
 from pystac_client.collection_search import CollectionSearch
 from pystac_client.conformance import ConformanceClasses
@@ -786,11 +786,11 @@ class Client(pystac.Catalog, QueryablesMixin):
         data_link = self.get_single_link("data")
         href = self._get_href("data", data_link, "collections")
         if collection_id is not None:
-            return f"{href.rstrip('/')}/{collection_id}"
+            return urljoin(href, collection_id)
         return href
 
     def _get_collection_queryables_href(
         self, collection_id: Optional[str] = None
     ) -> str:
         href = self._collections_href(collection_id)
-        return f"{href.rstrip('/')}/{QUERYABLES_ENDPOINT}"
+        return urljoin(href, QUERYABLES_ENDPOINT)


=====================================
pystac_client/mixins.py
=====================================
@@ -3,6 +3,7 @@ from typing import Any, Dict, Optional, Union
 
 import pystac
 
+from pystac_client._utils import urljoin
 from pystac_client.conformance import ConformanceClasses
 from pystac_client.exceptions import APIError
 from pystac_client.stac_api_io import StacApiIO
@@ -25,7 +26,7 @@ class BaseMixin(StacAPIObject):
             href = link.absolute_href
         else:
             warnings.warn(MissingLink(rel, self.__class__.__name__), stacklevel=2)
-            href = f"{self.self_href.rstrip('/')}/{endpoint}"
+            href = urljoin(self.self_href, endpoint)
         return href
 
 


=====================================
pystac_client/version.py
=====================================
@@ -1 +1 @@
-__version__ = "0.8.4"
+__version__ = "0.8.5"


=====================================
tests/cassettes/test_client/test_query_string_in_collections_url.yaml
=====================================
@@ -0,0 +1,216 @@
+interactions:
+- request:
+    body: null
+    headers:
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Connection:
+      - keep-alive
+      User-Agent:
+      - python-requests/2.32.3
+    method: GET
+    uri: https://paituli.csc.fi/geoserver/ogc/stac/v1
+  response:
+    body:
+      string: '{"title":"Paituli STAC","description":"Paituli STAC with Finnish data.
+        More info: https://paituli.csc.fi/stac.html","links":[{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/?f=application%2Fjson","rel":"self","type":"application/json","title":"This
+        document"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/?f=application%2Fx-yaml","rel":"alternate","type":"application/x-yaml","title":"This
+        document as application/x-yaml"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/?f=text%2Fhtml","rel":"alternate","type":"text/html","title":"This
+        document as text/html"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/openapi?f=application%2Fvnd.oai.openapi%2Bjson%3Bversion%3D3.0","rel":"service-desc","type":"application/vnd.oai.openapi+json;version=3.0","title":"API
+        definition for this endpoint as application/vnd.oai.openapi+json;version=3.0"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/openapi?f=application%2Fx-yaml","rel":"service-desc","type":"application/x-yaml","title":"API
+        definition for this endpoint as application/x-yaml"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/openapi?f=text%2Fhtml","rel":"service-doc","type":"text/html","title":"API
+        definition for this endpoint as text/html"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/conformance?f=application%2Fjson","rel":"conformance","type":"application/json","title":"Conformance
+        declaration as application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/conformance?f=application%2Fx-yaml","rel":"conformance","type":"application/x-yaml","title":"Conformance
+        declaration as application/x-yaml"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/conformance?f=text%2Fhtml","rel":"conformance","type":"text/html","title":"Conformance
+        declaration as text/html"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections?f=application%2Fjson","rel":"data","type":"application/json","title":"Collections
+        Metadata as application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections?f=text%2Fhtml","rel":"data","type":"text/html","title":"Collections
+        Metadata as text/html"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_global_radiation_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_koivukuitu_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_land_class_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_latvuspeitto_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_8_modif_area_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/regions_land_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_sea_level_pressure_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_koivu_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_manty_latva_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_lehtip_runkokuori_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_1_11_days_mosaics_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_dtw_2m_10ha_threshold_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_1_mining_area_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_general_map_1milj_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_precipitation_predictions_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_kasvupaikka_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_6_footprint_perc_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_forest_snow_damage_risk_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_5_road_density_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/daily_wind_damage_risk_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_ika_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/regional_state_administrative_agencies_land_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_2_1_forest_loss_perc_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_2_nir_b08_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_volume_spruce_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_koivutukki_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_mantykuitu_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_42k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/wind_velocity_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_fra_luokka_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_muulpkuitu_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_13_livestock_mass_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_84k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_kuusitukki_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_digital_elevation_model_2m_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_erosion_susceptibility_of_agricultural_areas_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/landsat_annual_index_mosaics_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sea_regions_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_kuusi_juuret_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_2_satellite_image_mosaic_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_max_temperature_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/canopy_height_model_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_kuusi_neulaset_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_3_1_light_mcdm2_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/2m_digital_terrain_model_products_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_dtw_2m_0_5ha_threshold_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_manty_kanto_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_monthly_precipitation_1km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_lehtip_kuolleetoksat_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_mantytukki_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel2-l2a","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_snow_load_on_trees_100m_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_manty_juuret_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/vegetation_height_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_false_color_orthoimage_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_wind_speed_10y_return_level_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_manty_elavatoksat_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_lehtip_juuret_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_ppa_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_lehtip_latva_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_stand_class_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/digital_surface_model_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_1_global_backscatter_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_digital_elevation_model_25m_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_dtw_2m_4ha_threshold_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_12_crop_perc_iiasa_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_lehtip_neulaset_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_2_annual_mosaics_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_site_main_class_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_kuusi_kanto_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/land_parcels_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_basic_map_background_colour_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_pitajakartta_20k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_5_4_clim_velocity_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_monthly_mean_temperature_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/digital_terrain_model_10m_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_lehtip_latvuspeitto_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_2_2_forest_trend_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_2_monthly_index_mosaics_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/digital_terrain_model_2m_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_orthoimage_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_maaluokka_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_orthoimage_newest_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/peatland_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_carbon_stock_change_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_keskilapimitta_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_7_impact_area_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_basic_map_print_colour_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/regional_state_administrative_agencies_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_manty_runkokuori_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_monthly_temperature_predictions_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_1_daily_mosaics_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_tilavuus_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_potential_erosion_of_agricultural_lands_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/municipalities_land_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_min_temperature_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_keskipituus_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_1_tiles_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_min_temperature_predictions_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_2_swir_b11_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_manty_kuolleetoksat_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_relative_humidity_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_dtw_2m_2ha_threshold_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_100k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_11_crop_perc_uni_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_25k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_kuusi_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_site_fertility_class_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_5_1_temp_trends_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_volume_pine_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_forest_wind_damage_sensitivity_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_5_2_temp_signif_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_volume_of_growing_stock_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_volume_birch_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_5_3_clim_extreme_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_21k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_5_5_aridity_trend_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/digital_terrain_model_2m_slope_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_50k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_volume_of_other_deciduous_tree_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_topographical_wetness_index_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_paatyyppi_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_20k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_monthly_precipitation_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/building_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_dtw_2m_1ha_threshold_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_muulptukki_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_mean_temperature_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_basic_map_contours_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/superficial_deposits_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_kuusikuitu_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_basal_area_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_monthly_avg_temperature_1km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_kuusi_latva_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/country_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_erosion_susceptibility_of_land_areas_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_lehtip_elavatoksat_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_kuusi_elavatoksat_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/municipalities_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_mista_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_carbon_stock_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_400k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/canopy_cover_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nasa_usgs_latuviitta_landsat_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/ndvi_max_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_250k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/regions_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_2_hazard_potential_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_lehtip_kanto_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_digital_elevation_model_10m_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_manty_neulaset_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_mean_temperature_predictions_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/orthophoto_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_precipitation_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_kuusi_kuolleetoksat_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/digital_terrain_model_2m_aspect_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_3_human_density_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_monthly_precipitation_predictions_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_wind_speed_50y_return_level_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_false_color_orthoimage_newest_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_2_11_days_mosaics_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_manty_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_500k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_10_fire_occur_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_snow_depth_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_taloudellinen_100k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_4_built_area_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/corine_land_cover_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_kuusi_runkokuori_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_max_temperature_predictions_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_9_human_biomes_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_basic_map_without_contours_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_wind_damage_risk_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_muulp_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/country_land_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/search?f=application%2Fgeo%2Bjson","rel":"search","type":"application/geo+json","title":"Items
+        as application/geo+json","method":"GET"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/search?f=text%2Fhtml","rel":"search","type":"text/html","title":"Items
+        as text/html","method":"GET"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1?f=application%2Fjson","rel":"root","type":"application/json","title":"Root
+        Catalog as application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/search?f=application%2Fgeo%2Bjson","rel":"search","type":"application/geo+json","title":"Items
+        as application/geo+json","method":"POST"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/search?f=text%2Fhtml","rel":"search","type":"text/html","title":"Items
+        as text/html","method":"POST"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/queryables?f=application%2Fschema%2Bjson","rel":"http://www.opengis.net/def/rel/ogc/1.0/queryables","type":"application/schema+json","title":"Queryables
+        as application/schema+json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/queryables?f=text%2Fhtml","rel":"http://www.opengis.net/def/rel/ogc/1.0/queryables","type":"text/html","title":"Queryables
+        as text/html"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/sortables?f=application%2Fschema%2Bjson","rel":"http://www.opengis.net/def/rel/ogc/1.0/sortables","type":"application/schema+json","title":"Sortables
+        as application/schema+json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/sortables?f=text%2Fhtml","rel":"http://www.opengis.net/def/rel/ogc/1.0/sortables","type":"text/html","title":"Sortables
+        as text/html"}],"id":"GeoserverSTACLandingPage","conformsTo":["http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core","http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30","http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/html","http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson","https://api.stacspec.org/v1.0.0/collections","https://api.stacspec.org/v1.0.0/core","https://api.stacspec.org/v1.0.0/ogcapi-features","https://api.stacspec.org/v1.0.0/item-search","https://api.stacspec.org/v1.0.0/item-search#filter","https://api.stacspec.org/v1.0.0/item-search#sort","https://api.stacspec.org/v1.0.0/item-search#fields","http://www.opengis.net/spec/ogcapi-features-3/1.0/req/features-filter","http://www.opengis.net/spec/ogcapi-features-3/1.0/req/filter","http://geoserver.org/spec/ecql/1.0/req/gs-ecql","http://geoserver.org/spec/ecql/1.0/req/ecql-text","http://www.opengis.net/spec/cql2/1.0/req/basic-cql2","http://www.opengis.net/spec/cql2/1.0/req/advanced-comparison-operators","http://www.opengis.net/spec/cql2/1.0/req/arithmetic","http://www.opengis.net/spec/cql2/1.0/req/property-property","http://www.opengis.net/spec/cql2/1.0/req/basic-spatial-operators","http://www.opengis.net/spec/cql2/1.0/req/spatial-operators","http://www.opengis.net/spec/cql2/1.0/req/functions","http://www.opengis.net/spec/cql2/1.0/req/cql2-text"],"type":"Catalog","stac_version":"1.0.0"}'
+    headers:
+      API-Version:
+      - 1.0.0
+      Access-Control-Allow-Headers:
+      - Origin, X-Requested-With, Content-Type, Accept, User-Agent, If-Modified-Since,Cache-Control,
+      Access-Control-Allow-Methods:
+      - GET, OPTIONS
+      Access-Control-Allow-Origin:
+      - '*'
+      Connection:
+      - keep-alive
+      Content-Encoding:
+      - gzip
+      Content-Type:
+      - application/json
+      Date:
+      - Tue, 22 Oct 2024 13:37:33 GMT
+      Link:
+      - <https://paituli.csc.fi/geoserver/ogc/stac/v1/conformance?f=application%2Fjson>;
+        rel="self"; type="application/json"; title="This document"
+      - <https://paituli.csc.fi/geoserver/ogc/stac/v1/conformance?f=application%2Fx-yaml>;
+        rel="alternate"; type="application/x-yaml"; title="This document as application/x-yaml"
+      - <https://paituli.csc.fi/geoserver/ogc/stac/v1/conformance?f=text%2Fhtml>;
+        rel="alternate"; type="text/html"; title="This document as text/html"
+      - <https://paituli.csc.fi/geoserver/ogc/stac/v1/?f=application%2Fjson>; rel="self";
+        type="application/json"; title="This document"
+      - <https://paituli.csc.fi/geoserver/ogc/stac/v1/?f=application%2Fx-yaml>; rel="alternate";
+        type="application/x-yaml"; title="This document as application/x-yaml"
+      - <https://paituli.csc.fi/geoserver/ogc/stac/v1/?f=text%2Fhtml>; rel="alternate";
+        type="text/html"; title="This document as text/html"
+      Server:
+      - nginx/1.24.0
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - SAMEORIGIN
+    status:
+      code: 200
+      message: ''
+- request:
+    body: null
+    headers:
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Connection:
+      - keep-alive
+      User-Agent:
+      - python-requests/2.32.3
+    method: GET
+    uri: https://paituli.csc.fi/geoserver/ogc/stac/v1?f=application%2Fjson
+  response:
+    body:
+      string: '{"title":"Paituli STAC","description":"Paituli STAC with Finnish data.
+        More info: https://paituli.csc.fi/stac.html","links":[{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/?f=application%2Fjson","rel":"self","type":"application/json","title":"This
+        document"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/?f=application%2Fx-yaml","rel":"alternate","type":"application/x-yaml","title":"This
+        document as application/x-yaml"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/?f=text%2Fhtml","rel":"alternate","type":"text/html","title":"This
+        document as text/html"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/openapi?f=application%2Fvnd.oai.openapi%2Bjson%3Bversion%3D3.0","rel":"service-desc","type":"application/vnd.oai.openapi+json;version=3.0","title":"API
+        definition for this endpoint as application/vnd.oai.openapi+json;version=3.0"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/openapi?f=application%2Fx-yaml","rel":"service-desc","type":"application/x-yaml","title":"API
+        definition for this endpoint as application/x-yaml"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/openapi?f=text%2Fhtml","rel":"service-doc","type":"text/html","title":"API
+        definition for this endpoint as text/html"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/conformance?f=application%2Fjson","rel":"conformance","type":"application/json","title":"Conformance
+        declaration as application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/conformance?f=application%2Fx-yaml","rel":"conformance","type":"application/x-yaml","title":"Conformance
+        declaration as application/x-yaml"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/conformance?f=text%2Fhtml","rel":"conformance","type":"text/html","title":"Conformance
+        declaration as text/html"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections?f=application%2Fjson","rel":"data","type":"application/json","title":"Collections
+        Metadata as application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections?f=text%2Fhtml","rel":"data","type":"text/html","title":"Collections
+        Metadata as text/html"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_global_radiation_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_koivukuitu_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_land_class_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_latvuspeitto_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_8_modif_area_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/regions_land_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_sea_level_pressure_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_koivu_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_manty_latva_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_lehtip_runkokuori_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_1_11_days_mosaics_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_dtw_2m_10ha_threshold_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_1_mining_area_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_general_map_1milj_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_precipitation_predictions_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_kasvupaikka_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_6_footprint_perc_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_forest_snow_damage_risk_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_5_road_density_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/daily_wind_damage_risk_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_ika_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/regional_state_administrative_agencies_land_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_2_1_forest_loss_perc_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_2_nir_b08_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_volume_spruce_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_koivutukki_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_mantykuitu_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_42k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/wind_velocity_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_fra_luokka_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_muulpkuitu_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_13_livestock_mass_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_84k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_kuusitukki_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_digital_elevation_model_2m_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_erosion_susceptibility_of_agricultural_areas_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/landsat_annual_index_mosaics_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sea_regions_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_kuusi_juuret_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_2_satellite_image_mosaic_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_max_temperature_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/canopy_height_model_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_kuusi_neulaset_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_3_1_light_mcdm2_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/2m_digital_terrain_model_products_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_dtw_2m_0_5ha_threshold_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_manty_kanto_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_monthly_precipitation_1km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_lehtip_kuolleetoksat_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_mantytukki_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel2-l2a","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_snow_load_on_trees_100m_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_manty_juuret_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/vegetation_height_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_false_color_orthoimage_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_wind_speed_10y_return_level_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_manty_elavatoksat_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_lehtip_juuret_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_ppa_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_lehtip_latva_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_stand_class_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/digital_surface_model_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_1_global_backscatter_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_digital_elevation_model_25m_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_dtw_2m_4ha_threshold_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_12_crop_perc_iiasa_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_lehtip_neulaset_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_2_annual_mosaics_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_site_main_class_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_kuusi_kanto_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/land_parcels_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_basic_map_background_colour_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_pitajakartta_20k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_5_4_clim_velocity_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_monthly_mean_temperature_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/digital_terrain_model_10m_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_lehtip_latvuspeitto_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_2_2_forest_trend_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_2_monthly_index_mosaics_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/digital_terrain_model_2m_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_orthoimage_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_maaluokka_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_orthoimage_newest_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/peatland_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_carbon_stock_change_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_keskilapimitta_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_7_impact_area_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_basic_map_print_colour_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/regional_state_administrative_agencies_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_manty_runkokuori_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_monthly_temperature_predictions_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_1_daily_mosaics_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_tilavuus_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_potential_erosion_of_agricultural_lands_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/municipalities_land_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_min_temperature_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_keskipituus_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_1_tiles_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_min_temperature_predictions_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_2_swir_b11_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_manty_kuolleetoksat_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_relative_humidity_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_dtw_2m_2ha_threshold_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_100k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_11_crop_perc_uni_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_25k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_kuusi_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_site_fertility_class_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_5_1_temp_trends_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_volume_pine_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_forest_wind_damage_sensitivity_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_5_2_temp_signif_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_volume_of_growing_stock_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_volume_birch_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_5_3_clim_extreme_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_21k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_5_5_aridity_trend_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/digital_terrain_model_2m_slope_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_50k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_volume_of_other_deciduous_tree_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_topographical_wetness_index_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_paatyyppi_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_20k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_monthly_precipitation_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/building_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_dtw_2m_1ha_threshold_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_muulptukki_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_mean_temperature_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_basic_map_contours_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/superficial_deposits_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_kuusikuitu_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_inventory_basal_area_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_monthly_avg_temperature_1km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_kuusi_latva_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/country_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_erosion_susceptibility_of_land_areas_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_lehtip_elavatoksat_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_kuusi_elavatoksat_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/municipalities_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_mista_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_carbon_stock_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_400k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/canopy_cover_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nasa_usgs_latuviitta_landsat_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/ndvi_max_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_250k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/regions_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_2_hazard_potential_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_lehtip_kanto_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_digital_elevation_model_10m_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_manty_neulaset_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_mean_temperature_predictions_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/orthophoto_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_precipitation_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_kuusi_kuolleetoksat_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/digital_terrain_model_2m_aspect_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_3_human_density_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_monthly_precipitation_predictions_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_wind_speed_50y_return_level_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_false_color_orthoimage_newest_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel_2_11_days_mosaics_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_manty_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_topographic_map_500k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_10_fire_occur_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_snow_depth_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_taloudellinen_100k_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_4_built_area_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/corine_land_cover_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_bm_kuusi_runkokuori_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/fmi_daily_max_temperature_predictions_10km_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/hy_spectre_1_9_human_biomes_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/nls_basic_map_without_contours_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/forest_wind_damage_risk_at_fmi","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/luke_vmi_muulp_at_paituli","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/country_land_at_geocubes","rel":"child","type":"application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/search?f=application%2Fgeo%2Bjson","rel":"search","type":"application/geo+json","title":"Items
+        as application/geo+json","method":"GET"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/search?f=text%2Fhtml","rel":"search","type":"text/html","title":"Items
+        as text/html","method":"GET"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1?f=application%2Fjson","rel":"root","type":"application/json","title":"Root
+        Catalog as application/json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/search?f=application%2Fgeo%2Bjson","rel":"search","type":"application/geo+json","title":"Items
+        as application/geo+json","method":"POST"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/search?f=text%2Fhtml","rel":"search","type":"text/html","title":"Items
+        as text/html","method":"POST"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/queryables?f=application%2Fschema%2Bjson","rel":"http://www.opengis.net/def/rel/ogc/1.0/queryables","type":"application/schema+json","title":"Queryables
+        as application/schema+json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/queryables?f=text%2Fhtml","rel":"http://www.opengis.net/def/rel/ogc/1.0/queryables","type":"text/html","title":"Queryables
+        as text/html"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/sortables?f=application%2Fschema%2Bjson","rel":"http://www.opengis.net/def/rel/ogc/1.0/sortables","type":"application/schema+json","title":"Sortables
+        as application/schema+json"},{"href":"https://paituli.csc.fi/geoserver/ogc/stac/v1/sortables?f=text%2Fhtml","rel":"http://www.opengis.net/def/rel/ogc/1.0/sortables","type":"text/html","title":"Sortables
+        as text/html"}],"id":"GeoserverSTACLandingPage","conformsTo":["http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core","http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30","http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/html","http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson","https://api.stacspec.org/v1.0.0/collections","https://api.stacspec.org/v1.0.0/core","https://api.stacspec.org/v1.0.0/ogcapi-features","https://api.stacspec.org/v1.0.0/item-search","https://api.stacspec.org/v1.0.0/item-search#filter","https://api.stacspec.org/v1.0.0/item-search#sort","https://api.stacspec.org/v1.0.0/item-search#fields","http://www.opengis.net/spec/ogcapi-features-3/1.0/req/features-filter","http://www.opengis.net/spec/ogcapi-features-3/1.0/req/filter","http://geoserver.org/spec/ecql/1.0/req/gs-ecql","http://geoserver.org/spec/ecql/1.0/req/ecql-text","http://www.opengis.net/spec/cql2/1.0/req/basic-cql2","http://www.opengis.net/spec/cql2/1.0/req/advanced-comparison-operators","http://www.opengis.net/spec/cql2/1.0/req/arithmetic","http://www.opengis.net/spec/cql2/1.0/req/property-property","http://www.opengis.net/spec/cql2/1.0/req/basic-spatial-operators","http://www.opengis.net/spec/cql2/1.0/req/spatial-operators","http://www.opengis.net/spec/cql2/1.0/req/functions","http://www.opengis.net/spec/cql2/1.0/req/cql2-text"],"type":"Catalog","stac_version":"1.0.0"}'
+    headers:
+      API-Version:
+      - 1.0.0
+      Access-Control-Allow-Headers:
+      - Origin, X-Requested-With, Content-Type, Accept, User-Agent, If-Modified-Since,Cache-Control,
+      Access-Control-Allow-Methods:
+      - GET, OPTIONS
+      Access-Control-Allow-Origin:
+      - '*'
+      Connection:
+      - keep-alive
+      Content-Encoding:
+      - gzip
+      Content-Type:
+      - application/json
+      Date:
+      - Tue, 22 Oct 2024 13:37:34 GMT
+      Link:
+      - <https://paituli.csc.fi/geoserver/ogc/stac/v1/conformance?f=application%2Fjson>;
+        rel="self"; type="application/json"; title="This document"
+      - <https://paituli.csc.fi/geoserver/ogc/stac/v1/conformance?f=application%2Fx-yaml>;
+        rel="alternate"; type="application/x-yaml"; title="This document as application/x-yaml"
+      - <https://paituli.csc.fi/geoserver/ogc/stac/v1/conformance?f=text%2Fhtml>;
+        rel="alternate"; type="text/html"; title="This document as text/html"
+      - <https://paituli.csc.fi/geoserver/ogc/stac/v1/?f=application%2Fjson>; rel="self";
+        type="application/json"; title="This document"
+      - <https://paituli.csc.fi/geoserver/ogc/stac/v1/?f=application%2Fx-yaml>; rel="alternate";
+        type="application/x-yaml"; title="This document as application/x-yaml"
+      - <https://paituli.csc.fi/geoserver/ogc/stac/v1/?f=text%2Fhtml>; rel="alternate";
+        type="text/html"; title="This document as text/html"
+      Server:
+      - nginx/1.24.0
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - SAMEORIGIN
+    status:
+      code: 200
+      message: ''
+- request:
+    body: null
+    headers:
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Connection:
+      - keep-alive
+      User-Agent:
+      - python-requests/2.32.3
+    method: GET
+    uri: https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel2-l2a?f=application%2Fjson
+  response:
+    body:
+      string: "{\"id\":\"sentinel2-l2a\",\"title\":\"Sentinel-2 L2A\",\"description\":\"Sentinel-2
+        products, processed to Level-2A (Surface Reflectance), a selection of mostly
+        cloud-free products from Finland. More information: https://a3s.fi/sentinel-readme/README.txt\",\"crs\":[\"http://www.opengis.net/def/crs/OGC/1.3/CRS84\"],\"stac_version\":\"1.0.0\",\"license\":\"CC-BY-3.0-IGO\",\"type\":\"Collection\",\"extent\":{\"spatial\":{\"bbox\":[[17.370638358957653,59.39819844805931,33.248667706050284,70.30601749247492]]},\"temporal\":{\"interval\":[[\"2015-07-04T00:00:00.000+00:00\",\"2024-09-01T00:00:00.000+00:00\"]]}},\"providers\":[{\"name\":\"CSC
+        Finland\",\"roles\":[\"host\"],\"url\":\"https://www.csc.fi/\"},{\"name\":\"ESA\",\"roles\":[\"producer\",\"licensor\"],\"url\":\"https://www.esa.int/\"},{\"name\":\"Maria
+        Yli-Heikkil\xE4\",\"roles\":[\"processor\"]},{\"name\":\"Arttu Kivim\xE4ki\",\"roles\":[\"processor\"]},{\"name\":\"Matias
+        Heino\",\"roles\":[\"processor\"]}],\"assets\":{\"metadata\":{\"href\":\"https://a3s.fi/sentinel-readme/README.txt\",\"roles\":[\"metadata\"]}},\"summaries\":{\"eo:bands\":[{\"name\":\"B01\",\"description\":\"Coastal:
+        400 - 450 nm\",\"common_name\":\"coastal\"},{\"name\":\"B02\",\"description\":\"Blue:
+        450 - 500 nm\",\"common_name\":\"blue\"},{\"name\":\"B03\",\"description\":\"Green:
+        500 - 600 nm\",\"common_name\":\"green\"},{\"name\":\"B04\",\"description\":\"Red:
+        600 - 700 nm\",\"common_name\":\"red\"},{\"name\":\"B05\",\"description\":\"Vegetation
+        Red Edge: 705 nm\",\"common_name\":\"rededge\"},{\"name\":\"B06\",\"description\":\"Vegetation
+        Red Edge: 740 nm\",\"common_name\":\"rededge\"},{\"name\":\"B07\",\"description\":\"Vegetation
+        Red Edge: 783 nm\",\"common_name\":\"rededge\"},{\"name\":\"B08\",\"description\":\"Near-IR:
+        750 - 1000 nm\",\"common_name\":\"nir\"},{\"name\":\"B8A\",\"description\":\"Near-IR:
+        750 - 900 nm\",\"common_name\":\"nir08\"},{\"name\":\"B09\",\"description\":\"Water
+        vapour: 850 - 1050 nm\",\"common_name\":\"nir09\"},{\"name\":\"B10\",\"description\":\"SWIR-Cirrus:
+        1350 - 1400 nm\",\"common_name\":\"cirrus\"},{\"name\":\"B11\",\"description\":\"SWIR16:
+        1550 - 1750 nm\",\"common_name\":\"swir16\"},{\"name\":\"B12\",\"description\":\"SWIR22:
+        2100 - 2300 nm\",\"common_name\":\"swir22\"}],\"gsd\":[10,20,60]},\"links\":[{\"href\":\"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel2-l2a\",\"rel\":\"self\",\"type\":\"application/json\"},{\"href\":\"https://paituli.csc.fi/geoserver/ogc/stac/v1\",\"rel\":\"root\",\"type\":\"application/json\"},{\"href\":\"https://paituli.csc.fi/geoserver/ogc/stac/v1\",\"rel\":\"parent\",\"type\":\"application/json\"},{\"href\":\"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel2-l2a/items\",\"rel\":\"items\",\"type\":\"application/geo+json\"},{\"href\":\"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel2-l2a/queryables\",\"rel\":\"http://www.opengis.net/def/rel/ogc/1.0/queryables\",\"type\":\"application/schema+json\"},{\"href\":\"https://paituli.csc.fi/geoserver/ogc/stac/v1/collections/sentinel2-l2a/sortables\",\"rel\":\"http://www.opengis.net/def/rel/ogc/1.0/sortables\",\"type\":\"application/schema+json\"},{\"href\":\"https://sentinel.esa.int/documents/247904/690755/Sentinel_Data_Legal_Notice\",\"rel\":\"license\",\"type\":\"application/json\"}]}"
+    headers:
+      API-Version:
+      - 1.0.0
+      Access-Control-Allow-Headers:
+      - Origin, X-Requested-With, Content-Type, Accept, User-Agent, If-Modified-Since,Cache-Control,
+      Access-Control-Allow-Methods:
+      - GET, OPTIONS
+      Access-Control-Allow-Origin:
+      - '*'
+      Connection:
+      - keep-alive
+      Content-Encoding:
+      - gzip
+      Content-Length:
+      - '1026'
+      Content-Type:
+      - application/json
+      Date:
+      - Tue, 22 Oct 2024 13:37:47 GMT
+      Server:
+      - nginx/1.24.0
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - SAMEORIGIN
+    status:
+      code: 200
+      message: ''
+version: 1


=====================================
tests/test_client.py
=====================================
@@ -791,3 +791,10 @@ def test_fallback_strategy() -> None:
 
     assert (item_root := item.get_single_link("root"))
     assert item_root.href == root_href
+
+
+ at pytest.mark.vcr
+def test_query_string_in_collections_url() -> None:
+    # https://github.com/stac-utils/pystac-client/issues/745
+    client = Client.open("https://paituli.csc.fi/geoserver/ogc/stac/v1")
+    client.get_collection("sentinel2-l2a")



View it on GitLab: https://salsa.debian.org/debian-gis-team/pystac-client/-/compare/67758db71d087693f6ed14084310e20369f2fe2a...cdd999b748f0022774d8056a48360b3c95ffd2a2

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/pystac-client/-/compare/67758db71d087693f6ed14084310e20369f2fe2a...cdd999b748f0022774d8056a48360b3c95ffd2a2
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20241027/ba7a365a/attachment-0001.htm>


More information about the Pkg-grass-devel mailing list