Package: s100py
s100pyAPI and Utilities for Working with IHO S-100 HDF5 Data FormatsOverviewThis python package includes an API and utilities for encoding hydrographic
datasets in the International Hydrographic Organization (IHO) S-100
HDF5 format.Sees100py Read the Docsfor more information.BackgroundThe IHO S-100 standard is a data framework for digital products and
services for hydrographic, maritime, and GIS communities, comprised of
multiple data encoding formats designed for interoperability with
Electronic Navigational Charts (ENCs).This package includes the following S-100 encoding formats:S-102 Bathymetric SurfaceS-104 Water Level Information for Surface NavigationS-111 Water Currents for Surface NavigationHowever, support for additional formats as they become available will
be added in the future.  For further information about S-100 formats,
see theIHO website.Create S100 ProductsFollowS-102examples to create an S-102 FileFollowS-104examples to create an S-104 FileFollowS-111examples to create an S-111 FileFor S100 API DevelopersExtending the APIExample APIUsing Example APIAdvanced Example API UsageRequirementsThis codebase is written for Python >=3.8 and relies on the following python
packages:h5pynumpygdalInstallationCondaInstalling s100py from the conda-forge channel can be achieved by adding conda-forge to your channels with:condaconfig--addchannelsconda-forge
condaconfig--setchannel_prioritystrictOnce the conda-forge channel has been enabled, s100py can be installed with conda:condainstalls100pyor with mamba:mambainstalls100pyIt is possible to list all the versions of s100py available on your platform with conda:condasearchs100py--channelconda-forgeor with mamba:mambasearchs100py--channelconda-forgeAlternatively, mamba repoquery may provide more information:Search all versions available on your platform:mambarepoquerysearchs100py--channelconda-forgeList packages depending ons100py:mambarepoquerywhoneedss100py--channelconda-forgeList dependencies ofs100py:mambarepoquerydependss100py--channelconda-forgePIPIf installing with PIP, this package requires GDAL Python bindings be present,
so it usually can't be installed just usingpip install gdal, but for more information
visithttps://pypi.org/project/GDAL/.Oncegdalhas been installed, s100py can be installed usingpip:pipinstalls100pyRelease NotesVersion 1.0.0 (2023-10-27)This is a major release, which includes several new APIs that encapsulate the latest S-100 standard (S-100 Edition 5.0.0)
and S-100 Product Specifications (S-102 Edition 2.2.0, S-111 Edition 1.2.0, S-104 Edition 1.1.0) and adds support for
multiple S-100 Editions and Product Specification versionsAdditional convenience utilities have been added to generate:S-102 Edition 2.1.0 & 2.2.0 datasetsS-111 Edition 1.0.0 & 1.2.0 datasetsS-104 Edition 1.0.0 & 1.1.0 datasetsS-102 Data Coding Format 9 (Feature Oriented Regular Grid) datasetsS-104 Data Coding Format 3 (Irregular Grid) datasetsS-104 Data Coding Format 7 (TIN) datasetsS-102 Edition 2.1.0 (S-100 Edition 4.0) significant changes include:The depth orientation has changed from positive up to positive downS-102 Edition 2.2.0 (S-100 Edition 5.0) significant changes include:General metadatahorizontalDatumReferenceandhorizontalDatumValuehave been removedGeneral metadata attributeshorizontalCRSandtypeOfHorizontalCRSwere addedStricter datatypes have been set for all attributesAdded the feature attribute tableQualityOfSurveywhich provides the following additional survey metadata:The categorization of the assessment level of bathymetric data for an areaIf the least depth of detected features in an area was measuredIf significant features have or have not been detected in the course of a surveyThe size of detected bathymetric features in an areaPercentage of depth that a feature of such size could be detectedIf full seafloor coverage has been achieved in the area by hydrographic surveysFlag for bathy coverage nodes populated by interpolationThe best estimate of the fixed horizontal or vertical accuracy component for positions, depths, heights, vertical
distances, and vertical clearancesThe factor to be applied to the variable component of uncertainty equation to provide the best estimate of the
variable horizontal or vertically accuracy component for positions, depths, heights, vertical distances, and
vertical clearancesThe start date of the period of the hydrographic surveyThe end date of the period of the hydrographic surveyThe survey filename or IDThe authority which as responsible for the hydrographic surveyAn estimate of the magnitude of the difference between true and estimated bathymetric depth, after all appropriate
corrections are madeS-111 Edition 1.2.0 (S-100 Edition 5.0.0) significant changes include:General metadatahorizontalDatumReferenceandhorizontalDatumValuehave been removedGeneral metadata attributeshorizontalCRSandtypeOfHorizontalCRSwere addedStricter datatypes have been set for all attributesGeneral metadata attributedepthTypeIndexhas been modified to only allowheightOrDepthorlayerAverageGeneral metadatadatasetDeliveryIntervalwas added, describing the expected time interval between availability of
successive datasets for time-varying data, formatted as an ISO 8601 duration (e.g. 'PnYnMnDTnHnMnS')The enumeration attribute for the classification of data according the relationship between the time of its collection,
generation or calculation of generation parameters, in relation the time of publication has been changed fromtypeOfCurrentDatatodataDynamicityS-104 Edition 1.1.0 (S-100 Edition 5.0.0) significant changes include:General metadatahorizontalDatumReferenceandhorizontalDatumValuehave been removedGeneral metadata attributeshorizontalCRSandtypeOfHorizontalCRSwere addedStricter datatypes have been set for all attributesGeneral metadatadatasetDeliveryIntervalwas added, describing the expected time interval between availability of
successive datasets for time-varying data, formatted as an ISO 8601 duration (e.g. 'PnYnMnDTnHnMnS')The enumeration attribute for the classification of data according the relationship between the time of its collection,
generation or calculation of generation parameters, in relation the time of publication has been changed fromtypeOfWaterLevelDatatodataDynamicityGeneral metadatatrendIntervalwas added, describing the interval in minutes over which trend at a particular time
is calculatedVersion 1.0.0-rc.1 (2021-02-11)This is a major release, which includes a new API that encapsulates the data specifications to allow
introspection with Python to determine what data is available or should be and what data types would
be acceptable. Convenience utilities are available to convert data into S102/S104/S111 so detailed
knowledge of the S100 specs and APIs is not required in most casesSupport for s102 (bathymetry) and s104 (water levels) has been addedA consistent API for S100 data structures was added and is used to encode S102, S104, and S111The previous S111 library has been migrated to this general S100 API and therefore any
code written against the previous s100py library will no longer workExamples of using the new S111 API are availablehereAuthorsBarry Gallagher (NOAA),barry.gallagher@noaa.govErin Nagel (UCAR),erin.nagel@noaa.govGlen Rice (NOAA),glen.rice@noaa.govJason GreenlawLicenseThis work, as a whole, falls under Creative Commons Zero (seeLICENSE).DisclaimerThis repository is a scientific product and is not official
communication of the National Oceanic and Atmospheric Administration, or
the United States Department of Commerce. All NOAA GitHub project code
is provided on an 'as is' basis and the user assumes responsibility for
its use. Any claims against the Department of Commerce or Department of
Commerce bureaus stemming from the use of this GitHub project will be
governed by all applicable Federal law. Any reference to specific
commercial products, processes, or services by service mark, trademark,
manufacturer, or otherwise, does not constitute or imply their
endorsement, recommendation or favoring by the Department of Commerce.
The Department of Commerce seal and logo, or the seal and logo of a DOC
bureau, shall not be used in any manner to imply endorsement of any
commercial product or activity by DOC or the United States Government.