Skip to content

Harvester / Simple URL / OGC API Processes support#9288

Draft
fxprunayre wants to merge 2 commits into
mainfrom
44-harvester-ogcapiprocess
Draft

Harvester / Simple URL / OGC API Processes support#9288
fxprunayre wants to merge 2 commits into
mainfrom
44-harvester-ogcapiprocess

Conversation

@fxprunayre

Copy link
Copy Markdown
Member

Convert an OGC API Process description into an ISO19115-3 record.

The goal is to be able to browse and search for processes in the catalogue.

image

eg. https://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/heat1advanced?f=json

Harvesting

Harvester configuration for testing:

image
{"@id":"335539320","@type":"simpleurl","owner":["1"],"ownerGroup":["4"],"ownerUser":["undefined"],"site":{"name":"OOGCAPIProcesses","uuid":"93f377b5-6e8e-45ed-bada-1d3fb3ed8bb8","account":{"use":false,"username":[],"password":[]},"url":"https://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/barplot-trend-results?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/check-names?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/clean-catchment-geometry?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/combine-eurostat-data?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/corine-stats-real-areas-europe?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/corine-stats-real-areas-finland?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/filter-clip-clean-extent?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/heat1?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/heat1advanced?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/heat2?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/heat2advanced?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/heat3?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/heat3advanced?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/heat4?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/heat4advanced?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/heat5?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/heat5advanced?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/hello-world?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/malta-groundwater?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/map-shapefile-points?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/map-trends-static?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/match-data?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/mean-by-group?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/mitgcm-prep?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/mitgcm-resultplot?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/mitgcm-run-model?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/multidetect-and-clean?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/netcdf-assessment-area?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/netcdf-extract-fb-data?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/netcdf-join-dataframes?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/netcdf-logger-extract?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/netcdf-scatter-datax-vs-datay?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/netcdf-scatter-plot?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/netcdf-tile-plot?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/owt-classification?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/peri-conv?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/points-att-polygon?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/pred-extract?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/process-create-visualizations?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/process-dasymetric-refinement?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/process-interpolate-lau?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/process-interpolate-subbasins?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/retrieve-biodiversity-data?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/riverload-plot?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/riverload?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/syke-corine-stats-real-areas?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/tordera-gloria-connection?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/tordera-gloria?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/trend-analysis-mk?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/ts-selection-interpolation?f=json\nhttps://aquainfra.ogc.igb-berlin.de/pygeoapi/processes/weighting-functions?f=json","icon":"blank.png","loopElement":".","numberOfRecordPath":"/total_count","recordIdPath":"/id","pageSizeParam":"limit","pageFromParam":"offset","toISOConversion":"schema:iso19115-3.2018:convert/fromOGCAPIProcesses"},"content":{"validate":"NOVALIDATION","importxslt":"none","batchEdits":"[]","translateContent":false,"translateContentLangs":"","translateContentFields":[]},"options":{"every":"0 0 0 ? * *","oneRunOnly":false,"overrideUuid":"SKIP","status":"active"},"privileges":[{"@id":"1","operation":[{"@name":"view"},{"@name":"dynamic"},{"@name":"download"}]}],"ifRecordExistAppendPrivileges":false,"info":{"lastRun":"2026-05-20T08:20:22.338085Z","running":false,"result":{"added":"50","atomicDatasetRecords":"0","badFormat":"0","collectionDatasetRecords":"0","datasetUuidExist":"0","privilegesAppendedOnExistingRecord":"0","doesNotValidate":"0","xpathFilterExcluded":"0","duplicatedResource":"0","fragmentsMatched":"0","fragmentsReturned":"0","fragmentsUnknownSchema":"0","incompatible":"0","recordsBuilt":"0","recordsUpdated":"0","removed":"0","serviceRecords":"0","subtemplatesAdded":"0","subtemplatesRemoved":"0","subtemplatesUpdated":"0","total":"51","unchanged":"0","unknownSchema":"0","unretrievable":"0","updated":"1","thumbnails":"0","thumbnailsFailed":"0"}}}

Process details

Main information and links

image

Inputs and outputs described in data model

image

Checklist

  • I have read the contribution guidelines
  • Pull request provided for main branch, backports managed with label
  • Good housekeeping of code, cleaning up comments, tests, and documentation
  • Clean commit history broken into understandable chucks, avoiding big commits with hundreds of files, cautious of reformatting and whitespace changes
  • Clean commit messages, longer verbose messages are encouraged
  • API Changes are identified in commit messages
  • Testing provided for features or enhancements using automatic tests
  • User documentation provided for new features or enhancements in manual
  • Build documentation provided for development instructions in README.md files
  • Library management using pom.xml dependency management. Update build documentation with intended library use and library tutorials or documentation

Convert an OGC API Process description into an ISO19115-3 record.
@sonarqubecloud

Copy link
Copy Markdown

…in a page and harvest all documents. eg. landing page of an OGC API Process
@sonarqubecloud

sonarqubecloud Bot commented Jul 3, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
0.0% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant