From 369a55a64e2cf40db4f6d0f21504b5abee85c94b Mon Sep 17 00:00:00 2001 From: pkdash Date: Mon, 18 Nov 2024 13:47:35 -0500 Subject: [PATCH 1/7] [#79] adding a new script to generate markdown files for metadata models in hsmodels --- ...hsmodels_aggregations_metadata_markdown.py | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 docs/metadata/generate_hsmodels_aggregations_metadata_markdown.py diff --git a/docs/metadata/generate_hsmodels_aggregations_metadata_markdown.py b/docs/metadata/generate_hsmodels_aggregations_metadata_markdown.py new file mode 100644 index 0000000..a196dba --- /dev/null +++ b/docs/metadata/generate_hsmodels_aggregations_metadata_markdown.py @@ -0,0 +1,47 @@ +import os +import jsonschema2md +import json + +from hsmodels.schemas.resource import ResourceMetadata +from hsmodels.schemas.aggregations import ( + FileSetMetadata, + GeographicRasterMetadata, + GeographicFeatureMetadata, + MultidimensionalMetadata, + ReferencedTimeSeriesMetadata, + SingleFileMetadata, + TimeSeriesMetadata, + ModelInstanceMetadata, + ModelProgramMetadata, + CSVFileMetadata +) + +aggregation_models = [ + ResourceMetadata, + FileSetMetadata, + GeographicRasterMetadata, + GeographicFeatureMetadata, + MultidimensionalMetadata, + ReferencedTimeSeriesMetadata, + SingleFileMetadata, + TimeSeriesMetadata, + ModelInstanceMetadata, + ModelProgramMetadata, + CSVFileMetadata +] + + +def write_md(model): + sj_rm = model.schema_json(indent=4) + sj_rm = sj_rm.replace("$defs", "definitions") + parser = jsonschema2md.Parser() + parser.tab_size = 4 + md_lines = parser.parse_schema(json.loads(sj_rm)) + + filename = model.__name__ + ".md" + with open(os.path.join(filename), "w") as f: + f.writelines(md_lines) + + +for aggr_model in aggregation_models: + write_md(aggr_model) From dd14bf14bb0ede07eacef978525654edebda9960 Mon Sep 17 00:00:00 2001 From: pkdash Date: Mon, 18 Nov 2024 13:52:25 -0500 Subject: [PATCH 2/7] [#79] removing repo_name to use the default link text GitHub --- mkdocs.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index ad2effb..72b5a77 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,5 +1,4 @@ site_name: hsclient -repo_name: hydroshare/hsclient repo_url: https://github.com/hydroshare/hsclient edit_uri: edit/master/docs/ From 186d286a5376e98bc06b61c3f465854b1fa4c3bf Mon Sep 17 00:00:00 2001 From: pkdash Date: Mon, 18 Nov 2024 13:54:39 -0500 Subject: [PATCH 3/7] [#79] adding mkdocs configuration to hide line numbers in source code display --- mkdocs.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 72b5a77..549a04a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -6,8 +6,6 @@ theme: readthedocs plugins: - search - - autorefs: - resolve_closest: true - mkdocstrings - mknotebooks: binder: true @@ -18,7 +16,8 @@ plugins: markdown_extensions: - tables - pymdownx.snippets - - codehilite + - pymdownx.highlight: + linenums_style: pymdownx-inline nav: - Usage Examples: From 8f96ea0d06ae8b1ff2ba4eb25227e6538a08dc7a Mon Sep 17 00:00:00 2001 From: pkdash Date: Mon, 18 Nov 2024 13:56:19 -0500 Subject: [PATCH 4/7] [#79] updating metadata model markdown file names --- mkdocs.yml | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 549a04a..3dc78c8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -27,17 +27,6 @@ nav: - Metadata Operations: examples/Metadata_Operations.ipynb - Aggregation Data Object Operations: examples/Aggregation_Data_Object_Operations.ipynb - Developer Documentation: - - Models: - - Single File: metadata/SingleFile.md - - File Set: metadata/FileSet.md - - Geographic Feature: metadata/GeographicFeature.md - - Geographic Raster: metadata/GeographicRaster.md - - Multidimensional: metadata/Multidimensional.md - - Referenced Time Series: metadata/ReferencedTimeSeries.md - - Time Series: metadata/TimeSeries.md - - Model Program: metadata/ModelProgram.md - - Model Instance: metadata/ModelInstance.md - - CSV: metadata/CSV.md - API: - HydroShare: api/hydroshare.md - Resource: api/resource.md @@ -48,3 +37,15 @@ nav: - Geographic Raster Aggregation: api/geo_raster_aggregation.md - Time Series Aggregation: api/time_series_aggregation.md - CSV Aggregation: api/csv.md + - Models: + - Resource: metadata/ResourceMetadata.md + - Single File: metadata/SingleFileMetadata.md + - File Set: metadata/FileSetMetadata.md + - Geographic Feature: metadata/GeographicFeatureMetadata.md + - Geographic Raster: metadata/GeographicRasterMetadata.md + - Multidimensional: metadata/MultidimensionalMetadata.md + - Referenced Time Series: metadata/ReferencedTimeSeriesMetadata.md + - Time Series: metadata/TimeSeriesMetadata.md + - Model Program: metadata/ModelProgramMetadata.md + - Model Instance: metadata/ModelInstanceMetadata.md + - CSV: metadata/CSVFileMetadata.md \ No newline at end of file From ddc17d11f6e065f4e1c11e916dde09c98a56caa7 Mon Sep 17 00:00:00 2001 From: pkdash Date: Mon, 18 Nov 2024 14:00:13 -0500 Subject: [PATCH 5/7] [#79] new metadata model markdown files --- docs/metadata/CSVFileMetadata.md | 80 +++++++++ docs/metadata/FileSetMetadata.md | 57 +++++++ docs/metadata/GeographicFeatureMetadata.md | 109 ++++++++++++ docs/metadata/GeographicRasterMetadata.md | 128 ++++++++++++++ docs/metadata/ModelInstanceMetadata.md | 70 ++++++++ docs/metadata/ModelProgramMetadata.md | 89 ++++++++++ docs/metadata/MultidimensionalMetadata.md | 94 +++++++++++ docs/metadata/ReferencedTimeSeriesMetadata.md | 57 +++++++ docs/metadata/ResourceMetadata.md | 154 +++++++++++++++++ docs/metadata/SingleFileMetadata.md | 57 +++++++ docs/metadata/TimeSeriesMetadata.md | 156 ++++++++++++++++++ 11 files changed, 1051 insertions(+) create mode 100644 docs/metadata/CSVFileMetadata.md create mode 100644 docs/metadata/FileSetMetadata.md create mode 100644 docs/metadata/GeographicFeatureMetadata.md create mode 100644 docs/metadata/GeographicRasterMetadata.md create mode 100644 docs/metadata/ModelInstanceMetadata.md create mode 100644 docs/metadata/ModelProgramMetadata.md create mode 100644 docs/metadata/MultidimensionalMetadata.md create mode 100644 docs/metadata/ReferencedTimeSeriesMetadata.md create mode 100644 docs/metadata/ResourceMetadata.md create mode 100644 docs/metadata/SingleFileMetadata.md create mode 100644 docs/metadata/TimeSeriesMetadata.md diff --git a/docs/metadata/CSVFileMetadata.md b/docs/metadata/CSVFileMetadata.md new file mode 100644 index 0000000..5d8cc54 --- /dev/null +++ b/docs/metadata/CSVFileMetadata.md @@ -0,0 +1,80 @@ +# CSV File Aggregation Metadata + +## Properties + +- **`title`** *(string)*: A string containing a descriptive title for the aggregation. Default: `null`. +- **`subjects`** *(array)*: A list of keyword strings expressing the topic of the aggregation. Default: `[]`. + - **Items** *(string)* +- **`language`** *(string)*: The 3-character string for the language in which the metadata and content are expressed. Default: `"eng"`. +- **`additional_metadata`** *(array)*: A dictionary of additional metadata elements expressed as key-value pairs. + - **Items** *(object)*: A key-value pair. Default: `[]`. + - **`key`** *(string)* + - **`value`** *(string)* +- **`spatial_coverage`**: An object containing the geospatial coverage for the aggregation expressed as either a bounding box or point. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PointCoverage](#definitions/PointCoverage)*. + - : Refer to *[#/definitions/BoxCoverage](#definitions/BoxCoverage)*. + - *null* +- **`period_coverage`**: An object containing the temporal coverage for a aggregation expressed as a date range. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PeriodCoverage](#definitions/PeriodCoverage)*. + - *null* +- **`tableSchema`**: An object containing metadata for the CSV file content type. + - **All of** + - : Refer to *[#/definitions/CSVTableSchema](#definitions/CSVTableSchema)*. +- **`type`**: A string expressing the aggregation type from the list of HydroShare aggregation types. Default: `"CSV"`. + - **All of** + - : Refer to *[#/definitions/AggregationType](#definitions/AggregationType)*. +- **`url`** *(string, format: uri, required)*: An object containing the URL of the aggregation. +- **`rights`**: An object containing information about the rights held in and over the aggregation and the license under which a aggregation is shared. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/Rights](#definitions/Rights)*. + - *null* +## Definitions + +- **`AggregationType`** *(string)*: Must be one of: `["Generic", "FileSet", "GeoRaster", "NetCDF", "GeoFeature", "RefTimeseries", "TimeSeries", "ModelProgram", "ModelInstance", "CSV"]`. +- **`BoxCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +latitude-longitude bounding box. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["box"]`. Must be: `"box"`. Default: `"box"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`northlimit`** *(number, required)*: A floating point value containing the constant coordinate for the northernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`eastlimit`** *(number, required)*: A floating point value containing the constant coordinate for the easternmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`southlimit`** *(number, required)*: A floating point value containing the constant coordinate for the southernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`westlimit`** *(number, required)*: A floating point value containing the constant coordinate for the westernmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`units`** *(string, required)*: A string containing the units applying to the unlabelled numeric values of northlimit, eastlimit, southlimit, and westlimit. + - **`projection`** *(string)*: A string containing the name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. Default: `null`. +- **`CSVColumnSchema`** *(object)*: A class used to represent the metadata associated with a CSV column. + - **`column_number`** *(integer, required)*: The column number of a column in the CSV file. Exclusive minimum: `0`. + - **`title`**: The title of of a column in the CSV file. Default: `null`. + - **Any of** + - *string* + - *null* + - **`description`**: The description of a column in the CSV file. Default: `null`. + - **Any of** + - *string* + - *null* + - **`datatype`** *(string, required)*: The datatype of a column in the CSV file. Must be one of: `["string", "number", "datetime", "boolean"]`. +- **`CSVColumnsSchema`** *(object)*: A class used to represent the metadata associated with all columns of a CSV file. + - **`columns`** *(array, required)*: A list of objects containing metadata for each of the columns in the CSV file. + - **Items**: Refer to *[#/definitions/CSVColumnSchema](#definitions/CSVColumnSchema)*. +- **`CSVTableSchema`** *(object)*: A class used to represent the metadata associated with a CSV file. + - **`rows`** *(integer, required)*: The number of data rows in the CSV file. Exclusive minimum: `0`. + - **`delimiter`** *(string, required)*: The delimiter used in the CSV file. Must be one of: `[",", ";", "\t"]`. + - **`table`**: An object containing metadata for all columns in the CSV file. + - **All of** + - : Refer to *[#/definitions/CSVColumnsSchema](#definitions/CSVColumnsSchema)*. +- **`PeriodCoverage`** *(object)*: A class used to represent temporal coverage metadata for a resource or aggregation. + - **`name`** *(string)*: A string containing a name for the time interval. Default: `null`. + - **`start`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the commencement of the time interval. + - **`end`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the termination of the time interval. +- **`PointCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +point location. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["point"]`. Must be: `"point"`. Default: `"point"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`east`** *(number, required)*: The coordinate of the point location measured in the east direction. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`north`** *(number, required)*: The coordinate of the point location measured in the north direction. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`units`** *(string, required)*: The units applying to the unlabelled numeric values of north and east. + - **`projection`** *(string, required)*: The name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. +- **`Rights`** *(object)*: A class used to represent the rights statement metadata associated with a resource. + - **`statement`** *(string, required)*: A string containing the text of the license or rights statement. + - **`url`** *(string, format: uri, required)*: An object containing the URL pointing to a description of the license or rights statement. diff --git a/docs/metadata/FileSetMetadata.md b/docs/metadata/FileSetMetadata.md new file mode 100644 index 0000000..1e5845a --- /dev/null +++ b/docs/metadata/FileSetMetadata.md @@ -0,0 +1,57 @@ +# File Set Aggregation Metadata + +## Properties + +- **`title`** *(string)*: A string containing a descriptive title for the aggregation. Default: `null`. +- **`subjects`** *(array)*: A list of keyword strings expressing the topic of the aggregation. Default: `[]`. + - **Items** *(string)* +- **`language`** *(string)*: The 3-character string for the language in which the metadata and content are expressed. Default: `"eng"`. +- **`additional_metadata`** *(array)*: A dictionary of additional metadata elements expressed as key-value pairs. + - **Items** *(object)*: A key-value pair. Default: `[]`. + - **`key`** *(string)* + - **`value`** *(string)* +- **`spatial_coverage`**: An object containing the geospatial coverage for the aggregation expressed as either a bounding box or point. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PointCoverage](#definitions/PointCoverage)*. + - : Refer to *[#/definitions/BoxCoverage](#definitions/BoxCoverage)*. + - *null* +- **`period_coverage`**: An object containing the temporal coverage for a aggregation expressed as a date range. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PeriodCoverage](#definitions/PeriodCoverage)*. + - *null* +- **`type`**: A string expressing the aggregation type from the list of HydroShare aggregation types. Default: `"FileSet"`. + - **All of** + - : Refer to *[#/definitions/AggregationType](#definitions/AggregationType)*. +- **`url`** *(string, format: uri, required)*: An object containing the URL of the aggregation. +- **`rights`**: An object containing information about the rights held in and over the aggregation and the license under which a aggregation is shared. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/Rights](#definitions/Rights)*. + - *null* +## Definitions + +- **`AggregationType`** *(string)*: Must be one of: `["Generic", "FileSet", "GeoRaster", "NetCDF", "GeoFeature", "RefTimeseries", "TimeSeries", "ModelProgram", "ModelInstance", "CSV"]`. +- **`BoxCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +latitude-longitude bounding box. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["box"]`. Must be: `"box"`. Default: `"box"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`northlimit`** *(number, required)*: A floating point value containing the constant coordinate for the northernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`eastlimit`** *(number, required)*: A floating point value containing the constant coordinate for the easternmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`southlimit`** *(number, required)*: A floating point value containing the constant coordinate for the southernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`westlimit`** *(number, required)*: A floating point value containing the constant coordinate for the westernmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`units`** *(string, required)*: A string containing the units applying to the unlabelled numeric values of northlimit, eastlimit, southlimit, and westlimit. + - **`projection`** *(string)*: A string containing the name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. Default: `null`. +- **`PeriodCoverage`** *(object)*: A class used to represent temporal coverage metadata for a resource or aggregation. + - **`name`** *(string)*: A string containing a name for the time interval. Default: `null`. + - **`start`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the commencement of the time interval. + - **`end`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the termination of the time interval. +- **`PointCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +point location. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["point"]`. Must be: `"point"`. Default: `"point"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`east`** *(number, required)*: The coordinate of the point location measured in the east direction. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`north`** *(number, required)*: The coordinate of the point location measured in the north direction. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`units`** *(string, required)*: The units applying to the unlabelled numeric values of north and east. + - **`projection`** *(string, required)*: The name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. +- **`Rights`** *(object)*: A class used to represent the rights statement metadata associated with a resource. + - **`statement`** *(string, required)*: A string containing the text of the license or rights statement. + - **`url`** *(string, format: uri, required)*: An object containing the URL pointing to a description of the license or rights statement. diff --git a/docs/metadata/GeographicFeatureMetadata.md b/docs/metadata/GeographicFeatureMetadata.md new file mode 100644 index 0000000..1efb3e7 --- /dev/null +++ b/docs/metadata/GeographicFeatureMetadata.md @@ -0,0 +1,109 @@ +# Geographic Feature Aggregation Metadata + +## Properties + +- **`title`** *(string)*: A string containing a descriptive title for the aggregation. Default: `null`. +- **`subjects`** *(array)*: A list of keyword strings expressing the topic of the aggregation. Default: `[]`. + - **Items** *(string)* +- **`language`** *(string)*: The 3-character string for the language in which the metadata and content are expressed. Default: `"eng"`. +- **`additional_metadata`** *(array)*: A dictionary of additional metadata elements expressed as key-value pairs. + - **Items** *(object)*: A key-value pair. Default: `[]`. + - **`key`** *(string)* + - **`value`** *(string)* +- **`spatial_coverage`**: An object containing the geospatial coverage for the aggregation expressed as either a bounding box or point. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PointCoverage](#definitions/PointCoverage)*. + - : Refer to *[#/definitions/BoxCoverage](#definitions/BoxCoverage)*. +- **`period_coverage`**: An object containing the temporal coverage for a aggregation expressed as a date range. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PeriodCoverage](#definitions/PeriodCoverage)*. + - *null* +- **`field_information`** *(array)*: A list of objects containing information about the fields in the dataset attribute table. Default: `[]`. + - **Items**: Refer to *[#/definitions/FieldInformation](#definitions/FieldInformation)*. +- **`geometry_information`**: An object containing information about the geometry of the features in the dataset. + - **All of** + - : Refer to *[#/definitions/GeometryInformation](#definitions/GeometryInformation)*. +- **`spatial_reference`**: An object containing spatial reference information for the dataset. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/BoxSpatialReference](#definitions/BoxSpatialReference)*. + - : Refer to *[#/definitions/PointSpatialReference](#definitions/PointSpatialReference)*. +- **`type`**: A string expressing the aggregation type from the list of HydroShare aggregation types. Default: `"GeoFeature"`. + - **All of** + - : Refer to *[#/definitions/AggregationType](#definitions/AggregationType)*. +- **`url`** *(string, format: uri, required)*: An object containing the URL of the aggregation. +- **`rights`**: An object containing information about the rights held in and over the aggregation and the license under which a aggregation is shared. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/Rights](#definitions/Rights)*. + - *null* +## Definitions + +- **`AggregationType`** *(string)*: Must be one of: `["Generic", "FileSet", "GeoRaster", "NetCDF", "GeoFeature", "RefTimeseries", "TimeSeries", "ModelProgram", "ModelInstance", "CSV"]`. +- **`BoxCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +latitude-longitude bounding box. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["box"]`. Must be: `"box"`. Default: `"box"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`northlimit`** *(number, required)*: A floating point value containing the constant coordinate for the northernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`eastlimit`** *(number, required)*: A floating point value containing the constant coordinate for the easternmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`southlimit`** *(number, required)*: A floating point value containing the constant coordinate for the southernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`westlimit`** *(number, required)*: A floating point value containing the constant coordinate for the westernmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`units`** *(string, required)*: A string containing the units applying to the unlabelled numeric values of northlimit, eastlimit, southlimit, and westlimit. + - **`projection`** *(string)*: A string containing the name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. Default: `null`. +- **`BoxSpatialReference`** *(object)*: A class used to represent the metadata associated with the spatial reference of a geographic +feature or raster aggregation expressed as a bounding box. + - **`type`** *(string)*: A string containing the type of spatial reference. Must be one of: `["box"]`. Must be: `"box"`. Default: `"box"`. + - **`name`** *(string)*: A string containing a name for the place associated with the spatial reference. Default: `null`. + - **`northlimit`** *(number, required)*: A floating point value containing the constant coordinate for the northernmost face or edge of the bounding box. + - **`eastlimit`** *(number, required)*: A floating point value containing the constant coordinate for the easternmost face or edge of the bounding box. + - **`southlimit`** *(number, required)*: A floating point value containing the constant coordinate for the southernmost face or edge of the bounding box. + - **`westlimit`** *(number, required)*: A floating point value containing the constant coordinate for the westernmost face or edge of the bounding box. + - **`units`** *(string, required)*: A string containing the units applying to the unlabelled numeric values of northlimit, eastlimit, southlimit, and westlimit. + - **`projection`** *(string)*: A string containing the name of the coordinate system used by the spatial reference. Default: `null`. + - **`projection_string`** *(string, required)*: A string containing an encoding of the coordinate system parameters. + - **`projection_string_type`** *(string)*: A string containing a description of the type of encoding for the projection string. Default: `null`. + - **`datum`** *(string)*: A string containing the name of the datum used by the coordinate system. Default: `null`. + - **`projection_name`** *(string)*: A string containing the name of the coordinate system. Default: `null`. +- **`FieldInformation`** *(object)*: A class used to represent the metadata associated with a field in the attribute table for a geographic +feature aggregation. + - **`field_name`** *(string, required)*: A string containing the name of the attribute table field. + - **`field_type`** *(string, required)*: A string containing the data type of the values in the field. + - **`field_type_code`**: A string value containing a code that indicates the field type. Default: `null`. + - **Any of** + - *string* + - *null* + - **`field_width`**: An integer value containing the width of the attribute field. Default: `null`. + - **Any of** + - *integer* + - *null* + - **`field_precision`**: An integer value containing the precision of the attribute field. Default: `null`. + - **Any of** + - *integer* + - *null* +- **`GeometryInformation`** *(object)*: A class used to represent the metadata associated with the geometry of a geographic feature aggregation. + - **`feature_count`** *(integer)*: An integer containing the number of features in the geographic feature aggregation. Default: `0`. + - **`geometry_type`** *(string, required)*: A string containing the type of features in the geographic feature aggregation. +- **`PeriodCoverage`** *(object)*: A class used to represent temporal coverage metadata for a resource or aggregation. + - **`name`** *(string)*: A string containing a name for the time interval. Default: `null`. + - **`start`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the commencement of the time interval. + - **`end`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the termination of the time interval. +- **`PointCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +point location. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["point"]`. Must be: `"point"`. Default: `"point"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`east`** *(number, required)*: The coordinate of the point location measured in the east direction. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`north`** *(number, required)*: The coordinate of the point location measured in the north direction. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`units`** *(string, required)*: The units applying to the unlabelled numeric values of north and east. + - **`projection`** *(string, required)*: The name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. +- **`PointSpatialReference`** *(object)*: A class used to represent the metadata associated with the spatial reference of a geographic +feature or raster aggregation expressed as a point. + - **`type`** *(string)*: A string containing the type of spatial reference. Must be one of: `["point"]`. Must be: `"point"`. Default: `"point"`. + - **`name`** *(string)*: A string containing a name for the place associated with the spatial reference. Default: `null`. + - **`east`** *(number, required)*: The coordinate of the point location measured in the east direction. + - **`north`** *(number, required)*: The coordinate of the point location measured in the north direction. + - **`units`** *(string, required)*: The units applying to the unlabelled numeric values of north and east. + - **`projection`** *(string, required)*: A string containing the name of the coordinate system used by the spatial reference. + - **`projection_string`** *(string, required)*: A string containing an encoding of the coordinate system parameters. + - **`projection_string_type`** *(string)*: A string containing a description of the type of encoding for the projection string. Default: `null`. + - **`projection_name`** *(string)*: A string containing the name of the coordinate system. Default: `null`. +- **`Rights`** *(object)*: A class used to represent the rights statement metadata associated with a resource. + - **`statement`** *(string, required)*: A string containing the text of the license or rights statement. + - **`url`** *(string, format: uri, required)*: An object containing the URL pointing to a description of the license or rights statement. diff --git a/docs/metadata/GeographicRasterMetadata.md b/docs/metadata/GeographicRasterMetadata.md new file mode 100644 index 0000000..8970718 --- /dev/null +++ b/docs/metadata/GeographicRasterMetadata.md @@ -0,0 +1,128 @@ +# Geographic Raster Aggregation Metadata + +## Properties + +- **`title`** *(string)*: A string containing a descriptive title for the aggregation. Default: `null`. +- **`subjects`** *(array)*: A list of keyword strings expressing the topic of the aggregation. Default: `[]`. + - **Items** *(string)* +- **`language`** *(string)*: The 3-character string for the language in which the metadata and content are expressed. Default: `"eng"`. +- **`additional_metadata`** *(array)*: A dictionary of additional metadata elements expressed as key-value pairs. + - **Items** *(object)*: A key-value pair. Default: `[]`. + - **`key`** *(string)* + - **`value`** *(string)* +- **`spatial_coverage`**: An object containing the geospatial coverage for the aggregation expressed as either a bounding box or point. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PointCoverage](#definitions/PointCoverage)*. + - : Refer to *[#/definitions/BoxCoverage](#definitions/BoxCoverage)*. +- **`period_coverage`**: An object containing the temporal coverage for a aggregation expressed as a date range. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PeriodCoverage](#definitions/PeriodCoverage)*. + - *null* +- **`band_information`**: An object containing information about the bands contained in the raster dataset. + - **All of** + - : Refer to *[#/definitions/BandInformation](#definitions/BandInformation)*. +- **`spatial_reference`**: An object containing spatial reference information for the dataset. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/BoxSpatialReference](#definitions/BoxSpatialReference)*. + - : Refer to *[#/definitions/PointSpatialReference](#definitions/PointSpatialReference)*. +- **`cell_information`**: An object containing information about the raster grid cells. + - **All of** + - : Refer to *[#/definitions/CellInformation](#definitions/CellInformation)*. +- **`type`**: A string expressing the aggregation type from the list of HydroShare aggregation types. Default: `"GeoRaster"`. + - **All of** + - : Refer to *[#/definitions/AggregationType](#definitions/AggregationType)*. +- **`url`** *(string, format: uri, required)*: An object containing the URL of the aggregation. +- **`rights`**: An object containing information about the rights held in and over the aggregation and the license under which a aggregation is shared. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/Rights](#definitions/Rights)*. + - *null* +## Definitions + +- **`AggregationType`** *(string)*: Must be one of: `["Generic", "FileSet", "GeoRaster", "NetCDF", "GeoFeature", "RefTimeseries", "TimeSeries", "ModelProgram", "ModelInstance", "CSV"]`. +- **`BandInformation`** *(object)*: A class used to represent the metadata associated with the raster bands of a geographic raster aggregation. + - **`name`** *(string, required)*: A string containing the name of the raster band. + - **`variable_name`**: A string containing the name of the variable represented by the raster band. Default: `null`. + - **Any of** + - *string* + - *null* + - **`variable_unit`**: A string containing the units for the raster band variable. Default: `null`. + - **Any of** + - *string* + - *null* + - **`no_data_value`**: A string containing the numeric nodata value for the raster band. Default: `null`. + - **Any of** + - *string* + - *null* + - **`maximum_value`**: A string containing the maximum numeric value for the raster band. Default: `null`. + - **Any of** + - *string* + - *null* + - **`comment`**: A string containing a comment about the raster band. Default: `null`. + - **Any of** + - *string* + - *null* + - **`method`**: A string containing a description of the method used to create the raster band data. Default: `null`. + - **Any of** + - *string* + - *null* + - **`minimum_value`**: A string containing the minimum numerica value for the raster dataset. Default: `null`. + - **Any of** + - *string* + - *null* +- **`BoxCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +latitude-longitude bounding box. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["box"]`. Must be: `"box"`. Default: `"box"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`northlimit`** *(number, required)*: A floating point value containing the constant coordinate for the northernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`eastlimit`** *(number, required)*: A floating point value containing the constant coordinate for the easternmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`southlimit`** *(number, required)*: A floating point value containing the constant coordinate for the southernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`westlimit`** *(number, required)*: A floating point value containing the constant coordinate for the westernmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`units`** *(string, required)*: A string containing the units applying to the unlabelled numeric values of northlimit, eastlimit, southlimit, and westlimit. + - **`projection`** *(string)*: A string containing the name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. Default: `null`. +- **`BoxSpatialReference`** *(object)*: A class used to represent the metadata associated with the spatial reference of a geographic +feature or raster aggregation expressed as a bounding box. + - **`type`** *(string)*: A string containing the type of spatial reference. Must be one of: `["box"]`. Must be: `"box"`. Default: `"box"`. + - **`name`** *(string)*: A string containing a name for the place associated with the spatial reference. Default: `null`. + - **`northlimit`** *(number, required)*: A floating point value containing the constant coordinate for the northernmost face or edge of the bounding box. + - **`eastlimit`** *(number, required)*: A floating point value containing the constant coordinate for the easternmost face or edge of the bounding box. + - **`southlimit`** *(number, required)*: A floating point value containing the constant coordinate for the southernmost face or edge of the bounding box. + - **`westlimit`** *(number, required)*: A floating point value containing the constant coordinate for the westernmost face or edge of the bounding box. + - **`units`** *(string, required)*: A string containing the units applying to the unlabelled numeric values of northlimit, eastlimit, southlimit, and westlimit. + - **`projection`** *(string)*: A string containing the name of the coordinate system used by the spatial reference. Default: `null`. + - **`projection_string`** *(string, required)*: A string containing an encoding of the coordinate system parameters. + - **`projection_string_type`** *(string)*: A string containing a description of the type of encoding for the projection string. Default: `null`. + - **`datum`** *(string)*: A string containing the name of the datum used by the coordinate system. Default: `null`. + - **`projection_name`** *(string)*: A string containing the name of the coordinate system. Default: `null`. +- **`CellInformation`** *(object)*: A class used to represent the metadata associated with raster grid cells in geographic raster aggregations. + - **`name`** *(string)*: Name of the cell information. Default: `null`. + - **`rows`** *(integer)*: The integer number of rows in the raster dataset. Default: `null`. + - **`columns`** *(integer)*: The integer number of columns in the raster dataset. Default: `null`. + - **`cell_size_x_value`** *(number)*: The size of the raster grid cell in the x-direction expressed as a float. Default: `null`. + - **`cell_data_type`** *(string)*: The data type of the raster grid cell values. Default: `null`. + - **`cell_size_y_value`** *(number)*: The size of the raster grid cell in the y-direction expressed as a float. Default: `null`. +- **`PeriodCoverage`** *(object)*: A class used to represent temporal coverage metadata for a resource or aggregation. + - **`name`** *(string)*: A string containing a name for the time interval. Default: `null`. + - **`start`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the commencement of the time interval. + - **`end`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the termination of the time interval. +- **`PointCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +point location. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["point"]`. Must be: `"point"`. Default: `"point"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`east`** *(number, required)*: The coordinate of the point location measured in the east direction. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`north`** *(number, required)*: The coordinate of the point location measured in the north direction. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`units`** *(string, required)*: The units applying to the unlabelled numeric values of north and east. + - **`projection`** *(string, required)*: The name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. +- **`PointSpatialReference`** *(object)*: A class used to represent the metadata associated with the spatial reference of a geographic +feature or raster aggregation expressed as a point. + - **`type`** *(string)*: A string containing the type of spatial reference. Must be one of: `["point"]`. Must be: `"point"`. Default: `"point"`. + - **`name`** *(string)*: A string containing a name for the place associated with the spatial reference. Default: `null`. + - **`east`** *(number, required)*: The coordinate of the point location measured in the east direction. + - **`north`** *(number, required)*: The coordinate of the point location measured in the north direction. + - **`units`** *(string, required)*: The units applying to the unlabelled numeric values of north and east. + - **`projection`** *(string, required)*: A string containing the name of the coordinate system used by the spatial reference. + - **`projection_string`** *(string, required)*: A string containing an encoding of the coordinate system parameters. + - **`projection_string_type`** *(string)*: A string containing a description of the type of encoding for the projection string. Default: `null`. + - **`projection_name`** *(string)*: A string containing the name of the coordinate system. Default: `null`. +- **`Rights`** *(object)*: A class used to represent the rights statement metadata associated with a resource. + - **`statement`** *(string, required)*: A string containing the text of the license or rights statement. + - **`url`** *(string, format: uri, required)*: An object containing the URL pointing to a description of the license or rights statement. diff --git a/docs/metadata/ModelInstanceMetadata.md b/docs/metadata/ModelInstanceMetadata.md new file mode 100644 index 0000000..e004de4 --- /dev/null +++ b/docs/metadata/ModelInstanceMetadata.md @@ -0,0 +1,70 @@ +# Model Instance Aggregation Metadata + +## Properties + +- **`title`** *(string)*: A string containing a descriptive title for the aggregation. Default: `null`. +- **`subjects`** *(array)*: A list of keyword strings expressing the topic of the aggregation. Default: `[]`. + - **Items** *(string)* +- **`language`** *(string)*: The 3-character string for the language in which the metadata and content are expressed. Default: `"eng"`. +- **`additional_metadata`** *(array)*: A dictionary of additional metadata elements expressed as key-value pairs. + - **Items** *(object)*: A key-value pair. Default: `[]`. + - **`key`** *(string)* + - **`value`** *(string)* +- **`spatial_coverage`**: An object containing the geospatial coverage for the aggregation expressed as either a bounding box or point. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PointCoverage](#definitions/PointCoverage)*. + - : Refer to *[#/definitions/BoxCoverage](#definitions/BoxCoverage)*. + - *null* +- **`period_coverage`**: An object containing the temporal coverage for a aggregation expressed as a date range. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PeriodCoverage](#definitions/PeriodCoverage)*. + - *null* +- **`includes_model_output`** *(boolean, required)*: Indicates whether model output files are included in the aggregation. +- **`executed_by`**: A URL to the Model Program that can be used to execute this model instance. Default: `null`. + - **Any of** + - *string, format: uri* + - *null* +- **`program_schema_json`**: A URL to the JSON metadata schema for the related model program. Default: `null`. + - **Any of** + - *string, format: uri* + - *null* +- **`program_schema_json_values`**: A URL to a JSON file containing the metadata values conforming to the JSON metadata schema for the related model program. Default: `null`. + - **Any of** + - *string, format: uri* + - *null* +- **`type`**: A string expressing the aggregation type from the list of HydroShare aggregation types. Default: `"ModelInstance"`. + - **All of** + - : Refer to *[#/definitions/AggregationType](#definitions/AggregationType)*. +- **`url`** *(string, format: uri, required)*: An object containing the URL of the aggregation. +- **`rights`**: An object containing information about the rights held in and over the aggregation and the license under which a aggregation is shared. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/Rights](#definitions/Rights)*. + - *null* +## Definitions + +- **`AggregationType`** *(string)*: Must be one of: `["Generic", "FileSet", "GeoRaster", "NetCDF", "GeoFeature", "RefTimeseries", "TimeSeries", "ModelProgram", "ModelInstance", "CSV"]`. +- **`BoxCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +latitude-longitude bounding box. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["box"]`. Must be: `"box"`. Default: `"box"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`northlimit`** *(number, required)*: A floating point value containing the constant coordinate for the northernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`eastlimit`** *(number, required)*: A floating point value containing the constant coordinate for the easternmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`southlimit`** *(number, required)*: A floating point value containing the constant coordinate for the southernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`westlimit`** *(number, required)*: A floating point value containing the constant coordinate for the westernmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`units`** *(string, required)*: A string containing the units applying to the unlabelled numeric values of northlimit, eastlimit, southlimit, and westlimit. + - **`projection`** *(string)*: A string containing the name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. Default: `null`. +- **`PeriodCoverage`** *(object)*: A class used to represent temporal coverage metadata for a resource or aggregation. + - **`name`** *(string)*: A string containing a name for the time interval. Default: `null`. + - **`start`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the commencement of the time interval. + - **`end`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the termination of the time interval. +- **`PointCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +point location. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["point"]`. Must be: `"point"`. Default: `"point"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`east`** *(number, required)*: The coordinate of the point location measured in the east direction. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`north`** *(number, required)*: The coordinate of the point location measured in the north direction. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`units`** *(string, required)*: The units applying to the unlabelled numeric values of north and east. + - **`projection`** *(string, required)*: The name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. +- **`Rights`** *(object)*: A class used to represent the rights statement metadata associated with a resource. + - **`statement`** *(string, required)*: A string containing the text of the license or rights statement. + - **`url`** *(string, format: uri, required)*: An object containing the URL pointing to a description of the license or rights statement. diff --git a/docs/metadata/ModelProgramMetadata.md b/docs/metadata/ModelProgramMetadata.md new file mode 100644 index 0000000..6a19194 --- /dev/null +++ b/docs/metadata/ModelProgramMetadata.md @@ -0,0 +1,89 @@ +# Model Program Aggregation Metadata + +## Properties + +- **`title`** *(string)*: A string containing a descriptive title for the aggregation. Default: `null`. +- **`subjects`** *(array)*: A list of keyword strings expressing the topic of the aggregation. Default: `[]`. + - **Items** *(string)* +- **`language`** *(string)*: The 3-character string for the language in which the metadata and content are expressed. Default: `"eng"`. +- **`additional_metadata`** *(array)*: A dictionary of additional metadata elements expressed as key-value pairs. + - **Items** *(object)*: A key-value pair. Default: `[]`. + - **`key`** *(string)* + - **`value`** *(string)* +- **`spatial_coverage`**: An object containing the geospatial coverage for the aggregation expressed as either a bounding box or point. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PointCoverage](#definitions/PointCoverage)*. + - : Refer to *[#/definitions/BoxCoverage](#definitions/BoxCoverage)*. + - *null* +- **`period_coverage`**: An object containing the temporal coverage for a aggregation expressed as a date range. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PeriodCoverage](#definitions/PeriodCoverage)*. + - *null* +- **`version`**: The software version or build number of the model. Default: `null`. + - **Any of** + - *string* + - *null* +- **`programming_languages`** *(array)*: The programming languages that the model is written in. Length must be at most 100. Default: `[]`. + - **Items** *(string)* +- **`operating_systems`** *(array)*: Compatible operating systems to setup and run the model. Length must be at most 100. Default: `[]`. + - **Items** *(string)* +- **`release_date`**: The date that this version of the model was released. Default: `null`. + - **Any of** + - *string, format: date* + - *null* +- **`website`**: A URL to a website describing the model that is maintained by the model developers. Default: `null`. + - **Any of** + - *string, format: uri* + - *null* +- **`code_repository`**: A URL to the source code repository for the model code (e.g., git, mercurial, svn, etc.). Default: `null`. + - **Any of** + - *string, format: uri* + - *null* +- **`file_types`** *(array)*: File types used by the model program. Default: `[]`. + - **Items**: Refer to *[#/definitions/ModelProgramFile](#definitions/ModelProgramFile)*. +- **`program_schema_json`**: A url to the JSON metadata schema for the model program. Default: `null`. + - **Any of** + - *string, format: uri* + - *null* +- **`type`**: A string expressing the aggregation type from the list of HydroShare aggregation types. Default: `"ModelProgram"`. + - **All of** + - : Refer to *[#/definitions/AggregationType](#definitions/AggregationType)*. +- **`url`** *(string, format: uri, required)*: An object containing the URL of the aggregation. +- **`rights`**: An object containing information about the rights held in and over the aggregation and the license under which a aggregation is shared. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/Rights](#definitions/Rights)*. + - *null* +## Definitions + +- **`AggregationType`** *(string)*: Must be one of: `["Generic", "FileSet", "GeoRaster", "NetCDF", "GeoFeature", "RefTimeseries", "TimeSeries", "ModelProgram", "ModelInstance", "CSV"]`. +- **`BoxCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +latitude-longitude bounding box. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["box"]`. Must be: `"box"`. Default: `"box"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`northlimit`** *(number, required)*: A floating point value containing the constant coordinate for the northernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`eastlimit`** *(number, required)*: A floating point value containing the constant coordinate for the easternmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`southlimit`** *(number, required)*: A floating point value containing the constant coordinate for the southernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`westlimit`** *(number, required)*: A floating point value containing the constant coordinate for the westernmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`units`** *(string, required)*: A string containing the units applying to the unlabelled numeric values of northlimit, eastlimit, southlimit, and westlimit. + - **`projection`** *(string)*: A string containing the name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. Default: `null`. +- **`ModelProgramFile`** *(object)*: A class used to represent the metadata associated with a file used by a model program aggregation. + - **`type`**: The type of the file used by the model program. + - **All of** + - : Refer to *[#/definitions/ModelProgramFileType](#definitions/ModelProgramFileType)*. + - **`url`** *(string, format: uri, required)*: The url of the file used by the model program. +- **`ModelProgramFileType`** *(string)*: Must be one of: `["https://www.hydroshare.org/terms/modelReleaseNotes", "https://www.hydroshare.org/terms/modelDocumentation", "https://www.hydroshare.org/terms/modelSoftware", "https://www.hydroshare.org/terms/modelEngine"]`. +- **`PeriodCoverage`** *(object)*: A class used to represent temporal coverage metadata for a resource or aggregation. + - **`name`** *(string)*: A string containing a name for the time interval. Default: `null`. + - **`start`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the commencement of the time interval. + - **`end`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the termination of the time interval. +- **`PointCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +point location. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["point"]`. Must be: `"point"`. Default: `"point"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`east`** *(number, required)*: The coordinate of the point location measured in the east direction. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`north`** *(number, required)*: The coordinate of the point location measured in the north direction. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`units`** *(string, required)*: The units applying to the unlabelled numeric values of north and east. + - **`projection`** *(string, required)*: The name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. +- **`Rights`** *(object)*: A class used to represent the rights statement metadata associated with a resource. + - **`statement`** *(string, required)*: A string containing the text of the license or rights statement. + - **`url`** *(string, format: uri, required)*: An object containing the URL pointing to a description of the license or rights statement. diff --git a/docs/metadata/MultidimensionalMetadata.md b/docs/metadata/MultidimensionalMetadata.md new file mode 100644 index 0000000..0b02dfa --- /dev/null +++ b/docs/metadata/MultidimensionalMetadata.md @@ -0,0 +1,94 @@ +# Multidimensional Aggregation Metadata + +## Properties + +- **`title`** *(string)*: A string containing a descriptive title for the aggregation. Default: `null`. +- **`subjects`** *(array)*: A list of keyword strings expressing the topic of the aggregation. Default: `[]`. + - **Items** *(string)* +- **`language`** *(string)*: The 3-character string for the language in which the metadata and content are expressed. Default: `"eng"`. +- **`additional_metadata`** *(array)*: A dictionary of additional metadata elements expressed as key-value pairs. + - **Items** *(object)*: A key-value pair. Default: `[]`. + - **`key`** *(string)* + - **`value`** *(string)* +- **`spatial_coverage`**: An object containing the geospatial coverage for the aggregation expressed as either a bounding box or point. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PointCoverage](#definitions/PointCoverage)*. + - : Refer to *[#/definitions/BoxCoverage](#definitions/BoxCoverage)*. +- **`period_coverage`**: An object containing the temporal coverage for a aggregation expressed as a date range. Default: `null`. + - **All of** + - : Refer to *[#/definitions/PeriodCoverage](#definitions/PeriodCoverage)*. +- **`variables`** *(array)*: A list containing information about the variables for which data are stored in the dataset. Default: `[]`. + - **Items**: Refer to *[#/definitions/Variable](#definitions/Variable)*. +- **`spatial_reference`**: An object containing spatial reference information for the dataset. Default: `null`. + - **All of** + - : Refer to *[#/definitions/MultidimensionalBoxSpatialReference](#definitions/MultidimensionalBoxSpatialReference)*. +- **`type`**: A string expressing the aggregation type from the list of HydroShare aggregation types. Default: `"NetCDF"`. + - **All of** + - : Refer to *[#/definitions/AggregationType](#definitions/AggregationType)*. +- **`url`** *(string, format: uri, required)*: An object containing the URL of the aggregation. +- **`rights`**: An object containing information about the rights held in and over the aggregation and the license under which a aggregation is shared. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/Rights](#definitions/Rights)*. + - *null* +## Definitions + +- **`AggregationType`** *(string)*: Must be one of: `["Generic", "FileSet", "GeoRaster", "NetCDF", "GeoFeature", "RefTimeseries", "TimeSeries", "ModelProgram", "ModelInstance", "CSV"]`. +- **`BoxCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +latitude-longitude bounding box. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["box"]`. Must be: `"box"`. Default: `"box"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`northlimit`** *(number, required)*: A floating point value containing the constant coordinate for the northernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`eastlimit`** *(number, required)*: A floating point value containing the constant coordinate for the easternmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`southlimit`** *(number, required)*: A floating point value containing the constant coordinate for the southernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`westlimit`** *(number, required)*: A floating point value containing the constant coordinate for the westernmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`units`** *(string, required)*: A string containing the units applying to the unlabelled numeric values of northlimit, eastlimit, southlimit, and westlimit. + - **`projection`** *(string)*: A string containing the name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. Default: `null`. +- **`MultidimensionalBoxSpatialReference`** *(object)*: A class used to represent the metadata associated with the spatial reference of a multidimensional +aggregation expressed as a bounding box. + - **`type`** *(string)*: A string containing the type of spatial reference. Must be one of: `["box"]`. Must be: `"box"`. Default: `"box"`. + - **`name`** *(string)*: A string containing a name for the place associated with the spatial reference. Default: `null`. + - **`northlimit`** *(number, required)*: A floating point value containing the constant coordinate for the northernmost face or edge of the bounding box. + - **`eastlimit`** *(number, required)*: A floating point value containing the constant coordinate for the easternmost face or edge of the bounding box. + - **`southlimit`** *(number, required)*: A floating point value containing the constant coordinate for the southernmost face or edge of the bounding box. + - **`westlimit`** *(number, required)*: A floating point value containing the constant coordinate for the westernmost face or edge of the bounding box. + - **`units`** *(string, required)*: A string containing the units applying to the unlabelled numeric values of northlimit, eastlimit, southlimit, and westlimit. + - **`projection`** *(string)*: A string containing the name of the coordinate system used by the spatial reference. Default: `null`. + - **`projection_string`** *(string, required)*: A string containing an encoding of the coordinate system parameters. + - **`projection_string_type`** *(string)*: A string containing a description of the type of encoding for the projection string. Default: `null`. + - **`datum`** *(string)*: A string containing the name of the datum used by the coordinate system. Default: `null`. + - **`projection_name`** *(string)*: A string containing the name of the coordinate system. Default: `null`. +- **`PeriodCoverage`** *(object)*: A class used to represent temporal coverage metadata for a resource or aggregation. + - **`name`** *(string)*: A string containing a name for the time interval. Default: `null`. + - **`start`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the commencement of the time interval. + - **`end`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the termination of the time interval. +- **`PointCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +point location. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["point"]`. Must be: `"point"`. Default: `"point"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`east`** *(number, required)*: The coordinate of the point location measured in the east direction. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`north`** *(number, required)*: The coordinate of the point location measured in the north direction. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`units`** *(string, required)*: The units applying to the unlabelled numeric values of north and east. + - **`projection`** *(string, required)*: The name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. +- **`Rights`** *(object)*: A class used to represent the rights statement metadata associated with a resource. + - **`statement`** *(string, required)*: A string containing the text of the license or rights statement. + - **`url`** *(string, format: uri, required)*: An object containing the URL pointing to a description of the license or rights statement. +- **`Variable`** *(object)*: A class used to represent the metadata associated with a variable contained within a multidimensional aggregation. + - **`name`** *(string, required)*: A string containing the name of the variable. + - **`unit`** *(string, required)*: A string containing the units in which the values for the variable are expressed. + - **`type`**: The data type of the values for the variable. + - **All of** + - : Refer to *[#/definitions/VariableType](#definitions/VariableType)*. + - **`shape`** *(string, required)*: A string containing the shape of the variable expressed as a list of dimensions. + - **`descriptive_name`**: A string containing a descriptive name for the variable. Default: `null`. + - **Any of** + - *string* + - *null* + - **`method`**: A string containing a description of the method used to create the values for the variable. Default: `null`. + - **Any of** + - *string* + - *null* + - **`missing_value`**: A string containing the value used to indicate missing values for the variable. Default: `null`. + - **Any of** + - *string* + - *null* +- **`VariableType`** *(string)*: Must be one of: `["Char", "Byte", "Short", "Int", "Float", "Double", "Int64", "Unsigned Byte", "Unsigned Short", "Unsigned Int", "Unsigned Int64", "String", "User Defined Type", "Unknown"]`. diff --git a/docs/metadata/ReferencedTimeSeriesMetadata.md b/docs/metadata/ReferencedTimeSeriesMetadata.md new file mode 100644 index 0000000..8915898 --- /dev/null +++ b/docs/metadata/ReferencedTimeSeriesMetadata.md @@ -0,0 +1,57 @@ +# Referenced Time Series Aggregation Metadata + +## Properties + +- **`title`** *(string)*: A string containing a descriptive title for the aggregation. Default: `null`. +- **`subjects`** *(array)*: A list of keyword strings expressing the topic of the aggregation. Default: `[]`. + - **Items** *(string)* +- **`language`** *(string)*: The 3-character string for the language in which the metadata and content are expressed. Default: `"eng"`. +- **`additional_metadata`** *(array)*: A dictionary of additional metadata elements expressed as key-value pairs. + - **Items** *(object)*: A key-value pair. Default: `[]`. + - **`key`** *(string)* + - **`value`** *(string)* +- **`spatial_coverage`**: An object containing the geospatial coverage for the aggregation expressed as either a bounding box or point. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PointCoverage](#definitions/PointCoverage)*. + - : Refer to *[#/definitions/BoxCoverage](#definitions/BoxCoverage)*. + - *null* +- **`period_coverage`**: An object containing the temporal coverage for a aggregation expressed as a date range. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PeriodCoverage](#definitions/PeriodCoverage)*. + - *null* +- **`type`**: A string expressing the aggregation type from the list of HydroShare aggregation types. Default: `"RefTimeseries"`. + - **All of** + - : Refer to *[#/definitions/AggregationType](#definitions/AggregationType)*. +- **`url`** *(string, format: uri, required)*: An object containing the URL of the aggregation. +- **`rights`**: An object containing information about the rights held in and over the aggregation and the license under which a aggregation is shared. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/Rights](#definitions/Rights)*. + - *null* +## Definitions + +- **`AggregationType`** *(string)*: Must be one of: `["Generic", "FileSet", "GeoRaster", "NetCDF", "GeoFeature", "RefTimeseries", "TimeSeries", "ModelProgram", "ModelInstance", "CSV"]`. +- **`BoxCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +latitude-longitude bounding box. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["box"]`. Must be: `"box"`. Default: `"box"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`northlimit`** *(number, required)*: A floating point value containing the constant coordinate for the northernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`eastlimit`** *(number, required)*: A floating point value containing the constant coordinate for the easternmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`southlimit`** *(number, required)*: A floating point value containing the constant coordinate for the southernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`westlimit`** *(number, required)*: A floating point value containing the constant coordinate for the westernmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`units`** *(string, required)*: A string containing the units applying to the unlabelled numeric values of northlimit, eastlimit, southlimit, and westlimit. + - **`projection`** *(string)*: A string containing the name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. Default: `null`. +- **`PeriodCoverage`** *(object)*: A class used to represent temporal coverage metadata for a resource or aggregation. + - **`name`** *(string)*: A string containing a name for the time interval. Default: `null`. + - **`start`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the commencement of the time interval. + - **`end`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the termination of the time interval. +- **`PointCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +point location. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["point"]`. Must be: `"point"`. Default: `"point"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`east`** *(number, required)*: The coordinate of the point location measured in the east direction. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`north`** *(number, required)*: The coordinate of the point location measured in the north direction. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`units`** *(string, required)*: The units applying to the unlabelled numeric values of north and east. + - **`projection`** *(string, required)*: The name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. +- **`Rights`** *(object)*: A class used to represent the rights statement metadata associated with a resource. + - **`statement`** *(string, required)*: A string containing the text of the license or rights statement. + - **`url`** *(string, format: uri, required)*: An object containing the URL pointing to a description of the license or rights statement. diff --git a/docs/metadata/ResourceMetadata.md b/docs/metadata/ResourceMetadata.md new file mode 100644 index 0000000..fca9967 --- /dev/null +++ b/docs/metadata/ResourceMetadata.md @@ -0,0 +1,154 @@ +# Resource Metadata + +## Properties + +- **`title`** *(string, required)*: A string containing the name given to a resource. +- **`abstract`** *(string)*: A string containing a summary of a resource. Default: `null`. +- **`language`** *(string)*: A 3-character string for the language in which the metadata and content of a resource are expressed. Default: `"eng"`. +- **`subjects`** *(array)*: A list of keyword strings expressing the topic of a resource. Default: `[]`. + - **Items** *(string)* +- **`creators`** *(array)*: A list of Creator objects indicating the entities responsible for creating a resource. Default: `[]`. + - **Items**: Refer to *[#/definitions/Creator](#definitions/Creator)*. +- **`contributors`** *(array)*: A list of Contributor objects indicating the entities that contributed to a resource. Default: `[]`. + - **Items**: Refer to *[#/definitions/Contributor](#definitions/Contributor)*. +- **`relations`** *(array)*: A list of Relation objects representing resources related to a described resource. Default: `[]`. + - **Items**: Refer to *[#/definitions/Relation](#definitions/Relation)*. +- **`additional_metadata`** *(array)*: A dictionary containing key-value pair metadata associated with a resource. + - **Items** *(object)*: A key-value pair. Default: `[]`. + - **`key`** *(string)* + - **`value`** *(string)* +- **`rights`**: An object containing information about rights held in an over a resource. + - **All of** + - : Refer to *[#/definitions/Rights](#definitions/Rights)*. +- **`awards`** *(array)*: A list of objects containing information about the funding agencies and awards associated with a resource. Default: `[]`. + - **Items**: Refer to *[#/definitions/AwardInfo](#definitions/AwardInfo)*. +- **`spatial_coverage`**: An object containing information about the spatial topic of a resource, the spatial applicability of a resource, or jurisdiction under with a resource is relevant. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PointCoverage](#definitions/PointCoverage)*. + - : Refer to *[#/definitions/BoxCoverage](#definitions/BoxCoverage)*. + - *null* +- **`period_coverage`**: An object containing information about the temporal topic or applicability of a resource. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PeriodCoverage](#definitions/PeriodCoverage)*. + - *null* +- **`publisher`**: An object containing information about the publisher of a resource. Default: `null`. + - **All of** + - : Refer to *[#/definitions/Publisher](#definitions/Publisher)*. +- **`citation`** *(string)*: A string containing the biblilographic citation for a resource. Default: `null`. +- **`url`** *(string, format: uri, required)*: An object containing the URL for a resource. +- **`identifier`** *(string, format: uri, required)*: An object containing the URL-encoded unique identifier for a resource. +- **`created`** *(string, format: date-time)*: A datetime object containing the instant associated with when a resource was created. +- **`modified`** *(string, format: date-time)*: A datetime object containing the instant associated with when a resource was last modified. +- **`review_started`** *(string, format: date-time)*: A datetime object containing the instant associated with when metadata review started on a resource. Default: `null`. +- **`published`** *(string, format: date-time)*: A datetime object containing the instant associated with when a resource was published. Default: `null`. +- **`type`** *(string)*: An object containing a URL that points to the HydroShare resource type selected from the hsterms namespace. Must be one of: `["CompositeResource"]`. Must be: `"CompositeResource"`. Default: `"CompositeResource"`. +## Definitions + +- **`AwardInfo`** *(object)*: A class used to represent the metadata associated with funding agency credits for a resource. + - **`funding_agency_name`** *(string, required)*: A string containing the name of the funding agency or organization. + - **`title`**: A string containing the title of the project or award. Default: `null`. + - **Any of** + - *string* + - *null* + - **`number`**: A string containing the award number or other identifier. Default: `null`. + - **Any of** + - *string* + - *null* + - **`funding_agency_url`**: An object containing a URL pointing to a website describing the funding award. Default: `null`. + - **Any of** + - *string, format: uri* + - *null* +- **`BoxCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +latitude-longitude bounding box. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["box"]`. Must be: `"box"`. Default: `"box"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`northlimit`** *(number, required)*: A floating point value containing the constant coordinate for the northernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`eastlimit`** *(number, required)*: A floating point value containing the constant coordinate for the easternmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`southlimit`** *(number, required)*: A floating point value containing the constant coordinate for the southernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`westlimit`** *(number, required)*: A floating point value containing the constant coordinate for the westernmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`units`** *(string, required)*: A string containing the units applying to the unlabelled numeric values of northlimit, eastlimit, southlimit, and westlimit. + - **`projection`** *(string)*: A string containing the name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. Default: `null`. +- **`Contributor`** *(object)*: A class used to represent the metadata associated with a contributor to a resource. + - **`name`** *(string)*: A string containing the name of the contributor. Default: `null`. + - **`phone`**: A string containing a phone number for the contributor. Default: `null`. + - **Any of** + - *string* + - *null* + - **`address`**: A string containing an address for the contributor. Default: `null`. + - **Any of** + - *string* + - *null* + - **`organization`**: A string containing the name of the organization with which the contributor is affiliated. Default: `null`. + - **Any of** + - *string* + - *null* + - **`email`**: A string containing an email address for the contributor. Default: `null`. + - **Any of** + - *string, format: email* + - *null* + - **`homepage`**: An object containing the URL for website associated with the contributor. Default: `null`. + - **Any of** + - *string, format: uri* + - *null* + - **`hydroshare_user_id`**: An integer containing the Hydroshare user ID. Default: `null`. + - **Any of** + - *integer* + - *null* + - **`identifiers`** *(object)*: A dictionary containing identifier types and URL links to alternative identiers for the contributor. Can contain additional properties. Default: `{}`. + - **Additional properties** *(string, format: uri)* +- **`Creator`** *(object)*: A class used to represent the metadata associated with a creator of a resource. + - **`name`** *(string)*: A string containing the name of the creator. Default: `null`. + - **`phone`**: A string containing a phone number for the creator. Default: `null`. + - **Any of** + - *string* + - *null* + - **`address`**: A string containing an address for the creator. Default: `null`. + - **Any of** + - *string* + - *null* + - **`organization`**: A string containing the name of the organization with which the creator is affiliated. Default: `null`. + - **Any of** + - *string* + - *null* + - **`email`**: A string containing an email address for the creator. Default: `null`. + - **Any of** + - *string, format: email* + - *null* + - **`homepage`**: An object containing the URL for website associated with the creator. Default: `null`. + - **Any of** + - *string, format: uri* + - *null* + - **`creator_order`**: An integer to order creators. Default: `null`. + - **Any of** + - *integer* + - *null* + - **`hydroshare_user_id`**: An integer containing the Hydroshare user ID. Default: `null`. + - **Any of** + - *integer* + - *null* + - **`identifiers`** *(object)*: A dictionary containing identifier types and URL links to alternative identifiers for the creator. Can contain additional properties. Default: `{}`. + - **Additional properties** *(string, format: uri)* +- **`PeriodCoverage`** *(object)*: A class used to represent temporal coverage metadata for a resource or aggregation. + - **`name`** *(string)*: A string containing a name for the time interval. Default: `null`. + - **`start`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the commencement of the time interval. + - **`end`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the termination of the time interval. +- **`PointCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +point location. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["point"]`. Must be: `"point"`. Default: `"point"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`east`** *(number, required)*: The coordinate of the point location measured in the east direction. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`north`** *(number, required)*: The coordinate of the point location measured in the north direction. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`units`** *(string, required)*: The units applying to the unlabelled numeric values of north and east. + - **`projection`** *(string, required)*: The name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. +- **`Publisher`** *(object)*: A class used to represent the metadata associated with the publisher of a resource. + - **`name`** *(string, required)*: A string containing the name of the publisher. + - **`url`** *(string, format: uri, required)*: An object containing a URL that points to the publisher website. +- **`Relation`** *(object)*: A class used to represent the metadata associated with a resource related to the resource being described. + - **`type`**: The type of relationship with the related resource. + - **All of** + - : Refer to *[#/definitions/RelationType](#definitions/RelationType)*. + - **`value`** *(string, required)*: String expressing the Full text citation, URL link for, or description of the related resource. +- **`RelationType`** *(string)*: Must be one of: `["The content of this resource is part of", "This resource includes", "The content of this resource can be executed by", "The content of this resource was created by a related App or software program", "This resource updates and replaces a previous version", "This resource has been replaced by a newer version", "This resource is described by", "This resource conforms to established standard described by", "This resource has a related resource in another format", "This resource is a different format of", "This resource is required by", "This resource requires", "This resource is referenced by", "The content of this resource references", "This resource replaces", "The content of this resource is derived from", "The content of this resource is similar to"]`. +- **`Rights`** *(object)*: A class used to represent the rights statement metadata associated with a resource. + - **`statement`** *(string, required)*: A string containing the text of the license or rights statement. + - **`url`** *(string, format: uri, required)*: An object containing the URL pointing to a description of the license or rights statement. diff --git a/docs/metadata/SingleFileMetadata.md b/docs/metadata/SingleFileMetadata.md new file mode 100644 index 0000000..7a9b03d --- /dev/null +++ b/docs/metadata/SingleFileMetadata.md @@ -0,0 +1,57 @@ +# Single File Aggregation Metadata + +## Properties + +- **`title`** *(string)*: A string containing a descriptive title for the aggregation. Default: `null`. +- **`subjects`** *(array)*: A list of keyword strings expressing the topic of the aggregation. Default: `[]`. + - **Items** *(string)* +- **`language`** *(string)*: The 3-character string for the language in which the metadata and content are expressed. Default: `"eng"`. +- **`additional_metadata`** *(array)*: A dictionary of additional metadata elements expressed as key-value pairs. + - **Items** *(object)*: A key-value pair. Default: `[]`. + - **`key`** *(string)* + - **`value`** *(string)* +- **`spatial_coverage`**: An object containing the geospatial coverage for the aggregation expressed as either a bounding box or point. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PointCoverage](#definitions/PointCoverage)*. + - : Refer to *[#/definitions/BoxCoverage](#definitions/BoxCoverage)*. + - *null* +- **`period_coverage`**: An object containing the temporal coverage for a aggregation expressed as a date range. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PeriodCoverage](#definitions/PeriodCoverage)*. + - *null* +- **`type`**: A string expressing the aggregation type from the list of HydroShare aggregation types. Default: `"Generic"`. + - **All of** + - : Refer to *[#/definitions/AggregationType](#definitions/AggregationType)*. +- **`url`** *(string, format: uri, required)*: An object containing the URL of the aggregation. +- **`rights`**: An object containing information about the rights held in and over the aggregation and the license under which a aggregation is shared. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/Rights](#definitions/Rights)*. + - *null* +## Definitions + +- **`AggregationType`** *(string)*: Must be one of: `["Generic", "FileSet", "GeoRaster", "NetCDF", "GeoFeature", "RefTimeseries", "TimeSeries", "ModelProgram", "ModelInstance", "CSV"]`. +- **`BoxCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +latitude-longitude bounding box. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["box"]`. Must be: `"box"`. Default: `"box"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`northlimit`** *(number, required)*: A floating point value containing the constant coordinate for the northernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`eastlimit`** *(number, required)*: A floating point value containing the constant coordinate for the easternmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`southlimit`** *(number, required)*: A floating point value containing the constant coordinate for the southernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`westlimit`** *(number, required)*: A floating point value containing the constant coordinate for the westernmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`units`** *(string, required)*: A string containing the units applying to the unlabelled numeric values of northlimit, eastlimit, southlimit, and westlimit. + - **`projection`** *(string)*: A string containing the name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. Default: `null`. +- **`PeriodCoverage`** *(object)*: A class used to represent temporal coverage metadata for a resource or aggregation. + - **`name`** *(string)*: A string containing a name for the time interval. Default: `null`. + - **`start`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the commencement of the time interval. + - **`end`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the termination of the time interval. +- **`PointCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +point location. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["point"]`. Must be: `"point"`. Default: `"point"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`east`** *(number, required)*: The coordinate of the point location measured in the east direction. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`north`** *(number, required)*: The coordinate of the point location measured in the north direction. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`units`** *(string, required)*: The units applying to the unlabelled numeric values of north and east. + - **`projection`** *(string, required)*: The name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. +- **`Rights`** *(object)*: A class used to represent the rights statement metadata associated with a resource. + - **`statement`** *(string, required)*: A string containing the text of the license or rights statement. + - **`url`** *(string, format: uri, required)*: An object containing the URL pointing to a description of the license or rights statement. diff --git a/docs/metadata/TimeSeriesMetadata.md b/docs/metadata/TimeSeriesMetadata.md new file mode 100644 index 0000000..6c1e72e --- /dev/null +++ b/docs/metadata/TimeSeriesMetadata.md @@ -0,0 +1,156 @@ +# Time Series Aggregation Metadata + +## Properties + +- **`title`** *(string)*: A string containing a descriptive title for the aggregation. Default: `null`. +- **`subjects`** *(array)*: A list of keyword strings expressing the topic of the aggregation. Default: `[]`. + - **Items** *(string)* +- **`language`** *(string)*: The 3-character string for the language in which the metadata and content are expressed. Default: `"eng"`. +- **`additional_metadata`** *(array)*: A dictionary of additional metadata elements expressed as key-value pairs. + - **Items** *(object)*: A key-value pair. Default: `[]`. + - **`key`** *(string)* + - **`value`** *(string)* +- **`spatial_coverage`**: An object containing the geospatial coverage for the aggregation expressed as either a bounding box or point. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/PointCoverage](#definitions/PointCoverage)*. + - : Refer to *[#/definitions/BoxCoverage](#definitions/BoxCoverage)*. +- **`period_coverage`**: An object containing the temporal coverage for a aggregation expressed as a date range. Default: `null`. + - **All of** + - : Refer to *[#/definitions/PeriodCoverage](#definitions/PeriodCoverage)*. +- **`time_series_results`** *(array)*: A list of time series results contained within the time series aggregation. Default: `[]`. + - **Items**: Refer to *[#/definitions/TimeSeriesResult](#definitions/TimeSeriesResult)*. +- **`abstract`**: A string containing a summary of a aggregation. Default: `null`. + - **Any of** + - *string* + - *null* +- **`type`**: A string expressing the aggregation type from the list of HydroShare aggregation types. Default: `"TimeSeries"`. + - **All of** + - : Refer to *[#/definitions/AggregationType](#definitions/AggregationType)*. +- **`url`** *(string, format: uri, required)*: An object containing the URL of the aggregation. +- **`rights`**: An object containing information about the rights held in and over the aggregation and the license under which a aggregation is shared. Default: `null`. + - **Any of** + - : Refer to *[#/definitions/Rights](#definitions/Rights)*. + - *null* +## Definitions + +- **`AggregationType`** *(string)*: Must be one of: `["Generic", "FileSet", "GeoRaster", "NetCDF", "GeoFeature", "RefTimeseries", "TimeSeries", "ModelProgram", "ModelInstance", "CSV"]`. +- **`BoxCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +latitude-longitude bounding box. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["box"]`. Must be: `"box"`. Default: `"box"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`northlimit`** *(number, required)*: A floating point value containing the constant coordinate for the northernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`eastlimit`** *(number, required)*: A floating point value containing the constant coordinate for the easternmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`southlimit`** *(number, required)*: A floating point value containing the constant coordinate for the southernmost face or edge of the bounding box. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`westlimit`** *(number, required)*: A floating point value containing the constant coordinate for the westernmost face or edge of the bounding box. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`units`** *(string, required)*: A string containing the units applying to the unlabelled numeric values of northlimit, eastlimit, southlimit, and westlimit. + - **`projection`** *(string)*: A string containing the name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. Default: `null`. +- **`PeriodCoverage`** *(object)*: A class used to represent temporal coverage metadata for a resource or aggregation. + - **`name`** *(string)*: A string containing a name for the time interval. Default: `null`. + - **`start`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the commencement of the time interval. + - **`end`** *(string, format: date-time, required)*: A datetime object containing the instant corresponding to the termination of the time interval. +- **`PointCoverage`** *(object)*: A class used to represent geographic coverage metadata for a resource or aggregation expressed as a +point location. + - **`type`** *(string)*: A string containing the type of geographic coverage. Must be one of: `["point"]`. Must be: `"point"`. Default: `"point"`. + - **`name`** *(string)*: A string containing a name for the place associated with the geographic coverage. Default: `null`. + - **`east`** *(number, required)*: The coordinate of the point location measured in the east direction. Exclusive minimum: `-180.0`. Exclusive maximum: `180.0`. + - **`north`** *(number, required)*: The coordinate of the point location measured in the north direction. Exclusive minimum: `-90.0`. Exclusive maximum: `90.0`. + - **`units`** *(string, required)*: The units applying to the unlabelled numeric values of north and east. + - **`projection`** *(string, required)*: The name of the projection used with any parameters required, such as ellipsoid parameters, datum, standard parallels and meridians, zone, etc. +- **`ProcessingLevel`** *(object)*: A class used to represent the metadata associated with a processing level contained within a time series +aggregation. + - **`processing_level_code`** *(string, required)*: A string containing a short but meaningful code identifying the processing level. + - **`definition`**: A string containing a description of the processing level. Default: `null`. + - **Any of** + - *string* + - *null* + - **`explanation`**: A string containing a more extensive explanation of the meaning of the processing level. Default: `null`. + - **Any of** + - *string* + - *null* +- **`Rights`** *(object)*: A class used to represent the rights statement metadata associated with a resource. + - **`statement`** *(string, required)*: A string containing the text of the license or rights statement. + - **`url`** *(string, format: uri, required)*: An object containing the URL pointing to a description of the license or rights statement. +- **`TimeSeriesMethod`** *(object)*: A class used to represent the metadata associated with a method contained within a time series aggregation. + - **`method_code`** *(string, required)*: A string containing a short but meaningful code identifying the method. + - **`method_name`** *(string, required)*: A string containing the name of the method. + - **`method_type`** *(string, required)*: A string containing the method type from the ODM2 Method Type controlled vocabulary. + - **`method_description`**: A string containing a detailed description of the method. Default: `null`. + - **Any of** + - *string* + - *null* + - **`method_link`**: An object containing a URL that points to a website having a detailed description of the method. Default: `null`. + - **Any of** + - *string, format: uri* + - *null* +- **`TimeSeriesResult`** *(object)*: A class used to represent the metadata associated with a time series result within a time series aggregation. + - **`series_id`** *(string, required)*: A string containing a unique identifier for the time series result. + - **`unit`**: An object containing the units in which the values of the time series are expressed. Default: `null`. + - **All of** + - : Refer to *[#/definitions/Unit](#definitions/Unit)*. + - **`status`**: A string containing the status of the time series result chosen from the ODM2 Status controlled vocabulary. Default: `null`. + - **Any of** + - *string* + - *null* + - **`sample_medium`** *(string, required)*: A string containing the sample medium in which the time series result was measured chosen from the ODM2 Medium controlled vocabulary. + - **`value_count`** *(integer, required)*: An integer value containing the number of data values contained within the time series result. + - **`aggregation_statistic`** *(string, required)*: A string containing the aggregation statistic associated with the values of the time series result chosen from the ODM2 Aggregation Statistic controlled vocabulary. + - **`series_label`** *(string)*: A string containing a label for the time series result. Default: `null`. + - **`site`**: An object containing metadata about the site at which the time series result was created. + - **All of** + - : Refer to *[#/definitions/TimeSeriesSite](#definitions/TimeSeriesSite)*. + - **`variable`**: An object containing metadata about the observed variable associated with the time series result values. + - **All of** + - : Refer to *[#/definitions/TimeSeriesVariable](#definitions/TimeSeriesVariable)*. + - **`method`**: An object containing metadata about the method used to produce the time series result values. + - **All of** + - : Refer to *[#/definitions/TimeSeriesMethod](#definitions/TimeSeriesMethod)*. + - **`processing_level`**: An object containing metadata about the processing level or level of quality control to which the time series result values have been subjected. + - **All of** + - : Refer to *[#/definitions/ProcessingLevel](#definitions/ProcessingLevel)*. + - **`utc_offset`**: A floating point value that represents the time offset from UTC time in hours associated with the time series result value timestamps. Default: `null`. + - **Any of** + - *number* + - *null* +- **`TimeSeriesSite`** *(object)*: A class used to represent the metadata associated with a site contained within a time series aggregation. + - **`site_code`** *(string, required)*: A string containing a short but meaningful code identifying the site. + - **`site_name`**: A string containing the name of the site. Default: `null`. + - **Any of** + - *string* + - *null* + - **`elevation_m`**: A floating point number expressing the elevation of the site in meters. Default: `null`. + - **Any of** + - *number* + - *null* + - **`elevation_datum`**: A string expressing the elevation datum used from the ODM2 Elevation Datum controlled vocabulary. Default: `null`. + - **Any of** + - *string* + - *null* + - **`site_type`**: A string containing the type of site from the ODM2 Sampling Feature Type controlled vocabulary . Default: `null`. + - **Any of** + - *string* + - *null* + - **`latitude`**: A floating point value expressing the latitude coordinate of the site. Default: `null`. + - **Any of** + - *number* + - *null* + - **`longitude`**: A floating point value expressing the longitude coordinate of the site. Default: `null`. + - **Any of** + - *number* + - *null* +- **`TimeSeriesVariable`** *(object)*: A class used to represent the metadata associated with a variable contained within a time series aggregation. + - **`variable_code`** *(string, required)*: A string containing a short but meaningful code that identifies a variable. + - **`variable_name`** *(string, required)*: A string containing the name of the variable. + - **`variable_type`** *(string, required)*: A string containing the type of variable from the ODM2 VariableType controlled vocabulary. + - **`no_data_value`** *(integer, required)*: The NoData value for the variable. + - **`variable_definition`**: A string containing a detailed description of the variable. Default: `null`. + - **Any of** + - *string* + - *null* + - **`speciation`**: A string containing the speciation for the variable from the ODM2 Speciation control vocabulary. Default: `null`. + - **Any of** + - *string* + - *null* +- **`Unit`** *(object)*: A class used to represent the metadata associated with a dimensional unit within a time series aggregation. + - **`type`** *(string, required)*: A string containing the type of unit from the ODM2 Units Type controlled vocabulary. + - **`name`** *(string, required)*: A string containing the name of the unit from the ODM2 units list. + - **`abbreviation`** *(string, required)*: A string containing an abbreviation for the unit from the ODM2 units list. From 3fcccb7970ba4b08c632c5f28b685b8c064ea286 Mon Sep 17 00:00:00 2001 From: pkdash Date: Mon, 18 Nov 2024 14:01:59 -0500 Subject: [PATCH 6/7] [#79] deleting the old metadata model markdown files --- docs/metadata/CSV.md | 3 --- docs/metadata/FileSet.md | 3 --- docs/metadata/GeographicFeature.md | 3 --- docs/metadata/GeographicRaster.md | 3 --- docs/metadata/ModelInstance.md | 3 --- docs/metadata/ModelProgram.md | 3 --- docs/metadata/Multidimensional.md | 3 --- docs/metadata/ReferencedTimeSeries.md | 3 --- docs/metadata/SingleFile.md | 3 --- docs/metadata/TimeSeries.md | 3 --- 10 files changed, 30 deletions(-) delete mode 100644 docs/metadata/CSV.md delete mode 100644 docs/metadata/FileSet.md delete mode 100644 docs/metadata/GeographicFeature.md delete mode 100644 docs/metadata/GeographicRaster.md delete mode 100644 docs/metadata/ModelInstance.md delete mode 100644 docs/metadata/ModelProgram.md delete mode 100644 docs/metadata/Multidimensional.md delete mode 100644 docs/metadata/ReferencedTimeSeries.md delete mode 100644 docs/metadata/SingleFile.md delete mode 100644 docs/metadata/TimeSeries.md diff --git a/docs/metadata/CSV.md b/docs/metadata/CSV.md deleted file mode 100644 index a92aad9..0000000 --- a/docs/metadata/CSV.md +++ /dev/null @@ -1,3 +0,0 @@ -::: hsmodels.schemas.aggregations.CSVFileMetadata -::: hsmodels.schemas.aggregations.CSVFileMetadataIn -::: hsmodels.schemas.aggregations.BaseAggregationMetadataIn diff --git a/docs/metadata/FileSet.md b/docs/metadata/FileSet.md deleted file mode 100644 index 8fe3060..0000000 --- a/docs/metadata/FileSet.md +++ /dev/null @@ -1,3 +0,0 @@ -::: hsmodels.schemas.aggregations.FileSetMetadata -::: hsmodels.schemas.aggregations.FileSetMetadataIn -::: hsmodels.schemas.aggregations.BaseAggregationMetadataIn diff --git a/docs/metadata/GeographicFeature.md b/docs/metadata/GeographicFeature.md deleted file mode 100644 index 8cb238c..0000000 --- a/docs/metadata/GeographicFeature.md +++ /dev/null @@ -1,3 +0,0 @@ -::: hsmodels.schemas.aggregations.GeographicFeatureMetadata -::: hsmodels.schemas.aggregations.GeographicFeatureMetadataIn -::: hsmodels.schemas.aggregations.BaseAggregationMetadataIn diff --git a/docs/metadata/GeographicRaster.md b/docs/metadata/GeographicRaster.md deleted file mode 100644 index a5e734c..0000000 --- a/docs/metadata/GeographicRaster.md +++ /dev/null @@ -1,3 +0,0 @@ -::: hsmodels.schemas.aggregations.GeographicRasterMetadata -::: hsmodels.schemas.aggregations.GeographicRasterMetadataIn -::: hsmodels.schemas.aggregations.BaseAggregationMetadataIn diff --git a/docs/metadata/ModelInstance.md b/docs/metadata/ModelInstance.md deleted file mode 100644 index ac51b4c..0000000 --- a/docs/metadata/ModelInstance.md +++ /dev/null @@ -1,3 +0,0 @@ -::: hsmodels.schemas.aggregations.ModelInstanceMetadata -::: hsmodels.schemas.aggregations.ModelInstanceMetadataIn -::: hsmodels.schemas.aggregations.BaseAggregationMetadataIn diff --git a/docs/metadata/ModelProgram.md b/docs/metadata/ModelProgram.md deleted file mode 100644 index b16795f..0000000 --- a/docs/metadata/ModelProgram.md +++ /dev/null @@ -1,3 +0,0 @@ -::: hsmodels.schemas.aggregations.ModelProgramMetadata -::: hsmodels.schemas.aggregations.ModelProgramMetadataIn -::: hsmodels.schemas.aggregations.BaseAggregationMetadataIn diff --git a/docs/metadata/Multidimensional.md b/docs/metadata/Multidimensional.md deleted file mode 100644 index 034047d..0000000 --- a/docs/metadata/Multidimensional.md +++ /dev/null @@ -1,3 +0,0 @@ -::: hsmodels.schemas.aggregations.MultidimensionalMetadata -::: hsmodels.schemas.aggregations.MultidimensionalMetadataIn -::: hsmodels.schemas.aggregations.BaseAggregationMetadataIn diff --git a/docs/metadata/ReferencedTimeSeries.md b/docs/metadata/ReferencedTimeSeries.md deleted file mode 100644 index 07abe23..0000000 --- a/docs/metadata/ReferencedTimeSeries.md +++ /dev/null @@ -1,3 +0,0 @@ -::: hsmodels.schemas.aggregations.ReferencedTimeSeriesMetadata -::: hsmodels.schemas.aggregations.ReferencedTimeSeriesMetadataIn -::: hsmodels.schemas.aggregations.BaseAggregationMetadataIn diff --git a/docs/metadata/SingleFile.md b/docs/metadata/SingleFile.md deleted file mode 100644 index 8a0d881..0000000 --- a/docs/metadata/SingleFile.md +++ /dev/null @@ -1,3 +0,0 @@ -::: hsmodels.schemas.aggregations.SingleFileMetadata -::: hsmodels.schemas.aggregations.SingleFileMetadataIn -::: hsmodels.schemas.aggregations.BaseAggregationMetadataIn diff --git a/docs/metadata/TimeSeries.md b/docs/metadata/TimeSeries.md deleted file mode 100644 index 559b435..0000000 --- a/docs/metadata/TimeSeries.md +++ /dev/null @@ -1,3 +0,0 @@ -::: hsmodels.schemas.aggregations.TimeSeriesMetadata -::: hsmodels.schemas.aggregations.TimeSeriesMetadataIn -::: hsmodels.schemas.aggregations.BaseAggregationMetadataIn From 93c8508808ae9d53e1bae7b08b1d5230a39a8cbe Mon Sep 17 00:00:00 2001 From: pkdash Date: Thu, 21 Nov 2024 17:50:37 -0500 Subject: [PATCH 7/7] [#79] adding required dependencies for development --- setup.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 3586921..3290d1d 100644 --- a/setup.py +++ b/setup.py @@ -3,6 +3,9 @@ README = (pathlib.Path(__file__).parent / "README.md").read_text() +extra_deps = ["pandas", "netCDF4", "xarray", "rasterio", "fiona"] +dev_deps = ["pytest", "pytest-xdist", "pytest-cov", "mkdocs", "mknotebooks", "mkdocstrings", "mkdocstrings-python"] + setup( name='hsclient', version='1.0.4', @@ -18,7 +21,8 @@ "xarray": ["netCDF4", "xarray"], "rasterio": ["rasterio"], "fiona": ["fiona"], - "all": ["pandas", "netCDF4", "xarray", "rasterio", "fiona"], + "all": extra_deps, + "dev": extra_deps + dev_deps, }, url='https://github.com/hydroshare/hsclient', license='MIT',