geopython / pycsw

pycsw is an OGC CSW server implementation written in Python. pycsw fully implements the OpenGIS Catalogue Service Implementation Specification [Catalogue Service for the Web]. Initial development started in 2010 (more formally announced in 2011). The project is certified OGC Compliant, and is an OGC Reference Implementation. pycsw allows for the publishing and discovery of geospatial metadata via numerous APIs (CSW 2/CSW 3, OpenSearch, OAI-PMH, SRU). Existing repositories of geospatial metadata can also be exposed, providing a standards-based metadata and catalogue component of spatial data infrastructures. pycsw is Open Source, released under an MIT license, and runs on all major platforms (Windows, Linux, Mac OS X). Please read the docs at https://pycsw.org/docs for more information.
https://pycsw.org
MIT License
197 stars 153 forks source link

Support for ISO 19115 Part 3 XML #933

Open vjf opened 6 months ago

vjf commented 6 months ago

Overview - Support for ISO 19115 Part 3 XML

This PR contains a new profile for pycsw, called 'iso19115p3'.

Related Issue / Discussion

Additional Information

Contributions and Licensing

(as per https://github.com/geopython/pycsw/blob/master/CONTRIBUTING.rst#contributions-and-licensing)

kalxas commented 6 months ago

Thank you @vjf for this contribution, we will need some time to review. My first comment is: why not add the parsing capability in OWSLib first?

vjf commented 6 months ago

@kalxas Well, amending all the geopython packages to understand ISO 19115-3 XML is quite a large job. It has to be broken up into parts.

There is a demand from the user community for this in pycsw, ckan etc. so I thought this was the best place to start.

I see integrating ISO 19115-3 XML support into OWSLib as the next stage. I haven't looked into how much work this would require.

If you like, I can make a PR for OWSLib and insert the new parser and unit tests. It might need "OWSLib >= XX.XX" in pycsw's requirements file and will require some release coordination timing between OWSLib and pycsw.

Alternatively we can have pycsw use the local copy of the parser now, then once OWSLib has its own parser, pycsw can preferentially load it. We can remove the local parser from pycsw later on.

tomkralidis commented 6 months ago

Great work @vjf! Agree with @kalxas, for maximum reuse and benefit, the MDB parser should be implemented in OWSLib proper (in owslib/iso_3.py), at which point we can cut an OWSLib release that will be used by pycsw. At that point we can continue the review.

vjf commented 6 months ago

@tomkralidis @kalxas OK, I will migrate mdb.py to OWSLib.

kalxas commented 3 months ago

@vjf now that the OWSLib pull request has been merged, can you please make the changes here to align?

vjf commented 2 months ago

@tomkralidis @kalxas

Almost there...

  1. I have added a fix to OWSLib https://github.com/geopython/OWSLib/pull/924
  2. The most recent OWSLib release will not work with this PR. You'll need to do an OWSLib release, right?
tomkralidis commented 2 months ago

@vjf FYI OWSLib 0.31.0 has now been released.

kalxas commented 1 month ago

CI is still failing I see

vjf commented 1 month ago

@kalxas @tomkralidis All fixed. Thanks.

kalxas commented 1 month ago

@vjf thank you. We will review and come back with comments

giohappy commented 2 days ago

We're planning to upgrade PyCSW for GeoNode and one of the compelling reasons is the support for ISO 19115 Part 3. Did you plan to merge this before the release of PyCSW 3?

@kalxas I take the opportunity to ask if you have a timeline for the release of PyCSW 3.

tomkralidis commented 2 days ago

@kalxas let's review during this week's OGC Sprint.