eodag 3.5.1__tar.gz → 3.6.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. {eodag-3.5.1 → eodag-3.6.0}/CHANGES.rst +52 -0
  2. {eodag-3.5.1/eodag.egg-info → eodag-3.6.0}/PKG-INFO +6 -5
  3. {eodag-3.5.1 → eodag-3.6.0}/README.rst +2 -2
  4. {eodag-3.5.1 → eodag-3.6.0}/charts/eodag-server/Chart.yaml +2 -2
  5. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/product_types_information.csv +5 -0
  6. {eodag-3.5.1 → eodag-3.6.0}/docs/api_reference/core.rst +3 -1
  7. {eodag-3.5.1 → eodag-3.6.0}/docs/api_user_guide.rst +1 -0
  8. {eodag-3.5.1 → eodag-3.6.0}/docs/cli_user_guide.rst +64 -53
  9. {eodag-3.5.1 → eodag-3.6.0}/docs/conf.py +1 -0
  10. {eodag-3.5.1 → eodag-3.6.0}/docs/index.rst +1 -2
  11. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/tuto_stac_client.ipynb +3 -3
  12. {eodag-3.5.1 → eodag-3.6.0}/docs/stac_rest.rst +6 -28
  13. {eodag-3.5.1 → eodag-3.6.0}/docs/tutos.rst +1 -0
  14. {eodag-3.5.1 → eodag-3.6.0}/eodag/api/core.py +29 -0
  15. eodag-3.6.0/eodag/api/product/__init__.py +62 -0
  16. {eodag-3.5.1 → eodag-3.6.0}/eodag/api/search_result.py +155 -1
  17. {eodag-3.5.1 → eodag-3.6.0}/eodag/cli.py +54 -41
  18. {eodag-3.5.1 → eodag-3.6.0}/eodag/config.py +2 -6
  19. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/download/base.py +15 -3
  20. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/search/build_search_result.py +8 -6
  21. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/search/qssearch.py +4 -1
  22. eodag-3.6.0/eodag/resources/ext_product_types.json +1 -0
  23. {eodag-3.5.1 → eodag-3.6.0}/eodag/resources/product_types.yml +70 -0
  24. {eodag-3.5.1 → eodag-3.6.0}/eodag/resources/providers.yml +10 -0
  25. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/server.py +9 -7
  26. {eodag-3.5.1 → eodag-3.6.0}/eodag/utils/__init__.py +7 -0
  27. {eodag-3.5.1 → eodag-3.6.0/eodag.egg-info}/PKG-INFO +6 -5
  28. {eodag-3.5.1 → eodag-3.6.0}/eodag.egg-info/SOURCES.txt +0 -1
  29. {eodag-3.5.1 → eodag-3.6.0}/eodag.egg-info/requires.txt +3 -2
  30. {eodag-3.5.1 → eodag-3.6.0}/pyproject.toml +1 -1
  31. {eodag-3.5.1 → eodag-3.6.0}/setup.cfg +3 -2
  32. eodag-3.5.1/docs/stac.rst +0 -28
  33. eodag-3.5.1/eodag/api/product/__init__.py +0 -32
  34. eodag-3.5.1/eodag/resources/ext_product_types.json +0 -1
  35. {eodag-3.5.1 → eodag-3.6.0}/.dockerignore +0 -0
  36. {eodag-3.5.1 → eodag-3.6.0}/.editorconfig +0 -0
  37. {eodag-3.5.1 → eodag-3.6.0}/.gitattributes +0 -0
  38. {eodag-3.5.1 → eodag-3.6.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  39. {eodag-3.5.1 → eodag-3.6.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  40. {eodag-3.5.1 → eodag-3.6.0}/.github/pull_request_template.md +0 -0
  41. {eodag-3.5.1 → eodag-3.6.0}/.github/workflows/changelog.yml +0 -0
  42. {eodag-3.5.1 → eodag-3.6.0}/.github/workflows/deploy.yml +0 -0
  43. {eodag-3.5.1 → eodag-3.6.0}/.github/workflows/fetch.yml +0 -0
  44. {eodag-3.5.1 → eodag-3.6.0}/.github/workflows/github-pages.yml +0 -0
  45. {eodag-3.5.1 → eodag-3.6.0}/.github/workflows/lint-pr-title.yml +0 -0
  46. {eodag-3.5.1 → eodag-3.6.0}/.github/workflows/publish.yml +0 -0
  47. {eodag-3.5.1 → eodag-3.6.0}/.github/workflows/test.yml +0 -0
  48. {eodag-3.5.1 → eodag-3.6.0}/.gitignore +0 -0
  49. {eodag-3.5.1 → eodag-3.6.0}/.pre-commit-config.yaml +0 -0
  50. {eodag-3.5.1 → eodag-3.6.0}/BREAKING_CHANGES.rst +0 -0
  51. {eodag-3.5.1 → eodag-3.6.0}/CODE_OF_CONDUCT.md +0 -0
  52. {eodag-3.5.1 → eodag-3.6.0}/CONTRIBUTING.rst +0 -0
  53. {eodag-3.5.1 → eodag-3.6.0}/LICENSE +0 -0
  54. {eodag-3.5.1 → eodag-3.6.0}/MANIFEST.in +0 -0
  55. {eodag-3.5.1 → eodag-3.6.0}/NOTICE +0 -0
  56. {eodag-3.5.1 → eodag-3.6.0}/charts/eodag-server/Chart.lock +0 -0
  57. {eodag-3.5.1 → eodag-3.6.0}/charts/eodag-server/README.md +0 -0
  58. {eodag-3.5.1 → eodag-3.6.0}/charts/eodag-server/templates/NOTES.txt +0 -0
  59. {eodag-3.5.1 → eodag-3.6.0}/charts/eodag-server/templates/_helpers.tpl +0 -0
  60. {eodag-3.5.1 → eodag-3.6.0}/charts/eodag-server/templates/configmap.yaml +0 -0
  61. {eodag-3.5.1 → eodag-3.6.0}/charts/eodag-server/templates/deployment.yaml +0 -0
  62. {eodag-3.5.1 → eodag-3.6.0}/charts/eodag-server/templates/extra-list.yaml +0 -0
  63. {eodag-3.5.1 → eodag-3.6.0}/charts/eodag-server/templates/hpa.yaml +0 -0
  64. {eodag-3.5.1 → eodag-3.6.0}/charts/eodag-server/templates/ingress.yaml +0 -0
  65. {eodag-3.5.1 → eodag-3.6.0}/charts/eodag-server/templates/pv.yaml +0 -0
  66. {eodag-3.5.1 → eodag-3.6.0}/charts/eodag-server/templates/pvc.yaml +0 -0
  67. {eodag-3.5.1 → eodag-3.6.0}/charts/eodag-server/templates/secret.yaml +0 -0
  68. {eodag-3.5.1 → eodag-3.6.0}/charts/eodag-server/templates/service.yaml +0 -0
  69. {eodag-3.5.1 → eodag-3.6.0}/charts/eodag-server/templates/serviceaccount.yaml +0 -0
  70. {eodag-3.5.1 → eodag-3.6.0}/charts/eodag-server/values.yaml +0 -0
  71. {eodag-3.5.1 → eodag-3.6.0}/docker/run-stac-server.sh +0 -0
  72. {eodag-3.5.1 → eodag-3.6.0}/docker/stac-browser.dockerfile +0 -0
  73. {eodag-3.5.1 → eodag-3.6.0}/docker/stac-server.dockerfile +0 -0
  74. {eodag-3.5.1 → eodag-3.6.0}/docker-compose.yml +0 -0
  75. {eodag-3.5.1 → eodag-3.6.0}/docs/Makefile +0 -0
  76. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/custom.css +0 -0
  77. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/download_methods.png +0 -0
  78. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/eodag_advanced_calls_graph.svg +0 -0
  79. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/eodag_bycs.png +0 -0
  80. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/eodag_fetch_product_types.png +0 -0
  81. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/eodag_logo_160.png +0 -0
  82. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/eodag_logo_160r.png +0 -0
  83. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/eodag_main_calls_graph.svg +0 -0
  84. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/eodag_overview.png +0 -0
  85. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/eodag_stac_client.png +0 -0
  86. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/eodag_stac_server.png +0 -0
  87. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/favicon-32x32.png +0 -0
  88. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/params_mapping_extra.csv +0 -0
  89. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/params_mapping_offline_infos.json +0 -0
  90. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/params_mapping_opensearch.csv +0 -0
  91. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/progress_1.png +0 -0
  92. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/progress_1_none.png +0 -0
  93. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/progress_2.png +0 -0
  94. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/progress_2_none.png +0 -0
  95. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/stac_browser_example.png +0 -0
  96. {eodag-3.5.1 → eodag-3.6.0}/docs/_static/stac_browser_example_600.png +0 -0
  97. {eodag-3.5.1 → eodag-3.6.0}/docs/add_product_type.rst +0 -0
  98. {eodag-3.5.1 → eodag-3.6.0}/docs/add_provider.rst +0 -0
  99. {eodag-3.5.1 → eodag-3.6.0}/docs/api_reference/assets.rst +0 -0
  100. {eodag-3.5.1 → eodag-3.6.0}/docs/api_reference/call_graphs.rst +0 -0
  101. {eodag-3.5.1 → eodag-3.6.0}/docs/api_reference/eoproduct.rst +0 -0
  102. {eodag-3.5.1 → eodag-3.6.0}/docs/api_reference/exceptions.rst +0 -0
  103. {eodag-3.5.1 → eodag-3.6.0}/docs/api_reference/index.rst +0 -0
  104. {eodag-3.5.1 → eodag-3.6.0}/docs/api_reference/searchresult.rst +0 -0
  105. {eodag-3.5.1 → eodag-3.6.0}/docs/api_reference/types.rst +0 -0
  106. {eodag-3.5.1 → eodag-3.6.0}/docs/api_reference/utils.rst +0 -0
  107. {eodag-3.5.1 → eodag-3.6.0}/docs/breaking_changes.rst +0 -0
  108. {eodag-3.5.1 → eodag-3.6.0}/docs/changelog.rst +0 -0
  109. {eodag-3.5.1 → eodag-3.6.0}/docs/contribute.rst +0 -0
  110. {eodag-3.5.1 → eodag-3.6.0}/docs/drivers.rst +0 -0
  111. {eodag-3.5.1 → eodag-3.6.0}/docs/getting_started_guide/configure.rst +0 -0
  112. {eodag-3.5.1 → eodag-3.6.0}/docs/getting_started_guide/index.rst +0 -0
  113. {eodag-3.5.1 → eodag-3.6.0}/docs/getting_started_guide/install.rst +0 -0
  114. {eodag-3.5.1 → eodag-3.6.0}/docs/getting_started_guide/overview.rst +0 -0
  115. {eodag-3.5.1 → eodag-3.6.0}/docs/getting_started_guide/product_storage_status.rst +0 -0
  116. {eodag-3.5.1 → eodag-3.6.0}/docs/getting_started_guide/product_types.rst +0 -0
  117. {eodag-3.5.1 → eodag-3.6.0}/docs/getting_started_guide/providers.rst +0 -0
  118. {eodag-3.5.1 → eodag-3.6.0}/docs/getting_started_guide/register.rst +0 -0
  119. {eodag-3.5.1 → eodag-3.6.0}/docs/getting_started_guide/side_projects.rst +0 -0
  120. {eodag-3.5.1 → eodag-3.6.0}/docs/make.bat +0 -0
  121. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/api_user_guide/1_overview.ipynb +0 -0
  122. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/api_user_guide/2_providers_products_available.ipynb +0 -0
  123. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/api_user_guide/3_configuration.ipynb +0 -0
  124. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/api_user_guide/4_search.ipynb +0 -0
  125. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/api_user_guide/5_queryables.ipynb +0 -0
  126. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/api_user_guide/6_serialize_deserialize.ipynb +0 -0
  127. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/api_user_guide/7_crunch.ipynb +0 -0
  128. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/api_user_guide/8_download.ipynb +0 -0
  129. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/api_user_guide/9_post_process.ipynb +0 -0
  130. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/api_user_guide/data/crunch_search_results.geojson +0 -0
  131. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/api_user_guide/data/download_search_results.geojson +0 -0
  132. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/intro_notebooks.ipynb +0 -0
  133. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/auxdata/Gulf_of_Trieste_seamask_UTM33.cpg +0 -0
  134. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/auxdata/Gulf_of_Trieste_seamask_UTM33.dbf +0 -0
  135. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/auxdata/Gulf_of_Trieste_seamask_UTM33.prj +0 -0
  136. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/auxdata/Gulf_of_Trieste_seamask_UTM33.qix +0 -0
  137. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/auxdata/Gulf_of_Trieste_seamask_UTM33.qpj +0 -0
  138. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/auxdata/Gulf_of_Trieste_seamask_UTM33.shp +0 -0
  139. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/auxdata/Gulf_of_Trieste_seamask_UTM33.shx +0 -0
  140. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/auxdata/sentinel2_tiling_grid_centroids.zip +0 -0
  141. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/tuto_burnt_areas_snappy.ipynb +0 -0
  142. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/tuto_cds.ipynb +0 -0
  143. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/tuto_cop_dem.ipynb +0 -0
  144. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/tuto_ecmwf.ipynb +0 -0
  145. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/tuto_meteoblue.ipynb +0 -0
  146. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/tuto_search_location_tile.ipynb +0 -0
  147. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/tuto_ship_detection.ipynb +0 -0
  148. {eodag-3.5.1 → eodag-3.6.0}/docs/notebooks/tutos/tuto_wekeo.ipynb +0 -0
  149. {eodag-3.5.1 → eodag-3.6.0}/docs/params_mapping.rst +0 -0
  150. {eodag-3.5.1 → eodag-3.6.0}/docs/plugins.rst +0 -0
  151. {eodag-3.5.1 → eodag-3.6.0}/docs/plugins_reference/api.rst +0 -0
  152. {eodag-3.5.1 → eodag-3.6.0}/docs/plugins_reference/auth.rst +0 -0
  153. {eodag-3.5.1 → eodag-3.6.0}/docs/plugins_reference/crunch.rst +0 -0
  154. {eodag-3.5.1 → eodag-3.6.0}/docs/plugins_reference/download.rst +0 -0
  155. {eodag-3.5.1 → eodag-3.6.0}/docs/plugins_reference/search.rst +0 -0
  156. {eodag-3.5.1 → eodag-3.6.0}/eodag/__init__.py +0 -0
  157. {eodag-3.5.1 → eodag-3.6.0}/eodag/api/__init__.py +0 -0
  158. {eodag-3.5.1 → eodag-3.6.0}/eodag/api/product/_assets.py +0 -0
  159. {eodag-3.5.1 → eodag-3.6.0}/eodag/api/product/_product.py +0 -0
  160. {eodag-3.5.1 → eodag-3.6.0}/eodag/api/product/drivers/__init__.py +0 -0
  161. {eodag-3.5.1 → eodag-3.6.0}/eodag/api/product/drivers/base.py +0 -0
  162. {eodag-3.5.1 → eodag-3.6.0}/eodag/api/product/drivers/generic.py +0 -0
  163. {eodag-3.5.1 → eodag-3.6.0}/eodag/api/product/drivers/sentinel1.py +0 -0
  164. {eodag-3.5.1 → eodag-3.6.0}/eodag/api/product/drivers/sentinel2.py +0 -0
  165. {eodag-3.5.1 → eodag-3.6.0}/eodag/api/product/metadata_mapping.py +0 -0
  166. {eodag-3.5.1 → eodag-3.6.0}/eodag/crunch.py +0 -0
  167. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/__init__.py +0 -0
  168. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/apis/__init__.py +0 -0
  169. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/apis/base.py +0 -0
  170. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/apis/ecmwf.py +0 -0
  171. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/apis/usgs.py +0 -0
  172. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/authentication/__init__.py +0 -0
  173. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/authentication/aws_auth.py +0 -0
  174. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/authentication/base.py +0 -0
  175. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/authentication/generic.py +0 -0
  176. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/authentication/header.py +0 -0
  177. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/authentication/keycloak.py +0 -0
  178. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/authentication/oauth.py +0 -0
  179. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/authentication/openid_connect.py +0 -0
  180. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/authentication/qsauth.py +0 -0
  181. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/authentication/sas_auth.py +0 -0
  182. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/authentication/token.py +0 -0
  183. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/authentication/token_exchange.py +0 -0
  184. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/base.py +0 -0
  185. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/crunch/__init__.py +0 -0
  186. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/crunch/base.py +0 -0
  187. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/crunch/filter_date.py +0 -0
  188. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/crunch/filter_latest_intersect.py +0 -0
  189. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/crunch/filter_latest_tpl_name.py +0 -0
  190. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/crunch/filter_overlap.py +0 -0
  191. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/crunch/filter_property.py +0 -0
  192. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/download/__init__.py +0 -0
  193. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/download/aws.py +0 -0
  194. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/download/creodias_s3.py +0 -0
  195. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/download/http.py +0 -0
  196. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/download/s3rest.py +0 -0
  197. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/manager.py +0 -0
  198. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/search/__init__.py +0 -0
  199. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/search/base.py +0 -0
  200. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/search/cop_marine.py +0 -0
  201. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/search/creodias_s3.py +0 -0
  202. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/search/csw.py +0 -0
  203. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/search/data_request_search.py +0 -0
  204. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/search/stac_list_assets.py +0 -0
  205. {eodag-3.5.1 → eodag-3.6.0}/eodag/plugins/search/static_stac_search.py +0 -0
  206. {eodag-3.5.1 → eodag-3.6.0}/eodag/py.typed +0 -0
  207. {eodag-3.5.1 → eodag-3.6.0}/eodag/resources/locations_conf_template.yml +0 -0
  208. {eodag-3.5.1 → eodag-3.6.0}/eodag/resources/shp/ne_110m_admin_0_map_units.VERSION.txt +0 -0
  209. {eodag-3.5.1 → eodag-3.6.0}/eodag/resources/shp/ne_110m_admin_0_map_units.cpg +0 -0
  210. {eodag-3.5.1 → eodag-3.6.0}/eodag/resources/shp/ne_110m_admin_0_map_units.dbf +0 -0
  211. {eodag-3.5.1 → eodag-3.6.0}/eodag/resources/shp/ne_110m_admin_0_map_units.prj +0 -0
  212. {eodag-3.5.1 → eodag-3.6.0}/eodag/resources/shp/ne_110m_admin_0_map_units.shp +0 -0
  213. {eodag-3.5.1 → eodag-3.6.0}/eodag/resources/shp/ne_110m_admin_0_map_units.shx +0 -0
  214. {eodag-3.5.1 → eodag-3.6.0}/eodag/resources/stac.yml +0 -0
  215. {eodag-3.5.1 → eodag-3.6.0}/eodag/resources/stac_api.yml +0 -0
  216. {eodag-3.5.1 → eodag-3.6.0}/eodag/resources/stac_provider.yml +0 -0
  217. {eodag-3.5.1 → eodag-3.6.0}/eodag/resources/user_conf_template.yml +0 -0
  218. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/__init__.py +0 -0
  219. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/cache.py +0 -0
  220. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/config.py +0 -0
  221. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/constants.py +0 -0
  222. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/core.py +0 -0
  223. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/errors.py +0 -0
  224. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/server.wsgi +0 -0
  225. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/stac.py +0 -0
  226. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/templates/README +0 -0
  227. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/types/__init__.py +0 -0
  228. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/types/collections_search.py +0 -0
  229. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/types/eodag_search.py +0 -0
  230. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/types/queryables.py +0 -0
  231. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/types/stac_search.py +0 -0
  232. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/utils/__init__.py +0 -0
  233. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/utils/cql_evaluate.py +0 -0
  234. {eodag-3.5.1 → eodag-3.6.0}/eodag/rest/utils/rfc3339.py +0 -0
  235. {eodag-3.5.1 → eodag-3.6.0}/eodag/types/__init__.py +0 -0
  236. {eodag-3.5.1 → eodag-3.6.0}/eodag/types/bbox.py +0 -0
  237. {eodag-3.5.1 → eodag-3.6.0}/eodag/types/download_args.py +0 -0
  238. {eodag-3.5.1 → eodag-3.6.0}/eodag/types/queryables.py +0 -0
  239. {eodag-3.5.1 → eodag-3.6.0}/eodag/types/search_args.py +0 -0
  240. {eodag-3.5.1 → eodag-3.6.0}/eodag/types/whoosh.py +0 -0
  241. {eodag-3.5.1 → eodag-3.6.0}/eodag/utils/cache.py +0 -0
  242. {eodag-3.5.1 → eodag-3.6.0}/eodag/utils/env.py +0 -0
  243. {eodag-3.5.1 → eodag-3.6.0}/eodag/utils/exceptions.py +0 -0
  244. {eodag-3.5.1 → eodag-3.6.0}/eodag/utils/import_system.py +0 -0
  245. {eodag-3.5.1 → eodag-3.6.0}/eodag/utils/logging.py +0 -0
  246. {eodag-3.5.1 → eodag-3.6.0}/eodag/utils/notebook.py +0 -0
  247. {eodag-3.5.1 → eodag-3.6.0}/eodag/utils/repr.py +0 -0
  248. {eodag-3.5.1 → eodag-3.6.0}/eodag/utils/requests.py +0 -0
  249. {eodag-3.5.1 → eodag-3.6.0}/eodag/utils/rest.py +0 -0
  250. {eodag-3.5.1 → eodag-3.6.0}/eodag/utils/s3.py +0 -0
  251. {eodag-3.5.1 → eodag-3.6.0}/eodag/utils/stac_reader.py +0 -0
  252. {eodag-3.5.1 → eodag-3.6.0}/eodag.egg-info/dependency_links.txt +0 -0
  253. {eodag-3.5.1 → eodag-3.6.0}/eodag.egg-info/entry_points.txt +0 -0
  254. {eodag-3.5.1 → eodag-3.6.0}/eodag.egg-info/top_level.txt +0 -0
  255. {eodag-3.5.1 → eodag-3.6.0}/get_pypi_latest_version.sh +0 -0
  256. {eodag-3.5.1 → eodag-3.6.0}/pytest.ini +0 -0
  257. {eodag-3.5.1 → eodag-3.6.0}/readthedocs.yml +0 -0
  258. {eodag-3.5.1 → eodag-3.6.0}/requirements-dev.txt +0 -0
  259. {eodag-3.5.1 → eodag-3.6.0}/requirements-docs.txt +0 -0
  260. {eodag-3.5.1 → eodag-3.6.0}/requirements-tutorials.txt +0 -0
  261. {eodag-3.5.1 → eodag-3.6.0}/requirements.txt +0 -0
  262. {eodag-3.5.1 → eodag-3.6.0}/setup.py +0 -0
  263. {eodag-3.5.1 → eodag-3.6.0}/tox.ini +0 -0
  264. {eodag-3.5.1 → eodag-3.6.0}/utils/params_mapping_to_csv.py +0 -0
  265. {eodag-3.5.1 → eodag-3.6.0}/utils/product_types_information_to_csv.py +0 -0
@@ -3,6 +3,58 @@ Release history
3
3
  ===============
4
4
 
5
5
 
6
+ v3.6.0 (2025-07-01)
7
+ ===================
8
+
9
+ Bug Fixes
10
+ ---------
11
+
12
+ * **core**: Do not download again unextracted products (`#1717`_, `29642e8`_)
13
+
14
+ * **queryables**: Improve date parameter parsing (`#1702`_, `9563d4b`_)
15
+
16
+ Documentation
17
+ -------------
18
+
19
+ * Cli and stac support update (`#1707`_, `c50aae1`_)
20
+
21
+ * Import_stac_items documentation update (`#1709`_, `7a04158`_)
22
+
23
+ Features
24
+ --------
25
+
26
+ * **cli**: Commands chaining (`#1714`_, `754772b`_)
27
+
28
+ * **cli**: Download output directory (`#1716`_, `036b86b`_)
29
+
30
+ * **cli**: Download STAC items from their urls (`#1705`_, `5d598a9`_)
31
+
32
+ * **core**: Import stac items as SearchResult (`#1703`_, `1d49715`_)
33
+
34
+ * **providers**: Add new eurostat product types to dedl (`#1662`_, `b7192b1`_)
35
+
36
+ .. _#1662: https://github.com/CS-SI/eodag/pull/1662
37
+ .. _#1702: https://github.com/CS-SI/eodag/pull/1702
38
+ .. _#1703: https://github.com/CS-SI/eodag/pull/1703
39
+ .. _#1705: https://github.com/CS-SI/eodag/pull/1705
40
+ .. _#1706: https://github.com/CS-SI/eodag/pull/1706
41
+ .. _#1707: https://github.com/CS-SI/eodag/pull/1707
42
+ .. _#1709: https://github.com/CS-SI/eodag/pull/1709
43
+ .. _#1714: https://github.com/CS-SI/eodag/pull/1714
44
+ .. _#1716: https://github.com/CS-SI/eodag/pull/1716
45
+ .. _#1717: https://github.com/CS-SI/eodag/pull/1717
46
+ .. _036b86b: https://github.com/CS-SI/eodag/commit/036b86bbefeed905c9962a7a4bf7bca8258246fb
47
+ .. _1d49715: https://github.com/CS-SI/eodag/commit/1d4971560e9b789dfe96ca09b2fcd5d88cb4e30a
48
+ .. _29642e8: https://github.com/CS-SI/eodag/commit/29642e87614b44ec3b544732ef6496ae8bf73087
49
+ .. _5d598a9: https://github.com/CS-SI/eodag/commit/5d598a9934d36390e7b6f1ef2d746f9a9030198d
50
+ .. _754772b: https://github.com/CS-SI/eodag/commit/754772b9e71700fb752cb632dfb66ef13cd2c743
51
+ .. _7a04158: https://github.com/CS-SI/eodag/commit/7a041583695f71811baf56e5616415df60750814
52
+ .. _9563d4b: https://github.com/CS-SI/eodag/commit/9563d4bccaea5a87805fff77863d14cb4b422fb7
53
+ .. _b7192b1: https://github.com/CS-SI/eodag/commit/b7192b14840d27a3558f4dc5dff0b99ea6c0d833
54
+ .. _c50aae1: https://github.com/CS-SI/eodag/commit/c50aae12b344d81f66fc20a9a930b7718e0b12b7
55
+ .. _e1db471: https://github.com/CS-SI/eodag/commit/e1db47199d47c4988eaece7628005727dba2985f
56
+
57
+
6
58
  v3.5.1 (2025-06-23)
7
59
  ===================
8
60
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eodag
3
- Version: 3.5.1
3
+ Version: 3.6.0
4
4
  Summary: Earth Observation Data Access Gateway
5
5
  Home-page: https://github.com/CS-SI/eodag
6
6
  Author: CS GROUP - France
@@ -119,12 +119,13 @@ Requires-Dist: types-tqdm; extra == "stubs"
119
119
  Requires-Dist: types-urllib3; extra == "stubs"
120
120
  Provides-Extra: docs
121
121
  Requires-Dist: eodag[all,stubs]; extra == "docs"
122
+ Requires-Dist: nbsphinx; extra == "docs"
122
123
  Requires-Dist: sphinx; extra == "docs"
124
+ Requires-Dist: sphinx-autodoc-typehints; extra == "docs"
123
125
  Requires-Dist: sphinx-book-theme>=1.0.0; extra == "docs"
124
126
  Requires-Dist: sphinx-copybutton; extra == "docs"
125
127
  Requires-Dist: sphinx-tabs; extra == "docs"
126
- Requires-Dist: nbsphinx; extra == "docs"
127
- Requires-Dist: sphinx_autodoc_typehints; extra == "docs"
128
+ Requires-Dist: sphinxcontrib-programoutput; extra == "docs"
128
129
  Requires-Dist: sphinxemoji; extra == "docs"
129
130
  Dynamic: license-file
130
131
 
@@ -189,7 +190,7 @@ integrate new data providers. Three types of plugins compose the tool:
189
190
 
190
191
  * Authentication plugins, which are used to authenticate the user on the external services used (JSON Token, Basic Auth, OAUTH, ...).
191
192
 
192
- Since v2.0 EODAG can be run as `STAC client or server <https://eodag.readthedocs.io/en/latest/stac.html>`_.
193
+ EODAG can be run as STAC client or server <https://eodag.readthedocs.io/en/latest/stac.html>`_.
193
194
 
194
195
  Read `the documentation <https://eodag.readthedocs.io/en/latest/>`_ for more insights.
195
196
 
@@ -317,7 +318,7 @@ An eodag instance can be exposed through a STAC compliant REST api from the comm
317
318
 
318
319
  .. code-block:: bash
319
320
 
320
- docker run -p 5000:5000 --rm csspace/eodag-server:3.5.1
321
+ docker run -p 5000:5000 --rm csspace/eodag-server:3.6.0
321
322
 
322
323
  You can also browse over your STAC API server using `STAC Browser <https://github.com/radiantearth/stac-browser>`_.
323
324
  Simply run:
@@ -59,7 +59,7 @@ integrate new data providers. Three types of plugins compose the tool:
59
59
 
60
60
  * Authentication plugins, which are used to authenticate the user on the external services used (JSON Token, Basic Auth, OAUTH, ...).
61
61
 
62
- Since v2.0 EODAG can be run as `STAC client or server <https://eodag.readthedocs.io/en/latest/stac.html>`_.
62
+ EODAG can be run as STAC client or server <https://eodag.readthedocs.io/en/latest/stac.html>`_.
63
63
 
64
64
  Read `the documentation <https://eodag.readthedocs.io/en/latest/>`_ for more insights.
65
65
 
@@ -187,7 +187,7 @@ An eodag instance can be exposed through a STAC compliant REST api from the comm
187
187
 
188
188
  .. code-block:: bash
189
189
 
190
- docker run -p 5000:5000 --rm csspace/eodag-server:3.5.1
190
+ docker run -p 5000:5000 --rm csspace/eodag-server:3.6.0
191
191
 
192
192
  You can also browse over your STAC API server using `STAC Browser <https://github.com/radiantearth/stac-browser>`_.
193
193
  Simply run:
@@ -1,5 +1,5 @@
1
1
  apiVersion: v2
2
- appVersion: 3.5.1
2
+ appVersion: 3.6.0
3
3
  dependencies:
4
4
  - name: common
5
5
  repository: oci://registry-1.docker.io/bitnamicharts
@@ -15,4 +15,4 @@ name: eodag-server
15
15
  sources:
16
16
  - https://github.com/CS-SI/eodag
17
17
  type: application
18
- version: 3.5.1
18
+ version: 3.6.0
@@ -40,11 +40,16 @@ ERA5_PL,"ERA5 is the fifth generation ECMWF reanalysis for the global climate an
40
40
  ERA5_PL_MONTHLY,"ERA5 is the fifth generation ECMWF reanalysis for the global climate and weather for the past 8 decades. Data is available from 1940 onwards. ERA5 replaces the ERA-Interim reanalysis. Reanalysis combines model data with observations from across the world into a globally complete and consistent dataset using the laws of physics. This principle, called data assimilation, is based on the method used by numerical weather prediction centres, where every so many hours (12 hours at ECMWF) a previous forecast is combined with newly available observations in an optimal way to produce a new best estimate of the state of the atmosphere, called analysis, from which an updated, improved forecast is issued. Reanalysis works in the same way, but at reduced resolution to allow for the provision of a dataset spanning back several decades. Reanalysis does not have the constraint of issuing timely forecasts, so there is more time to collect observations, and when going further back in time, to allow for the ingestion of improved versions of the original observations, which all benefit the quality of the reanalysis product. ERA5 provides hourly estimates for a large number of atmospheric, ocean-wave and land-surface quantities. An uncertainty estimate is sampled by an underlying 10-member ensemble at three-hourly intervals. Ensemble mean and spread have been pre-computed for convenience. Such uncertainty estimates are closely related to the information content of the available observing system which has evolved considerably over time. They also indicate flow-dependent sensitive areas. To facilitate many climate applications, monthly-mean averages have been pre-calculated too, though monthly means are not available for the ensemble mean and spread. ERA5 is updated daily with a latency of about 5 days (monthly means are available around the 6th of each month). In case that serious flaws are detected in this early release (called ERA5T), this data could be different from the final release 2 to 3 months later. So far this has only been the case for the month September 2021, while it will also be the case for October, November and December 2021. For months prior to September 2021 the final release has always been equal to ERA5T, and the goal is to align the two again after December 2021. ERA5 is updated daily with a latency of about 5 days (monthly means are available around the 6th of each month). In case that serious flaws are detected in this early release (called ERA5T), this data could be different from the final release 2 to 3 months later. In case that this occurs users are notified. The data set presented here is a regridded subset of the full ERA5 data set on native resolution. It is online on spinning disk, which should ensure fast and easy access. It should satisfy the requirements for most common applications. Data has been regridded to a regular lat-lon grid of 0.25 degrees for the reanalysis and 0.5 degrees for the uncertainty estimate (0.5 and 1 degree respectively for ocean waves). There are four main sub sets: hourly and monthly products, both on pressure levels (upper air fields) and single levels (atmospheric, ocean-wave and land surface quantities). ",,ERA5,ERA5,,"Climate,ECMWF,Reanalysis,ERA5,CDS,Atmospheric,land,sea,monthly,pressure,levels",ATMOSPHERIC,other,ERA5 monthly averaged data on pressure levels from 1940 to present,1940-01-01T00:00:00Z,ERA5_PL_MONTHLY,,,available,,,,,,available,,,,,,,,,,,,,,,,,,available,
41
41
  ERA5_SL,"ERA5 is the fifth generation ECMWF reanalysis for the global climate and weather for the past 8 decades. Data is available from 1940 onwards. ERA5 replaces the ERA-Interim reanalysis. Reanalysis combines model data with observations from across the world into a globally complete and consistent dataset using the laws of physics. This principle, called data assimilation, is based on the method used by numerical weather prediction centres, where every so many hours (12 hours at ECMWF) a previous forecast is combined with newly available observations in an optimal way to produce a new best estimate of the state of the atmosphere, called analysis, from which an updated, improved forecast is issued. Reanalysis works in the same way, but at reduced resolution to allow for the provision of a dataset spanning back several decades. Reanalysis does not have the constraint of issuing timely forecasts, so there is more time to collect observations, and when going further back in time, to allow for the ingestion of improved versions of the original observations, which all benefit the quality of the reanalysis product. ERA5 provides hourly estimates for a large number of atmospheric, ocean-wave and land-surface quantities. An uncertainty estimate is sampled by an underlying 10-member ensemble at three-hourly intervals. Ensemble mean and spread have been pre-computed for convenience. Such uncertainty estimates are closely related to the information content of the available observing system which has evolved considerably over time. They also indicate flow-dependent sensitive areas. To facilitate many climate applications, monthly-mean averages have been pre-calculated too, though monthly means are not available for the ensemble mean and spread. ERA5 is updated daily with a latency of about 5 days. In case that serious flaws are detected in this early release (called ERA5T), this data could be different from the final release 2 to 3 months later. In case that this occurs users are notified. The data set presented here is a regridded subset of the full ERA5 data set on native resolution. It is online on spinning disk, which should ensure fast and easy access. It should satisfy the requirements for most common applications. Data has been regridded to a regular lat-lon grid of 0.25 degrees for the reanalysis and 0.5 degrees for the uncertainty estimate (0.5 and 1 degree respectively for ocean waves). There are four main sub sets: hourly and monthly products, both on pressure levels (upper air fields) and single levels (atmospheric,ocean-wave and land surface quantities). ",,ERA5,ERA5,,"ECMWF,Reanalysis,ERA5,CDS,Atmospheric,land,sea,hourly,single,levels",ATMOSPHERIC,other,ERA5 hourly data on single levels from 1940 to present,1940-01-01T09:00:00Z,ERA5_SL,,,available,,,,,,available,,,,,,,,,,,,,,,,,,available,
42
42
  ERA5_SL_MONTHLY,"ERA5 is the fifth generation ECMWF reanalysis for the global climate and weather for the past 8 decades. Data is available from 1940 onwards. ERA5 replaces the ERA-Interim reanalysis. Reanalysis combines model data with observations from across the world into a globally complete and consistent dataset using the laws of physics. This principle, called data assimilation, is based on the method used by numerical weather prediction centres, where every so many hours (12 hours at ECMWF) a previous forecast is combined with newly available observations in an optimal way to produce a new best estimate of the state of the atmosphere, called analysis, from which an updated, improved forecast is issued. Reanalysis works in the same way, but at reduced resolution to allow for the provision of a dataset spanning back several decades. Reanalysis does not have the constraint of issuing timely forecasts, so there is more time to collect observations, and when going further back in time, to allow for the ingestion of improved versions of the original observations, which all benefit the quality of the reanalysis product. ERA5 provides hourly estimates for a large number of atmospheric, ocean-wave and land-surface quantities. An uncertainty estimate is sampled by an underlying 10-member ensemble at three-hourly intervals. Ensemble mean and spread have been pre-computed for convenience. Such uncertainty estimates are closely related to the information content of the available observing system which has evolved considerably over time. They also indicate flow-dependent sensitive areas. To facilitate many climate applications, monthly-mean averages have been pre-calculated too, though monthly means are not available for the ensemble mean and spread. ERA5 is updated daily with a latency of about 5 days (monthly means are available around the 6th of each month). In case that serious flaws are detected in this early release (called ERA5T), this data could be different from the final release 2 to 3 months later. In case that this occurs users are notified. The data set presented here is a regridded subset of the full ERA5 data set on native resolution. It is online on spinning disk, which should ensure fast and easy access. It should satisfy the requirements for most common applications. Data has been regridded to a regular lat-lon grid of 0.25 degrees for the reanalysis and 0.5 degrees for the uncertainty estimate (0.5 and 1 degree respectively for ocean waves). There are four main sub sets: hourly and monthly products, both on pressure levels (upper air fields) and single levels (atmospheric, ocean-wave and land surface quantities). ",,ERA5,ERA5,,"Climate,ECMWF,Reanalysis,ERA5,CDS,Atmospheric,land,sea,monthly,single,levels",ATMOSPHERIC,other,ERA5 monthly averaged data on single levels from 1940 to present,1940-01-01T00:00:00Z,ERA5_SL_MONTHLY,,,available,,,,,,available,,,,,,,,,,,,,,,,,,available,
43
+ EUSTAT_AVAILABLE_BEDS_HOSPITALS_NUTS2,"Non-expenditure healthcare data provide information on institutions providing healthcare in countries, on resources used and on output produced in the framework of healthcare provision. \nData on healthcare form a major element of public health information as they describe the capacities available for different types of healthcare provision as well as potential 'bottlenecks' observed. The quantity and quality of healthcare services provided and the work sharing established between the different institutions are a subject of ongoing debate in all countries. Sustainability - continuously providing the necessary monetary and personal resources needed - and meeting the challenges of ageing societies are the primary perspectives used when analysing and using the data. \nThe resource-related data refer to both human and technical resources, i.e. they relate to: \n- Health care staff: 'manpower' active in the health care sector (doctors, dentists, nurses, etc.);\n- Heath workforce migration: migration movements of doctors and nurses;\n- Healthcare facilities: technical capacity dimensions (hospital beds, beds in nursing and residential care facilities, etc.).\nThe output-related data ('activities') refer to contacts between patients and the healthcare system, and to the treatment thereby received. Data are available for hospital discharges of in-patients and day cases, average length of stay of in-patients, consultations with medical professionals, and medical procedures performed in hospitals.\nAnnual national and regional data are provided in absolute numbers, percentages, and in population-standardised rates (per 100 000 inhabitants).\nWherever applicable, the definitions and classifications of the System of Health Accounts (SHA) are followed, e.g. International Classification for Health Accounts - Providers of health care (ICHA-HP). For hospital discharges, the International Shortlist for Hospital Morbidity Tabulation (ISHMT) is used. Surgical procedures are classified according to a shortlist mapped to ICD-9-CM.\nThese healthcare data are largely based on administrative data sources in the countries. Therefore, they reflect the country-specific way of organising healthcare and may not always be completely comparable. ",,Eurostat,Eurostat,,"Eurostat, Health care, Hospital, Bed, Health",,proprietary,Available beds in hospitals by NUTS 2 region,2013-01-01T00:00:00Z,EUSTAT_AVAILABLE_BEDS_HOSPITALS_NUTS2,,,,,,,,,available,,,,,,,,,,,,,,,,,,,
44
+ EUSTAT_BATHING_SITES_WATER_QUALITY,"The indicator measures the number and proportion of coastal and inland bathing sites with excellent water quality. The indicator assessment is based on microbiological parameters (intestinal enterococci and Escherichia coli). The new Bathing Water Directive requires Member States to identify and assess the quality of all inland and marine bathing waters and to classify these waters as ‘poor’, ‘sufficient’, ‘good’ or ‘excellent’. ",,Eurostat,Eurostat,,"Eurostat, Bath, Water, Water quality",,proprietary,Bathing sites with excellent water quality by location,2011-01-01T00:00:00Z,EUSTAT_BATHING_SITES_WATER_QUALITY,,,,,,,,,available,,,,,,,,,,,,,,,,,,,
43
45
  EUSTAT_GREENHOUSE_GAS_EMISSION_AGRICULTURE,"This indicator tracks trends in greenhouse gas (GHG) emissions by agriculture, estimated and reported under the United Nations Framework Convention on Climate Change (UNFCCC), the Kyoto Protocol and the Decision 525/2013/EC. The annual data collection covers in principle all Member States of the European Union as well as some other European countries ",,Eurostat,Eurostat,,"Eurostat, Agriculture, Greenhouse gas, CO2, Emission, Air pollutants",,proprietary,Eurostat - Greenhouse gas emissions from agriculture,2011-01-01T00:00:00Z,EUSTAT_GREENHOUSE_GAS_EMISSION_AGRICULTURE,,,,,,,,,available,,,,,,,,,,,,,,,,,,,
44
46
  EUSTAT_POP_AGE_GROUP_SEX_NUTS3,"Each year Eurostat collects demographic data at regional level from 37 countries as part of the Unified Demography (Unidemo) project. UNIDEMO is Eurostat's main annual demographic data collection and aims to gather information on demography and migration. This dataset contains information about the population by sex, age and region of residence (NUTS 3 level). ",,Eurostat,Eurostat,,"Eurostat, Population, Age, Sex, NUTS 3, Unidemo, Demographic",,proprietary,"Population on 1 January by age, sex and NUTS 3 region",2014-01-01T00:00:00Z,EUSTAT_POP_AGE_GROUP_SEX_NUTS3,,,,,,,,,available,,,,,,,,,,,,,,,,,,,
45
47
  EUSTAT_POP_AGE_SEX_NUTS2,"Each year Eurostat collects demographic data at regional level from 37 countries as part of the Unified Demography (Unidemo) project. UNIDEMO is Eurostat's main annual demographic data collection and aims to gather information on demography and migration. This dataset contains information about the population by sex, age and region of residence (NUTS 2 level). ",,Eurostat,Eurostat,,"Eurostat, Population, Age, Sex, NUTS 2, Unidemo, Demographic",,proprietary,"Population on 1 January by age, sex and NUTS 2 region",1990-01-01T00:00:00Z,EUSTAT_POP_AGE_SEX_NUTS2,,,,,,,,,available,,,,,,,,,,,,,,,,,,,
46
48
  EUSTAT_POP_CHANGE_DEMO_BALANCE_CRUDE_RATES_NUTS3,Each year Eurostat collects demographic data at regional level from 37 countries as part of the Unified Demography (Unidemo) project. UNIDEMO is Eurostat's main annual demographic data collection and aims to gather information on demography and migration. This dataset contains information about demographic balance and crude rates of a population at regional level (NUTS 3 level). ,,Eurostat,Eurostat,,"Eurostat, Population, Age, Sex, NUTS 3, Unidemo, Demographic",,proprietary,Population change - Demographic balance and crude rates at regional level (NUTS 3),2000-01-01T00:00:00Z,EUSTAT_POP_CHANGE_DEMO_BALANCE_CRUDE_RATES_NUTS3,,,,,,,,,available,,,,,,,,,,,,,,,,,,,
49
+ EUSTAT_POP_DENSITY_NUTS3,"Eurostat’s annual data collections on population. Member States send population data to Eurostat data as on of 31 December for the reference year under Regulation 1260/2013 on European demographic statistics. The data are conventionally published by Eurostat as population on 1 January of the following year (reference year + 1). \nThe aim is to collect annual mandatory and voluntary demographic data from the national statistical institutes. Mandatory data are those defined by the legislation listed under ‘6.1. Institutional mandate — legal acts and other agreements’. \nThe completeness of the demographic data collected on a voluntary basis depends on the availability and completeness of information provided by the national statistical institutes.\nFor more information on mandatory/voluntary data collection, see 6.1. Institutional mandate — legal acts and other agreements. \nThe following statistics are available. \nPopulation on 1 January by sex and by:\n- single age and educational attainment / marital status / broad group of citizenship / broad group of country of birth;\n - five-year age group and citizenship / country of birth;\n - citizenship and broad group of country of birth / country of birth and broad group of citizenship;\n - broad age group and NUTS 3 (under regional data population folder);\n - single age and NUTS 2 (under regional data population folder);\n - five-year age group and NUTS 2 / NUTS 3 (under regional data population folder).\nPopulation structure statistics: median age of population, proportion of population by various age groups, old age dependency ratio. ",,Eurostat,Eurostat,,"Eurostat, Population, Density, NUTS 3",,proprietary,Population density by NUTS 3 region,1990-01-01T00:00:00Z,EUSTAT_POP_DENSITY_NUTS3,,,,,,,,,available,,,,,,,,,,,,,,,,,,,
47
50
  EUSTAT_SHARE_ENERGY_FROM_RENEWABLE,"This dataset covers the indicator for monitoring progress towards renewable energy targets of the Europe 2020 strategy implemented by Directive 2009/28/EC on the promotion of the use of energy from renewable sources. The annual data collection covers in principle all Member States of the European Union. Time series starts in the year 2004. Due to the change of legal basis, a break in series occurs between 2020 and 2021. The calculation is based on data collected in the framework of Regulation (EC) No 1099/2008 on energy statistics and complemented by specific supplementary data transmitted by national administrations to Eurostat. In some countries the statistical systems are not yet fully developed to meet all requirements of Directive 2009/28/EC, in particular with respect to ambient heat captured from the environment by heat pumps renewable cooling or sustainability of solid and gaseous biofuels. This is indicator is a Sustainable Development Goal (SDG). It has been chosen for the assessment of the progress towards the objectives and targets of the EU Sustainable Development Strategy. The data collection covers the full spectrum of the Member States of the European Union.The share of energy from renewable sources is calculated for four indicators: Transport (RES-T), Heating and Cooling (RES-H&C), Electricity (RES-E), Overall RES share (RES) ",,Eurostat,Eurostat,,"Eurostat, Energy, Renewable, Transport, Heating, Cooling, Electricity",,proprietary,Share of energy from renewable sources,2004-01-01T00:00:00Z,EUSTAT_SHARE_ENERGY_FROM_RENEWABLE,,,,,,,,,available,,,,,,,,,,,,,,,,,,,
51
+ EUSTAT_SOIL_SEALING_INDEX,"The indicator estimates the increase in sealed soil surfaces with impervious materials due to urban development and construction (e.g. buildings, constructions and laying of completely or partially impermeable artificial material, such as asphalt, metal, glass, plastic or concrete). This provides an indication of the rate of soil sealing, when areas change land use towards artificial and urban land use. The indicator builds on data from the imperviousness High Resolution Layer (a product of the Copernicus Land Monitoring Service). The indicator is presented in the following units: Index 2006=100 % of total surface total sealed surface in km2. ",,Eurostat,Eurostat,,"Eurostat, soil, soil sealing, SDG, EU Sustainable Development Goals",,proprietary,Soil sealing index,2006-01-01T00:00:00Z,EUSTAT_SOIL_SEALING_INDEX,,,,,,,,,available,,,,,,,,,,,,,,,,,,,
52
+ EUSTAT_SURFACE_TERRESTRIAL_PROTECTED_AREAS,The indicator measures the surface of terrestrial protected areas. The indicator comprises nationally designated protected areas and Natura 2000 sites. A nationally designated area is an area protected by national legislation. The Natura 2000 network comprises both marine and terrestrial protected areas designated under the EU Habitats and Birds Directives with the goal to maintain or restore a favourable conservation status for habitat types and species of EU interest. ,,Eurostat,Eurostat,,"Eurostat, CO2, terrestrial, protected areas",,proprietary,Surface of the terrestrial protected areas,2013-01-01T00:00:00Z,EUSTAT_SURFACE_TERRESTRIAL_PROTECTED_AREAS,,,,,,,,,available,,,,,,,,,,,,,,,,,,,
48
53
  FIRE_HISTORICAL,"This data set provides complete historical reconstruction of meteorological conditions favourable to the start, spread and sustainability of fires. The fire danger metrics provided are part of a vast dataset produced by the Copernicus Emergency Management Service for the European Forest Fire Information System (EFFIS). The European Forest Fire Information System incorporates the fire danger indices for three different models developed in Canada, United States and Australia. In this dataset the fire danger indices are calculated using weather forecast from historical simulations provided by ECMWF ERA5 reanalysis. ERA5 by combining model data and a vast set of quality controlled observations provides a globally complete and consistent data-set and is regarded as a good proxy for observed atmospheric conditions. The selected data records in this data set are regularly extended with time as ERA5 forcing data become available. This dataset is produced by ECMWF in its role of the computational centre for fire danger forecast of the CEMS, on behalf of the Joint Research Centre which is the managing entity of the service. Variables in the dataset/application are: Build-up index, Burning index, Danger rating, Drought code, Duff moisture code, Energy release component, Fine fuel moisture code, Fire daily severity index, Fire danger index, Fire weather index, Ignition component, Initial spread index, Keetch-Byram drought index, Spread component ",,CEMS,CEMS,,"ECMWF,EFFIS,fire,historical,ERA5,european,sustainability,CEMS,system",ATMOSPHERIC,other,Fire danger indices historical data from the Copernicus Emergency Management Service,1940-03-01T00:00:00Z,FIRE_HISTORICAL,,,,,available,,,,available,,,,,,,,,,,,,,,,,,available,
49
54
  FIRE_SEASONAL,"This dataset offers modeled daily fire danger time series, driven by seasonal weather forecasts. It provides long-range predictions of meteorological conditions conducive to the initiation, spread, and persistence of fires. The fire danger metrics included in this dataset are part of an extensive dataset produced by the Copernicus Emergency Management Service (CEMS) for the European Forest Fire Information System (EFFIS) and the Global Wildfire Information System (GWIS). EFFIS and GWIS are used for monitoring and forecasting fire danger at both European and global scales. The dataset incorporates fire danger indices from the U.S. Forest Service National Fire-Danger Rating System (NFDRS), the Canadian Forest Service Fire Weather Index Rating System (FWI), and the Australian McArthur (Mark 5) rating systems. This dataset was generated by driving the Global ECMWF Fire Forecast (GEFF) model with seasonal weather ensemble forecasts from the European Centre for Medium-Range Weather Forecasts (ECMWF) System 5 (SEAS5) prediction system.These forecasts initially consist of 25 ensemble members until December 2016, referred to as re-forecasts. After that period, they consist of seasonal forecasts with 51 members. It is important to note that the re-forecast dataset was initialized using ERA-Interim analysis data, while forecast simulations from 2016 onward are initialized using ECMWF operational analysis. Therefore, it is suggested that the period 1981-2016 be used as a reference period, while the period 2017-to present as a real time forecast. For both the re-forecast (1981-2016) and forecast periods (2017-present), the temporal resolution is daily forecasts at 12:00 local time, available once a month, with a prediction horizon of 216 days (equivalent to 7 months). The data records in this dataset will be extended over time as seasonal forcing data becomes available. Once the SEAS5 operation ceases, the dataset will be updated with the next ECMWF seasonal system (SEAS6). It is essential to note that this is not a real-time service, as real-time forecasts are accessible through the EFFIS web services. These seasonal forecasts can be used to assess the performance of the forecasting system or to develop tools for statistically correcting forecast errors. ECMWF produces this dataset as the computational center for fire danger forecasting within the Copernicus Emergency Management Service (CEMS) on behalf of the Joint Research Centre, which serves as the managing entity for this service. ",,CEMS,CEMS,,"ECMWF,CEMS,EFFIS,GWIS,fire,danger,seasonal,GEFF",,other,Seasonal forecast of fire danger indices from the Copernicus Emergency Management Service,1981-02-01T00:00:00Z,FIRE_SEASONAL,,,,,available,,,,,,,,,,,,,,,,,,,,,,,
50
55
  GLACIERS_DIST_RANDOLPH,"A glacier is defined as a perennial mass of ice, and possibly firn and snow, originating on the land surface from the recrystallization of snow or other forms of solid precipitation and showing evidence of past or present flow. There are several types of glaciers such as glacierets, mountain glaciers, valley glaciers and ice fields, as well as ice caps. Some glacier tongues reach into lakes or the sea, and can develop floating ice tongues or ice shelves. Glacier changes are recognized as independent and high-confidence natural indicators of climate change. Past, current and future glacier changes affect global sea level, the regional water cycle and local hazards.\nThis dataset is a snapshot of global glacier outlines compiled from\nmaps, aerial photographs and satellite images mostly acquired in the period 2000-2010. ",,,INSITU,,"ECMWF,WGMS,INSITU,CDS,C3S,glacier,randolph,distribution,inventory",ATMOSPHERIC,other,Glaciers distribution data from the Randolph Glacier Inventory for year 2000,2000-01-01T00:00:00Z,GLACIERS_DIST_RANDOLPH,,,available,,,,,,available,,,,,,,,,,,,,,,,,,available,
@@ -76,9 +76,11 @@ Misc
76
76
  EODataAccessGateway.guess_product_type
77
77
  EODataAccessGateway.list_queryables
78
78
  EODataAccessGateway.available_sortables
79
+ EODataAccessGateway.import_stac_items
79
80
 
80
81
  .. autoclass:: eodag.api.core.EODataAccessGateway
81
82
  :members: add_provider, set_preferred_provider, get_preferred_provider, update_providers_config, list_product_types,
82
83
  available_providers, search, search_all, search_iter_page, crunch, download, download_all, serialize,
83
84
  deserialize, deserialize_and_register, load_stac_items, group_by_extent, guess_product_type, get_cruncher,
84
- update_product_types_list, fetch_product_types_list, discover_product_types, list_queryables, available_sortables
85
+ update_product_types_list, fetch_product_types_list, discover_product_types, list_queryables,
86
+ available_sortables, import_stac_items
@@ -30,3 +30,4 @@ or run locally after being downloaded (see how to :ref:`install_notebooks`).
30
30
  notebooks/api_user_guide/7_crunch.ipynb
31
31
  notebooks/api_user_guide/8_download.ipynb
32
32
  notebooks/api_user_guide/9_post_process.ipynb
33
+ notebooks/tutos/tuto_stac_client.ipynb
@@ -9,52 +9,11 @@ Then you can start playing with it:
9
9
 
10
10
  * Run ``eodag --help`` to display all the available options and commands:
11
11
 
12
- .. code-block:: console
13
-
14
- Usage: eodag [OPTIONS] COMMAND [ARGS]...
15
-
16
- Earth Observation Data Access Gateway: work on EO products from any
17
- provider
18
-
19
- Options:
20
- -v, --verbose Control the verbosity of the logs. For maximum verbosity,
21
- type -vvv
22
- --help Show this message and exit.
12
+ .. command-output:: eodag --help
23
13
 
24
- Commands:
25
- deploy-wsgi-app Configure the settings of the HTTP web app (the...
26
- discover Fetch providers to discover product types
27
- download Download a list of products from a serialized search...
28
- list List supported product types
29
- search Search satellite images by their product types,...
30
- serve-rest Start eodag HTTP server
31
- version Print eodag version and exit
14
+ * Each command has its own help, see for instance the help of the ``list`` command with ``eodag list --help``.
32
15
 
33
- * Each command has its own help, see for instance the help of the ``list`` command with ``eodag list --help``:
34
-
35
- .. code-block:: console
36
-
37
- Usage: eodag list [OPTIONS]
38
-
39
- List supported product types
40
-
41
- Options:
42
- -p, --provider TEXT List product types supported by this
43
- provider
44
- -i, --instrument TEXT List product types originating from this
45
- instrument
46
- -P, --platform TEXT List product types originating from this
47
- platform
48
- -t, --platformSerialIdentifier TEXT
49
- List product types originating from the
50
- satellite identified by this keyword
51
- -L, --processingLevel TEXT List product types of processing level
52
- -S, --sensorType TEXT List product types originating from this
53
- type of sensor
54
- --no-fetch Do not fetch providers for new product types
55
- --help Show this message and exit.
56
-
57
- * By default the command line interface of eodag is set to the minimum verbosity level. You can print more
16
+ * By default the command line interface of eodag is set to the minimum **verbosity level**. You can print more
58
17
  log messages by adding ``-v`` to eodag master command. The more ``v`` given (up to 3), the more verbose the tool is.
59
18
  This feature comes in handy when you want to inspect an error or an unexpected behaviour. 4 different verbosity levels
60
19
  are offered to you:
@@ -66,6 +25,11 @@ Then you can start playing with it:
66
25
  eodag -vv list
67
26
  eodag -vvv list
68
27
 
28
+ Search
29
+ ------
30
+
31
+ .. command-output:: eodag search --help
32
+
69
33
  * To search for products and crunch the results of the search:
70
34
 
71
35
  .. code-block:: console
@@ -105,17 +69,19 @@ string search sent to the provider. For instance, if you want to add foo=1 and b
105
69
  --cruncher-args FilterOverlap minimum_overlap 10 \
106
70
  --query "foo=1&bar=2"
107
71
 
108
- * If the product type is not known, it can also be guessed by EODAG during the search based on parameters in the search request. The possible parameters are:
72
+ * If the product type is not known, it can also be guessed by EODAG during the search based on parameters in the search
73
+ request. The possible parameters are:
109
74
 
110
- * `instrument` (e.g. MSI)
111
- * `platform` (e.g. SENTINEL2)
112
- * `platformSerialIdentifier` (e.g. S2A)
113
- * `processingLevel` (e.g. L1)
114
- * `sensorType` (e.g. OPTICAL)
115
- * `keywords` (e.g. SENTINEL2 L1C SAFE), which is case insensitive and ignores `-` or `_` characters
75
+ - `instrument` (e.g. MSI)
76
+ - `platform` (e.g. SENTINEL2)
77
+ - `platformSerialIdentifier` (e.g. S2A)
78
+ - `processingLevel` (e.g. L1)
79
+ - `sensorType` (e.g. OPTICAL)
80
+ - `keywords` (e.g. SENTINEL2 L1C SAFE), which is case insensitive and ignores `-` or `_` characters
116
81
 
117
- For example, the following search request will first search for a product type for platform SENTINEL2 and processingLevel L1
118
- (there are several product types matching these criteria, e.g., `S2_MSI_L1C`) and then use this product type to execute the actual search.
82
+ For example, the following search request will first search for a product type for platform SENTINEL2 and
83
+ processingLevel L1 (there are several product types matching these criteria, e.g., `S2_MSI_L1C`) and then use this
84
+ product type to execute the actual search.
119
85
 
120
86
  .. code-block:: console
121
87
 
@@ -125,12 +91,34 @@ For example, the following search request will first search for a product type f
125
91
  --box 1 43 2 44 \
126
92
  --start 2021-03-01 --end 2021-03-31
127
93
 
94
+ Download
95
+ --------
96
+
97
+ .. command-output:: eodag download --help
98
+
128
99
  * To download the result of a previous call to ``search``:
129
100
 
130
101
  .. code-block:: console
131
102
 
132
103
  eodag download --conf my_conf.yml --search-results my_search.geojson
133
104
 
105
+ * To download STAC items from their URL or path:
106
+
107
+ .. code-block:: console
108
+
109
+ eodag download --stac-item https://foo/collections/bar/items/item-1-id --stac-item /path/to/item2.json
110
+
111
+ * Using commands chaining, ``download`` can also directly be executed after a ``search`` in a single command:
112
+
113
+ .. code-block:: console
114
+
115
+ eodag search --productType S2_MSI_L1C --bbox 1 43 2 44 --start 2025-03-01 download
116
+
117
+ Product Types
118
+ -------------
119
+
120
+ .. command-output:: eodag list --help
121
+
134
122
  * To list all available product types and supported providers:
135
123
 
136
124
  .. code-block:: console
@@ -153,6 +141,10 @@ For example, the following search request will first search for a product type f
153
141
  * EODAG can fetch providers (all or only a given one) to discover available product types, using the following command.
154
142
  It will store result in a JSON file (defaults to `ext_product_types.json`):
155
143
 
144
+ .. command-output:: eodag discover --help
145
+
146
+ Examples:
147
+
156
148
  .. code-block:: console
157
149
 
158
150
  eodag discover
@@ -164,3 +156,22 @@ This file can then be used in EODAG using the environment variable ``EODAG_EXT_P
164
156
  Please note that if you did not customize EODAG with new providers settings, this command should not be useful.
165
157
  For more information on the product types discovery mechanism, please see
166
158
  `Python API User Guide / Providers and products / Product types discovery <notebooks/api_user_guide/2_providers_products_available.html#Product-types-discovery>`_.
159
+
160
+ Server mode
161
+ -----------
162
+
163
+ EODAG has a STAC compliant REST API. It can serve configured providers data through
164
+ this STAC API.
165
+
166
+ .. command-output:: eodag serve-rest --help
167
+
168
+ And for advanced configuration:
169
+
170
+ .. command-output:: eodag deploy-wsgi-app --help
171
+
172
+ See server mode usage examples in `STAC REST API Server <stac_rest.rst>`_.
173
+
174
+ .. toctree::
175
+ :maxdepth: 2
176
+
177
+ stac_rest
@@ -46,6 +46,7 @@ extensions = [
46
46
  "sphinx_copybutton",
47
47
  "sphinx_tabs.tabs",
48
48
  "sphinx_autodoc_typehints",
49
+ "sphinxcontrib.programoutput",
49
50
  "sphinxemoji.sphinxemoji",
50
51
  ]
51
52
 
@@ -120,9 +120,8 @@ Site contents
120
120
  getting_started_guide/index
121
121
  api_user_guide
122
122
  api_reference/index
123
- breaking_changes
124
123
  cli_user_guide
125
- stac
124
+ breaking_changes
126
125
  tutos
127
126
 
128
127
  .. toctree::
@@ -5,7 +5,7 @@
5
5
  "id": "weird-cleveland",
6
6
  "metadata": {},
7
7
  "source": [
8
- "# EODAG as STAC client"
8
+ "# STAC client"
9
9
  ]
10
10
  },
11
11
  {
@@ -13,7 +13,7 @@
13
13
  "id": "reverse-sailing",
14
14
  "metadata": {},
15
15
  "source": [
16
- "## STAC API\n",
16
+ "## STAC API client\n",
17
17
  "EODAG can perform an item search over a STAC compliant API. Found STAC items are returned as [EOProduct](../../api_reference/eoproduct.rst#eodag.api.product._product.EOProduct) objects with STAC metadata mapped to OGC OpenSearch Extension for Earth Observation.\n",
18
18
  "\n",
19
19
  "EODAG comes with already configured providers, but you can also add new ones dynamically."
@@ -22973,7 +22973,7 @@
22973
22973
  "id": "offshore-stereo",
22974
22974
  "metadata": {},
22975
22975
  "source": [
22976
- "## STAC Static catalog"
22976
+ "## STAC Static catalog client"
22977
22977
  ]
22978
22978
  },
22979
22979
  {
@@ -1,43 +1,21 @@
1
1
  .. _stac_rest:
2
2
 
3
- STAC REST API
4
- =============
3
+ STAC REST API Server
4
+ ====================
5
5
 
6
6
  .. image:: _static/eodag_stac_server.png
7
7
  :width: 800
8
8
  :alt: EODAG as STAC server
9
9
  :class: no-scaled-link
10
10
 
11
- EODAG has a STAC compliant REST API. It can serve configured providers data through
12
- this STAC API. To run the server, do:
11
+ EODAG has a STAC compliant REST API available through the CLI. It can serve configured
12
+ providers data through this STAC API
13
+ (See `CLI USer Guide / Server mode <cli_user_guide.rst#server-mode>`_). To run the server, do:
13
14
 
14
15
  .. code-block:: console
15
16
 
16
17
  eodag serve-rest
17
18
 
18
- Below is the content of the help message of this command (`eodag serve-rest --help`):
19
-
20
- .. code-block:: console
21
-
22
- Usage: eodag serve-rest [OPTIONS]
23
-
24
- Start eodag HTTP server
25
-
26
- Set EODAG_CORS_ALLOWED_ORIGINS environment variable to configure Cross-
27
- Origin Resource Sharing allowed origins as comma-separated URLs (e.g.
28
- 'http://somewhere,htttp://somewhere.else').
29
-
30
- Options:
31
- -f, --config PATH File path to the user configuration file with its
32
- credentials, default is ~/.config/eodag/eodag.yml
33
- -l, --locs PATH File path to the location shapefiles configuration file
34
- -d, --daemon run in daemon mode
35
- -w, --world run uvicorn using IPv4 0.0.0.0 (all network interfaces),
36
- otherwise bind to 127.0.0.1 (localhost).
37
- -p, --port INTEGER The port on which to listen [default: 5000]
38
- --debug Run in debug mode (for development purpose)
39
- --help Show this message and exit.
40
-
41
19
  Searching
42
20
  ---------
43
21
 
@@ -115,7 +93,7 @@ available on `https://hub.docker.com/r/csspace/eodag-server <https://hub.docker.
115
93
 
116
94
  .. code-block:: bash
117
95
 
118
- $ docker run -p 5000:5000 --rm csspace/eodag-server:3.5.1
96
+ $ docker run -p 5000:5000 --rm csspace/eodag-server:3.6.0
119
97
 
120
98
  Example
121
99
  -------
@@ -26,6 +26,7 @@ or run locally after being downloaded (see how to :ref:`install_notebooks`).
26
26
  of each tutorial.
27
27
 
28
28
  .. toctree::
29
+ :maxdepth: 2
29
30
 
30
31
  notebooks/tutos/tuto_search_location_tile.ipynb
31
32
  notebooks/tutos/tuto_cop_dem.ipynb
@@ -69,6 +69,7 @@ from eodag.utils import (
69
69
  DEFAULT_MAX_ITEMS_PER_PAGE,
70
70
  DEFAULT_PAGE,
71
71
  GENERIC_PRODUCT_TYPE,
72
+ GENERIC_STAC_PROVIDER,
72
73
  HTTP_REQ_TIMEOUT,
73
74
  MockResponse,
74
75
  _deprecated,
@@ -2476,3 +2477,31 @@ class EODataAccessGateway:
2476
2477
  )
2477
2478
  # Remove the ID since this is equal to productType.
2478
2479
  plugin.config.product_type_config.pop("ID", None)
2480
+
2481
+ def import_stac_items(self, items_urls: list[str]) -> SearchResult:
2482
+ """Import STAC items from a list of URLs and convert them to SearchResult.
2483
+
2484
+ - Origin provider and download links will be set if item comes from an EODAG
2485
+ server.
2486
+ - If item comes from a known EODAG provider, result will be registered to it,
2487
+ ready to download and its metadata normalized.
2488
+ - If item comes from an unknown provider, a generic STAC provider will be used.
2489
+
2490
+ :param items_urls: A list of STAC items URLs to import
2491
+ :returns: A SearchResult containing the imported STAC items
2492
+ """
2493
+ json_items = []
2494
+ for item_url in items_urls:
2495
+ json_items.extend(fetch_stac_items(item_url))
2496
+
2497
+ # add a generic STAC provider that might be needed to handle the items
2498
+ self.add_provider(GENERIC_STAC_PROVIDER)
2499
+
2500
+ results = SearchResult([])
2501
+ for json_item in json_items:
2502
+ if search_result := SearchResult._from_stac_item(
2503
+ json_item, self._plugins_manager
2504
+ ):
2505
+ results.extend(search_result)
2506
+
2507
+ return results
@@ -0,0 +1,62 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright 2018, CS GROUP - France, https://www.csgroup.eu/
3
+ #
4
+ # This file is part of EODAG project
5
+ # https://www.github.com/CS-SI/EODAG
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #
19
+ """EODAG product package"""
20
+
21
+ from typing import TYPE_CHECKING, Any, Optional
22
+
23
+ if TYPE_CHECKING:
24
+ from eodag.plugins.manager import PluginManager
25
+
26
+ try:
27
+ # import from eodag-cube if installed
28
+ from eodag_cube.api.product import ( # pyright: ignore[reportMissingImports]
29
+ Asset,
30
+ AssetsDict,
31
+ EOProduct,
32
+ )
33
+ except ImportError:
34
+ from ._assets import Asset, AssetsDict # type: ignore[assignment]
35
+ from ._product import EOProduct # type: ignore[assignment]
36
+
37
+ # exportable content
38
+ __all__ = ["Asset", "AssetsDict", "EOProduct"]
39
+
40
+
41
+ def unregistered_product_from_item(
42
+ feature: dict[str, Any], provider: str, plugins_manager: "PluginManager"
43
+ ) -> Optional[EOProduct]:
44
+ """Create an EOProduct from a STAC item, map its metadata, but without registering its plugins.
45
+
46
+ :param feature: The STAC item to convert into an EOProduct.
47
+ :param provider: The associated provider from which configuration should be used for mapping.
48
+ :param plugins_manager: The plugins manager instance to use for retrieving search plugins.
49
+ :returns: An EOProduct instance if the item can be normalized, otherwise None.
50
+ """
51
+ for search_plugin in plugins_manager.get_search_plugins(provider=provider):
52
+ if hasattr(search_plugin, "normalize_results"):
53
+ products = search_plugin.normalize_results([feature])
54
+ if len(products) > 0:
55
+ # properties cleanup
56
+ for prop in ("start_datetime", "end_datetime"):
57
+ products[0].properties.pop(prop, None)
58
+ # set product type if not already set
59
+ if products[0].product_type is None:
60
+ products[0].product_type = products[0].properties.get("productType")
61
+ return products[0]
62
+ return None