From 50a47f6532e9b50d590868737b96426906df7b8c Mon Sep 17 00:00:00 2001 From: Johnathan Date: Tue, 10 Dec 2024 14:37:15 -0700 Subject: [PATCH 1/2] Prepare Release v2.19.0 (#353) * Update version * Add sbJson External Contact Identifiers Reader and writer. Reader looks for orcId and maps to external identifier. Writer looks for external identifier with namespace ORCID and maps associated id to orcId. Both only work for contact type of person, disabled for organizations. * Add Data Quality Reports Array * Fix internal metadata object * Cleanup & Fix * Fix Data Quality Reader - mdJson * Cleanup * Fix Data Quality * Implement Data Quality Report * Implement Coverage Result - mdJson writer * Fix & Cleanup Data Quality * Fix Spatial Representation * Fix HTML citation Writer * Cleanup * Update Version * Update Version * Fix Internal Metadata Object - Data Quality Coverage Result * Fix Refereence Typo * Add Data Quality Link * Handle Empty Citation * Improve Data Quality Add Reports Section * Implement Data Quality Reports * Add Null Checks * Handle nil and empty * Handle nil & empty * New Generator newRangeElementDescription * close out function * fix reader to recognize rangeElement key from mdJson file (#317) * fix key retrieval for Html_RangeElementDescription writer class (#318) * fix key retrieval for Html_RangeElementDescription writer class * fix br in rangeElement * fix rangeElementDescription class for iso-3 (#321) * add contact - external identifiers * Fix Simple HTML and mdJson hash objects rangeElements -> rangeElement * Fix misplaced br tag * make changes based on feedback found in release v2.18.5 branch (#325) * make changes based on feedback found in release v2.18.5 branch * Fix evaluationMethod in mdJson * remove extra argument * Revert Changes * Reorder and Add derivedElementReport * Add Report Fields type standaloneQualityReportDetails * Change dateTime to array * Revert * Add standaloneQualityReportDetails * Add derivedElementReport * add posacc w hori and vert tags. fix key retrieval from qualityMeasure (#327) * New GitHub Test Action (#328) This merge is not intended to have the tests passing yet, just adding the test action workflow file. * Bugfix/unit tests (#329) * Update Internal Object * Fix Data Quality Order * Fix Data Quality Order * Fixing Legal Constraint Order * Fix Allocation Order * Fix Funding Order * Fix Data Quality Order * Update Data Quality Object * And standaloneQualityReportDetails to mdJson Reader * Fix Order * Fix Standalone Quality Report * Update Version for mdJson-schemas * Add Quality Result File to Coverage Result * Update Gemfile.lock * Update nokogiri * Rename standaloneQualityReport.rb Need to fix naming case. * Fix File Name * Fix Typo * Fix Internal Object resultContent --> resultContentDescription and { } not [ ] * Completed Feature: Coverage Result (#330) * Add Quality Result File to Coverage Result * add resultFile to coverageResult in mdJson reader (#331) * add resultFile to coverageResult in mdJson reader * remove pp lib * revert files * generate resourceFormat file and add to CR. fix metadata object in resultFile * fix internal metadata obj in resultFile * fix qualityResultFile class and reference * revert files * fix relative import * remove writer changes * Remove module_resourceFormat * Injection/md json writer cr (#332) * rename to qualityResultFile * add format and QualityResultFile classes to coverageResult in writer * revert files * add qualityResultFile * Fixed Names fileName was repeated in place of fileDescription and fileType. * Fix Result Content resultContent -> resultContentDescription Uses coverageDescription * Change nil? to empty? --------- Co-authored-by: Johnathan Aspinwall * Injection/html writer cr (#336) * add qualityMeasure to mdJson reader * fix qualityMeasure key * add resultFile class to dataQualityReport html writer * Fix Quality Measure Identifier needs to be built not directly assigned. * Improve Quality Measure Name and description will only be populated if they exist. --------- Co-authored-by: Jonathan Oliveros * Injection/simple html writer cr (#335) * add dataQualityReport and resultFile classes * fix file format comment * reference resultFile class * change details to div * change details to div in dataQualityReport * change module to simple_html. Add nil or empty to citation within identifier. * add simple_html test * Add Coverage Result New class_qualityResultFile for iso19115-3 writer. * Fix Data Quality Report Fixed the order. Fixed quality measure. * Fix Quality Measure * Fix Quality Measure * Fix Evaluation Method * New Conformance Result ISO 19115-3 Writer --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> Co-authored-by: Jonathan Oliveros * Increment Minor Version * Update Version * Revert Changes * Revert Changes * Revert Changes * Revert Changes * Remove nil Check Including the check for nil can actually cause errors. If there is an error then the problem is somewhere else. * Remove nil Check Should not check for nil, if it is nil then there's a problem with the reader. * Revert Changes * Update mdCodes Version * Update Gemfile.lock * Fix Data Quality fgdc reader needed some refactoring. Added/fixed checks for nil/empty. * Fix name -> nameOfMeasure * Increment Patch Version * Fix FGDC Reader quantitativeResult was being set to the qualityMeasure and using the qualityMeasure object. Fixed to use the correct object and location. * Fix Data Quality (#342) * Increment Patch Version * Bugfixes for Simple HTML (#343) * change divs to headers (#337) * change divs to headers * fix key within qualityMeasure. change to header tags * Simple HTML Enhancements (#339) * add geographicExtent to simple_html writer (#338) * add geographicExtent to simple_html writer * Fix Data Quality Fixed checks for nil and empty. Fixed tags. Fixed structures. * Fix Data Quality * Remove bodyScript and other js * Fix Typo referenceDocument -> referenceDocuments --------- Co-authored-by: Johnathan Aspinwall * add bookmark span tags to headers (#340) Co-authored-by: Johnathan Aspinwall * Increment Patch Version * Increment Minor Version --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> * Increment Patch Version * Fix Data Quality * Increment Patch Version * Update mdJson-schemas version mdJson-schemas -> 2.8.3 * Increment Patch Version * Update adiwg-mdtranslator gem dependencies * Update adiwg-mdcodes gem dependency to version 2.9.1 * Disable test_mdJson_reader_schema_version_future_minor method * Update mdtranslator version to 2.19.0-beta.6 * Update adiwg-mdcodes gem dependency to version 2.9.1 * Fix data quality report type Remove DQ_ prefix. * Update mdtranslator version to 2.19.0-beta.7 * Update adiwg-mdjson_schemas and adiwg-mdcodes gem dependencies * Update adiwg-mdjson_schemas and adiwg-mdcodes gem dependencies * Release Version 2.20.0 (#346) * change divs to headers (#337) * change divs to headers * fix key within qualityMeasure. change to header tags * Simple HTML Enhancements (#339) * add geographicExtent to simple_html writer (#338) * add geographicExtent to simple_html writer * Fix Data Quality Fixed checks for nil and empty. Fixed tags. Fixed structures. * Fix Data Quality * Remove bodyScript and other js * Fix Typo referenceDocument -> referenceDocuments --------- Co-authored-by: Johnathan Aspinwall * add bookmark span tags to headers (#340) Co-authored-by: Johnathan Aspinwall * Increment Patch Version * Increment Minor Version --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> * Feature/simple html (#345) * add geographicExtent to simple_html writer (#338) * add geographicExtent to simple_html writer * Fix Data Quality Fixed checks for nil and empty. Fixed tags. Fixed structures. * Fix Data Quality * Remove bodyScript and other js * Fix Typo referenceDocument -> referenceDocuments --------- Co-authored-by: Johnathan Aspinwall * add bookmark span tags to headers (#340) Co-authored-by: Johnathan Aspinwall * Increment Patch Version * Increment Minor Version * Bugfixes for Simple HTML (#343) * change divs to headers (#337) * change divs to headers * fix key within qualityMeasure. change to header tags * Simple HTML Enhancements (#339) * add geographicExtent to simple_html writer (#338) * add geographicExtent to simple_html writer * Fix Data Quality Fixed checks for nil and empty. Fixed tags. Fixed structures. * Fix Data Quality * Remove bodyScript and other js * Fix Typo referenceDocument -> referenceDocuments --------- Co-authored-by: Johnathan Aspinwall * add bookmark span tags to headers (#340) Co-authored-by: Johnathan Aspinwall * Increment Patch Version * Increment Minor Version --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> * Increment Patch Version * Fix Data Quality * Increment Patch Version * simple_html output formatting (#344) --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> * Feature/fgdc reader lineage process (#347) * add references to process * redirect citation to processSteps * revert to lineageCitation * Fix newLineage Order dataSources after processSteps * Moving Methodology to Process Steps * Restore hResourceInfo Variable * Commented Keyword - Method Required Warning * Upgrade adiwg-mdjson_schemas adiwg-mdjson_schemas -> 2.9.0 * Update Gemfile.lock * commented out mdJson reader minor version test * Refactor lineage module and process module. Updated tests. * Add comment about test being disabled. * Add comment to explain why code is disabled --------- Co-authored-by: Johnathan Aspinwall * Update 19115-3 test data (#334) * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * upate attributeGroup * update 19115_3_citation.xml * update 19115_3_constraintCommon.xml * update 19115_3_constraintCommon.xml and 19115_3_citation.xml * update 19115_3_dataIdentification.xml * update 19115_3_leProcessStep.xml * update 19115_3_maintenance.xml * update 19115_3_mdBand.xml * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update remoteSchema URL in class_mdMetadata.rb * Add fix for 19115-3 writer in class_rangeElementDescription and class_sampleDimension * fix unit definition identifiers in test cases * fix attributeGroup test data * Refactor algorithm element to LE_Processing in 19115_3_leProcessStep.xml and 19115_3_processing.xml * Refactor algorithm element to LE_Processing in 19115_3_processing.xml * Remove underscore from id's in iso19115-3 writer tests * Update organization external identifier namespace from ORCID to ROR Remove duplicate external contact identifier in iso19115-3 writer * Update to ROR on feature xml and proper capitalization of multiPoint * Removed partyIdentifier duplicate in expected organization output * Remove duplicate partyIdentifier in expected constraintCommon xml * Fix Spacing * Fix spacing and remove duplicate partyIdentifier in expected constraintCommon xml --------- Co-authored-by: Johnathan Aspinwall Co-authored-by: Jonathan Oliveros * Fix version comparison bug in mdJson_reader.rb (#356) * Fix version comparison bug in mdJson_reader.rb * Fix version comparison logic * Update adiwg-mdtranslator version to 2.20.0-beta.0 * Update adiwg-mdtranslator version to 2.19.0-beta.8 --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> Co-authored-by: Chris MacDermaid <64213093+chris-macdermaid@users.noreply.github.com> Co-authored-by: Jonathan Oliveros * Update adiwg-mdjson_schemas and adiwg-mdcodes gem dependencies * Update adiwg-mdcodes gem dependency to version 2.9.3.pre.beta.3 * Update adiwg-mdjson_schemas gem dependency to version 2.9.2.pre.beta.19 * Update mdtranslator version to 2.19.0-beta.9 * Update adiwg-mdtranslator version to 2.19.0.pre.beta.9 * Fix data quality report type * Update adiwg-mdtranslator version to 2.19.0.pre.beta.10 * Fix evaluationMethodType in class_dataQualityReport.rb * Update adiwg-mdjson_schemas and adiwg-mdcodes gem dependencies to latest versions * Update adiwg-mdtranslator version to 2.19.0.pre.beta.11 * Update adiwg-mdtranslator and adiwg-mdjson_schemas gem dependencies to latest versions * Fix evaluationMethodType in class_dataQualityReport.rb * Fix data quality report type * Update adiwg-mdtranslator version to 2.19.0.pre.beta.13 * Update adiwg-mdtranslator and adiwg-mdjson_schemas gem dependencies to latest versions * Update adiwg-mdtranslator and adiwg-mdjson_schemas gem dependencies to latest versions * Update adiwg-mdtranslator and adiwg-mdjson_schemas gem dependencies to latest versions * Fix data quality report type * Fix data quality report type * Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.15 * chore: Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.15 * Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.16 * Update module files to include 'name' attribute * Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.17 * Fix data quality report summary display * Refactor data quality report type display * Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.18 * Refactor mdJson_onlineResource module to include 'protocol' attribute * Refactor mdJson_resourceInfo module to include 'credit' attribute * Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.18 * Refactor data quality report type display * chore: Update versions mdJson-schemas to v2.9.3-beta.3 mdCodes to v2.9.4-beta.4 * chore: Increment beta version * Revert Data Quality Report Types * Refactor sbJson_citation.rb 1. If the user provided Other Cit Details, then use that 2. If Other Cit Details is null, then provide a basic citation of: author1, author2, ..., Citation Title * Refactor data quality report type display and add system identifier support * Refactor data quality report logic handling * Refactor data quality reports * Refactor data quality reports * chore: Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.21 * Refactor data quality reports * chore: Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.22 * Refactor XML date format in test data files * Refactor data identification to handle distribution liability statements * chore: Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.25 * Update adiwg-mdtranslator gem dependency to version 2.19.0 * Add 'Attribute Accuracy Explanation' text in the evaluation method name field for data quality. * Refactor data quality reports to handle multiple results and different report types * Fix altmax to use maximumAltitude * Refactor Positional Accuracy Reports * fix: Unit test for maximum altitude * Refactor unit test for positional accuracy * feat: Add metadata extension section for taxonomy info. * feat: Set conditional for metadata extension taxonomy. * feat: Remove metadata extension for taxonomy information * Fix: Replaced div with h5 as needed * fix: Citation Other Details * Refactor class_timePeriod.rb for improved date handling * chore: Add note to move object out of function * chore: Refactor unit tests to match modifications to dateTime in timePeriod * chore: Update mdtranslator version to 2.19.0-beta.31 * chore: Update adiwg-mdtranslator version to 2.19.0.pre.beta.31 --------- Co-authored-by: Jonathan Oliveros Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> Co-authored-by: Chris MacDermaid <64213093+chris-macdermaid@users.noreply.github.com> --- .github/workflows/test.yml | 14 + Gemfile.lock | 20 +- adiwg-mdtranslator.gemspec | 6 +- .../internal/internal_metadata_obj.rb | 42 +- .../fgdc/modules/module_dataQuality.rb | 183 + .../readers/fgdc/modules/module_fgdc.rb | 4 +- .../readers/fgdc/modules/module_keyword.rb | 16 +- .../readers/fgdc/modules/module_lineage.rb | 25 +- .../fgdc/modules/module_methodology.rb | 60 +- .../readers/fgdc/modules/module_process.rb | 14 +- .../readers/fgdc/modules/module_quality.rb | 181 - .../readers/mdJson/mdJson_reader.rb | 4 +- .../modules/module_conformanceResult.rb | 7 +- .../mdJson/modules/module_coverageResult.rb | 19 +- .../mdJson/modules/module_dataQuality.rb | 15 +- .../modules/module_dataQualityReport.rb | 24 +- .../modules/module_descriptiveResult.rb | 4 + .../mdJson/modules/module_evaluationMethod.rb | 2 +- .../mdJson/modules/module_legalConstraint.rb | 16 +- .../mdJson/modules/module_qualityMeasure.rb | 34 + .../modules/module_qualityResultFile.rb | 72 + .../modules/module_quantitativeResult.rb | 6 +- .../modules/module_rangeElementDescription.rb | 4 +- .../readers/sbJson/modules/module_contact.rb | 13 + lib/adiwg/mdtranslator/version.rb | 2 +- .../writers/fgdc/classes/class_dataQuality.rb | 149 + .../writers/fgdc/classes/class_fgdc.rb | 6 +- .../writers/fgdc/classes/class_quality.rb | 127 - .../fgdc/classes/class_spatialDomain.rb | 2 +- .../writers/html/sections/html_body.rb | 6 +- .../writers/html/sections/html_dataQuality.rb | 73 +- .../html/sections/html_dataQualityReport.rb | 413 + .../sections/html_rangeElementDescription.rb | 4 +- .../writers/html/sections/html_resultFile.rb | 60 + .../classes/class_dataIdentification.rb | 29 + .../classes/class_dataQualityReport.rb | 251 +- .../classes/class_enumerationList.rb | 52 + .../iso19115_3/classes/class_extension.rb | 208 + .../iso19115_3/classes/class_gcoDateTime.rb | 11 +- .../iso19115_3/classes/class_mdMetadata.rb | 29 +- .../iso19115_3/classes/class_organization.rb | 20 +- .../classes/class_qualityResultFile.rb | 55 + .../classes/class_rangeElementDescription.rb | 27 +- .../classes/class_sampleDimension.rb | 12 +- .../iso19115_3/classes/class_timePeriod.rb | 8 +- .../writers/iso19115_3/iso19115_3_writer.rb | 2 + .../mdJson/sections/mdJson_allocation.rb | 2 +- .../sections/mdJson_conformanceResult.rb | 11 +- .../mdJson/sections/mdJson_coverageResult.rb | 31 + .../mdJson/sections/mdJson_dataQuality.rb | 4 +- .../sections/mdJson_dataQualityReport.rb | 22 +- .../sections/mdJson_descriptiveResult.rb | 7 +- .../writers/mdJson/sections/mdJson_funding.rb | 4 +- .../mdJson/sections/mdJson_legalConstraint.rb | 2 +- .../mdJson/sections/mdJson_metadata.rb | 2 +- .../mdJson/sections/mdJson_onlineResource.rb | 2 +- .../mdJson/sections/mdJson_qualityMeasure.rb | 7 +- .../sections/mdJson_qualityResultFile.rb | 23 + .../sections/mdJson_quantitativeResult.rb | 11 +- .../mdJson/sections/mdJson_resourceInfo.rb | 2 +- .../mdJson_standaloneQualityReport.rb | 31 + .../sbJson/sections/sbJson_citation.rb | 35 +- .../writers/sbJson/sections/sbJson_contact.rb | 10 + .../sections/html_additionalDocumentation.rb | 2 +- .../simple_html/sections/html_algorithm.rb | 2 +- .../simple_html/sections/html_allocation.rb | 4 +- .../sections/html_associatedResource.rb | 4 +- .../simple_html/sections/html_attribute.rb | 4 +- .../sections/html_attributeGroup.rb | 2 +- .../writers/simple_html/sections/html_body.rb | 46 +- .../simple_html/sections/html_bodyScript.js | 317 - .../simple_html/sections/html_citation.rb | 26 +- .../simple_html/sections/html_classedData.rb | 2 +- .../simple_html/sections/html_constraint.rb | 10 +- .../simple_html/sections/html_contact.rb | 42 +- .../simple_html/sections/html_coverageInfo.rb | 6 +- .../sections/html_dataDictionary.rb | 10 +- .../simple_html/sections/html_dataQuality.rb | 43 +- .../sections/html_dataQualityReport.rb | 385 + .../simple_html/sections/html_distribution.rb | 2 +- .../simple_html/sections/html_distributor.rb | 6 +- .../simple_html/sections/html_domain.rb | 6 +- .../simple_html/sections/html_domainItem.rb | 2 +- .../simple_html/sections/html_entity.rb | 10 +- .../sections/html_entityAttribute.rb | 6 +- .../simple_html/sections/html_extent.rb | 6 +- .../simple_html/sections/html_feature.rb | 10 +- .../sections/html_featureCollection.rb | 8 +- .../sections/html_featureProperties.rb | 2 +- .../simple_html/sections/html_format.rb | 2 +- .../simple_html/sections/html_funding.rb | 2 +- .../sections/html_geodeticParameters.rb | 4 +- .../sections/html_geographicElement.rb | 8 +- .../sections/html_geographicExtent.rb | 20 +- .../simple_html/sections/html_geologicAge.rb | 2 +- .../sections/html_geometryCollection.rb | 8 +- .../sections/html_geometryObject.rb | 4 +- .../html_georectifiedRepresentation.rb | 4 +- .../html_georeferenceableRepresentation.rb | 6 +- .../simple_html/sections/html_graphic.rb | 4 +- .../sections/html_gridRepresentation.rb | 4 +- .../simple_html/sections/html_identifier.rb | 2 +- .../simple_html/sections/html_imageInfo.rb | 2 +- .../simple_html/sections/html_keyword.rb | 30 +- .../simple_html/sections/html_lineage.rb | 8 +- .../simple_html/sections/html_maintenance.rb | 8 +- .../simple_html/sections/html_medium.rb | 4 +- .../simple_html/sections/html_metadataInfo.rb | 27 +- .../sections/html_metadataRepository.rb | 2 +- .../simple_html/sections/html_processStep.rb | 2 +- .../simple_html/sections/html_processing.rb | 6 +- .../sections/html_rangeElementDescription.rb | 4 +- .../sections/html_releasability.rb | 2 +- .../simple_html/sections/html_resourceInfo.rb | 44 +- .../sections/html_responsibility.rb | 4 +- .../simple_html/sections/html_resultFile.rb | 60 + .../simple_html/sections/html_scope.rb | 24 +- .../simple_html/sections/html_source.rb | 4 +- .../sections/html_spatialRepresentation.rb | 8 +- .../simple_html/sections/html_taxonomy.rb | 4 +- .../simple_html/sections/html_timeInstant.rb | 2 +- .../simple_html/sections/html_timePeriod.rb | 14 +- .../sections/html_transferOption.rb | 4 +- .../simple_html/sections/html_usage.rb | 10 +- .../sections/html_vectorRepresentation.rb | 4 +- test/helpers/mdJson_hash_functions.rb | 123 +- test/helpers/mdJson_hash_objects.rb | 33 +- test/readers/fgdc/tc_fgdc_lineage.rb | 49 +- test/readers/fgdc/tc_fgdc_process.rb | 15 +- test/readers/fgdc/tc_fgdc_quality.rb | 15 +- test/writers/fgdc/testData/spatialDomain.xml | 2 +- .../iso19115-3/tc_19115_3_mdMetadata.rb | 2 +- .../iso19115-3/tc_19115_3_temporalExtent.rb | 2 +- .../iso19115-3/tc_19115_3_timePeriod.rb | 2 +- .../testData/19115_3_associatedResource.xml | 6 +- .../iso19115-3/testData/19115_3_attribute.xml | 96 +- .../testData/19115_3_attributeGroup.xml | 32 +- .../iso19115-3/testData/19115_3_citation.xml | 93 +- .../testData/19115_3_constraintCommon.xml | 22 - .../iso19115-3/testData/19115_3_contact.xml | 11 - .../testData/19115_3_dataIdentification.xml | 91 +- .../iso19115-3/testData/19115_3_date.xml | 6 +- .../testData/19115_3_distributor.xml | 6 +- .../iso19115-3/testData/19115_3_extent.xml | 2 +- .../iso19115-3/testData/19115_3_feature.xml | 30 +- .../iso19115-3/testData/19115_3_format.xml | 4 +- .../testData/19115_3_geographicElement.xml | 32 +- .../testData/19115_3_geographicExtent.xml | 4 +- .../testData/19115_3_geometryCollection.xml | 8 +- .../testData/19115_3_georectified.xml | 24 +- .../testData/19115_3_identifier.xml | 2 +- .../iso19115-3/testData/19115_3_keyword.xml | 4 +- .../testData/19115_3_leProcessStep.xml | 36 +- .../iso19115-3/testData/19115_3_leSource.xml | 4 +- .../testData/19115_3_liProcessStep.xml | 22 +- .../iso19115-3/testData/19115_3_lineage.xml | 12 +- .../testData/19115_3_maintenance.xml | 17 +- .../iso19115-3/testData/19115_3_mdBand.xml | 92 +- .../testData/19115_3_mdMetadata.xml | 12 +- .../iso19115-3/testData/19115_3_miBand.xml | 64 +- .../testData/19115_3_organization.xml | 33 - .../testData/19115_3_processing.xml | 6 +- .../testData/19115_3_referenceSystem.xml | 2 +- .../testData/19115_3_releasability.xml | 22 - .../testData/19115_3_responsibility.xml | 15 +- .../testData/19115_3_sampleDimension.xml | 58 +- .../19115_3_spatialRepresentation.xml | 6 +- .../19115_3_spatialRepresentation_scope.xml | 6 +- .../testData/19115_3_temporalExtent.xml | 2 +- .../testData/19115_3_timeInstant.xml | 2 +- .../testData/19115_3_timePeriod.xml | 8 +- .../testData/19115_3_transferOptions.xml | 6 +- .../iso19115-3/testData/19115_3_usage.xml | 25 +- test/writers/mdJson/tc_mdjson_metadata.rb | 11 +- test/writers/sbJson/tc_sbjson_citation.rb | 4 +- test/writers/sbJson/testData/citation.json | 268 +- .../simple_html/tc_simple_html_document.rb | 24 + .../simple_html/testData/metadataGeo.json | 3552 +++ .../testData/metadataLargeGeo.json | 21201 ++++++++++++++++ 179 files changed, 28086 insertions(+), 1987 deletions(-) create mode 100644 .github/workflows/test.yml create mode 100644 lib/adiwg/mdtranslator/readers/fgdc/modules/module_dataQuality.rb delete mode 100644 lib/adiwg/mdtranslator/readers/fgdc/modules/module_quality.rb create mode 100644 lib/adiwg/mdtranslator/readers/mdJson/modules/module_qualityMeasure.rb create mode 100644 lib/adiwg/mdtranslator/readers/mdJson/modules/module_qualityResultFile.rb create mode 100644 lib/adiwg/mdtranslator/writers/fgdc/classes/class_dataQuality.rb delete mode 100644 lib/adiwg/mdtranslator/writers/fgdc/classes/class_quality.rb create mode 100644 lib/adiwg/mdtranslator/writers/html/sections/html_dataQualityReport.rb create mode 100644 lib/adiwg/mdtranslator/writers/html/sections/html_resultFile.rb create mode 100755 lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_enumerationList.rb create mode 100644 lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_extension.rb create mode 100644 lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_qualityResultFile.rb create mode 100644 lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_coverageResult.rb create mode 100644 lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_qualityResultFile.rb create mode 100644 lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_standaloneQualityReport.rb delete mode 100644 lib/adiwg/mdtranslator/writers/simple_html/sections/html_bodyScript.js create mode 100644 lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataQualityReport.rb create mode 100644 lib/adiwg/mdtranslator/writers/simple_html/sections/html_resultFile.rb create mode 100644 test/writers/simple_html/tc_simple_html_document.rb create mode 100644 test/writers/simple_html/testData/metadataGeo.json create mode 100644 test/writers/simple_html/testData/metadataLargeGeo.json diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..bdf6b3859 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,14 @@ +name: Tests + +on: [push] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1 + with: + ruby-version: "3.1" # Not needed with a .ruby-version file + - run: bundle install + - run: bundle exec rake diff --git a/Gemfile.lock b/Gemfile.lock index 901865058..18376d4f0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,16 +1,16 @@ PATH remote: . specs: - adiwg-mdtranslator (2.18.4) - adiwg-mdcodes (= 2.8.4) - adiwg-mdjson_schemas (= 2.8.1) + adiwg-mdtranslator (2.19.0.pre.beta.31) + adiwg-mdcodes (= 2.10.0) + adiwg-mdjson_schemas (= 2.9.5) builder (~> 3.2) coderay (~> 1.1) jbuilder (~> 2.5) json (~> 2.0) json-schema (~> 2.7) kramdown (>= 1.13, < 3.0) - nokogiri (~> 1.7) + nokogiri (~> 1.15) thor (~> 0.19) uuidtools (~> 2.1) @@ -30,9 +30,9 @@ GEM tzinfo (~> 1.1) addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) - adiwg-mdcodes (2.8.4) + adiwg-mdcodes (2.10.0) json (~> 2.0) - adiwg-mdjson_schemas (2.8.1) + adiwg-mdjson_schemas (2.9.5) builder (3.2.4) coderay (1.1.3) concurrent-ruby (1.2.2) @@ -51,11 +51,13 @@ GEM loofah (2.21.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) - mini_portile2 (2.4.0) minitest (5.20.0) - nokogiri (1.10.10) - mini_portile2 (~> 2.4.0) + nokogiri (1.15.5-arm64-darwin) + racc (~> 1.4) + nokogiri (1.15.5-x86_64-linux) + racc (~> 1.4) public_suffix (4.0.7) + racc (1.7.3) rails-dom-testing (2.1.1) activesupport (>= 5.0.0) minitest diff --git a/adiwg-mdtranslator.gemspec b/adiwg-mdtranslator.gemspec index 5b0890048..86dd83362 100644 --- a/adiwg-mdtranslator.gemspec +++ b/adiwg-mdtranslator.gemspec @@ -34,11 +34,11 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency "thor", "~> 0.19" spec.add_runtime_dependency "uuidtools", "~> 2.1" spec.add_runtime_dependency "json-schema", "~> 2.7" - spec.add_runtime_dependency "adiwg-mdjson_schemas", "2.8.1" - spec.add_runtime_dependency "adiwg-mdcodes", "2.8.4" + spec.add_runtime_dependency "adiwg-mdjson_schemas", "2.9.5" + spec.add_runtime_dependency "adiwg-mdcodes", "2.10.0" spec.add_runtime_dependency "jbuilder", "~> 2.5" spec.add_runtime_dependency "kramdown", ">= 1.13", "< 3.0" spec.add_runtime_dependency "coderay", "~> 1.1" - spec.add_runtime_dependency "nokogiri", "~> 1.7" + spec.add_runtime_dependency "nokogiri", "~> 1.15" end \ No newline at end of file diff --git a/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb b/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb index 6cb4f9109..a16cb4499 100644 --- a/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +++ b/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb @@ -513,6 +513,14 @@ def newAttribute } end + def newRangeElementDescription + { + name: nil, + definition: nil, + rangeElement: [] + } + end + def newImageDescription { illuminationElevationAngle: nil, @@ -650,13 +658,22 @@ def newConformanceResult } end + def newQualityResultFile + { + fileName: nil, + fileType: nil, + fileDescription: nil, + fileFormat: {} + } + end + def newCoverageResult { dateTime: nil, scope: {}, - spatialRepresentationType: {}, + spatialRepresentationType: nil, spatialRepresentation: {}, - resultContent: [], + resultContentDescription: {}, resourceFormat: {}, resultFile: {} } @@ -705,23 +722,22 @@ def newQualityMeasure def newDataQualityReport { - # standaloneQualityReportDetails: nil, - conformanceResult: [], - coverageResult: [], - # derivedElementReport: [], - descriptiveResult: [], - evaluationMethod: {}, + type: nil, + standaloneQualityReportDetails: nil, qualityMeasure: {}, + evaluationMethod: {}, quantitativeResult: [], - # relatedElementReport: [] + descriptiveResult: [], + conformanceResult: [], + coverageResult: [], + derivedElementReport: [] } end def newStandaloneReport { - reportReference: {}, abstract: nil, - elementReports: [] + reportReference: {}, } end @@ -935,8 +951,8 @@ def newLineage statement: nil, resourceScope: {}, lineageCitation: [], - dataSources: [], - processSteps: [] + processSteps: [], + dataSources: [] } end diff --git a/lib/adiwg/mdtranslator/readers/fgdc/modules/module_dataQuality.rb b/lib/adiwg/mdtranslator/readers/fgdc/modules/module_dataQuality.rb new file mode 100644 index 000000000..22ca90706 --- /dev/null +++ b/lib/adiwg/mdtranslator/readers/fgdc/modules/module_dataQuality.rb @@ -0,0 +1,183 @@ +# Reader - fgdc to internal data structure +# unpack fgdc data quality + +# History: +# Stan Smith 2017-08-15 original script + +require 'nokogiri' +require 'adiwg/mdtranslator/internal/internal_metadata_obj' +require_relative 'module_lineage' + +module ADIWG + module Mdtranslator + module Readers + module Fgdc + + module DataQuality + + def self.unpack(xDataQual, hMetadata, hDataQuality, hResponseObj) + intMetadataClass = InternalMetadata.new + + hDataQuality[:scope] = intMetadataClass.newScope + hDataQuality[:scope][:scopeCode] = 'tabularDataset' + + hDataQuality[:systemIdentifier] = { + uid: UUIDTools::UUID.random_create.to_s, + label: "CSDGM Data Quality" + } + + # data quality 2.1 (attracc) - attribute accuracy + xAccuracy = xDataQual.xpath('./attracc') + unless xAccuracy.empty? + # data quality 2.1.1 (attraccr) - Attribute Accuracy Report + xAccuracyReport = xAccuracy.xpath('./attraccr') + unless xAccuracyReport.empty? + report = intMetadataClass.newDataQualityReport + report[:type] = 'DQ_NonQuantitativeAttributeCorrectness' + descriptiveResult = intMetadataClass.newDescriptiveResult + descriptiveResult[:name] = 'Attribute Accuracy Report' + descriptiveResult[:statement] = xAccuracyReport.text + report[:descriptiveResult] << descriptiveResult + hDataQuality[:report] << report + end + # data quality 2.1.2 (qattracc) - Quantitative Attribute Accuracy Assessment + xQuantitativeAccuracy = xAccuracy.xpath('./qattracc') + unless xQuantitativeAccuracy.empty? + report = intMetadataClass.newDataQualityReport + report[:type] = 'DQ_QuantitativeAttributeAccuracy' + # data quality 2.1.2.1 (attraccv) - Attribute Accuracy Value + xQuantitativeAccuracyValue = xQuantitativeAccuracy.xpath('./attraccv') + unless xQuantitativeAccuracyValue.empty? + quantitativeResult = intMetadataClass.newQuantitativeResult + quantitativeResult[:name] = 'Attribute Accuracy Value' + quantitativeResult[:values] << xQuantitativeAccuracyValue.text + report[:quantitativeResult] << quantitativeResult + end + # data quality 2.1.2.2 (attracce) - Attribute Accuracy Explanation + xEvaluationMethod = xQuantitativeAccuracy.xpath('./attracce') + unless xEvaluationMethod.empty? + evaluationMethod = intMetadataClass.newEvaluationMethod + evaluationMethod[:name] = 'Attribute Accuracy Explanation' + evaluationMethod[:methodDescription] = xEvaluationMethod.text + report[:evaluationMethod] << evaluationMethod + end + hDataQuality[:report] << report unless report[:quantitativeResult].empty? && report[:evaluationMethod].empty? + end + end + + # data quality 2.2 (logic) - logical consistency (required) (not implemented) + xLogic = xDataQual.xpath('./logic') + if xLogic.empty? + hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: data quality logical consistency section is missing' + else + logic = xLogic.text + report = intMetadataClass.newDataQualityReport + report[:type] = 'DQ_ConceptualConsistency' + descriptiveResult = intMetadataClass.newDescriptiveResult + descriptiveResult[:name] = 'Logical Consistency Report' + descriptiveResult[:statement] = logic + report[:descriptiveResult] << descriptiveResult + hDataQuality[:report] << report + end + + # data quality 2.3 (complete) - completion report (required) + xComplete = xDataQual.xpath('./complete') + if xComplete.empty? + hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: data quality completion report section is missing' + else + complete = xComplete.text + report = intMetadataClass.newDataQualityReport + report[:type] = 'DQ_CompletenessOmission' + descriptiveResult = intMetadataClass.newDescriptiveResult + descriptiveResult[:name] = 'Completeness Report' + descriptiveResult[:statement] = complete + report[:descriptiveResult] << descriptiveResult + hDataQuality[:report] << report + end + + # data quality 2.4 (posacc) - Positional Accuracy + xPositionalAccuracy = xDataQual.xpath('./posacc') + unless xPositionalAccuracy.empty? + # data quality 2.4.1 (horizpa) - Horizontal Positional Accuracy + xHorizontalAccuracy = xPositionalAccuracy.xpath('./horizpa') + unless xHorizontalAccuracy.empty? + report = intMetadataClass.newDataQualityReport + report[:type] = 'DQ_AbsoluteExternalPositionalAccuracy' + # Combine Horizontal Positional Accuracy Report and Explanation + descriptive_result_text = '' + xHorizontalAccuracyReport = xHorizontalAccuracy.xpath('./horizpar') + unless xHorizontalAccuracyReport.empty? + descriptive_result_text += xHorizontalAccuracyReport.text + end + xQuantitativeHorizontalAccuracy = xHorizontalAccuracy.xpath('./qhorizpa') + unless xQuantitativeHorizontalAccuracy.empty? + xHorizontalAccuracyValue = xQuantitativeHorizontalAccuracy.xpath('horizpav') + unless xHorizontalAccuracyValue.empty? + descriptive_result_text += " Value: #{xHorizontalAccuracyValue.text}" + end + xHorizontalAccuracyExplanation = xQuantitativeHorizontalAccuracy.xpath('horizpae') + unless xHorizontalAccuracyExplanation.empty? + descriptive_result_text += " Explanation: #{xHorizontalAccuracyExplanation.text}" + end + end + unless descriptive_result_text.empty? + descriptiveResult = intMetadataClass.newDescriptiveResult + descriptiveResult[:name] = 'Horizontal Positional Accuracy Report' + descriptiveResult[:statement] = descriptive_result_text + report[:descriptiveResult] << descriptiveResult + end + hDataQuality[:report] << report + end + # data quality 2.4.2 (vertacc) - Vertical Positional Accuracy + xVerticalAccuracy = xPositionalAccuracy.xpath('./vertacc') + unless xVerticalAccuracy.empty? + report = intMetadataClass.newDataQualityReport + report[:type] = 'DQ_AbsoluteExternalPositionalAccuracy' + # Combine Vertical Positional Accuracy Report and Explanation + descriptive_result_text = '' + xVerticalAccuracyReport = xVerticalAccuracy.xpath('./vertaccr') + unless xVerticalAccuracyReport.empty? + descriptive_result_text += xVerticalAccuracyReport.text + end + xVerticalAccuracyAssessment = xVerticalAccuracy.xpath('./qvertpa') + unless xVerticalAccuracyAssessment.empty? + xVerticalAccuracyValue = xVerticalAccuracyAssessment.xpath('vertaccv') + unless xVerticalAccuracyValue.empty? + descriptive_result_text += " Value: #{xVerticalAccuracyValue.text}" + end + xVerticalAccuracyExplanation = xVerticalAccuracyAssessment.xpath('vertacce') + unless xVerticalAccuracyExplanation.empty? + descriptive_result_text += " Explanation: #{xVerticalAccuracyExplanation.text}" + end + end + unless descriptive_result_text.empty? + descriptiveResult = intMetadataClass.newDescriptiveResult + descriptiveResult[:name] = 'Vertical Positional Accuracy Report' + descriptiveResult[:statement] = descriptive_result_text + report[:descriptiveResult] << descriptiveResult + end + hDataQuality[:report] << report + end + end + + # data quality 2.5 (lineage) - lineage (required) + xLineage = xDataQual.xpath('./lineage') + unless xLineage.empty? + hLineage = Lineage.unpack(xLineage, hResponseObj) + unless hLineage.nil? + hMetadata[:lineageInfo] << hLineage + end + end + if xLineage.nil? + hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: data quality lineage section is missing' + end + + return hDataQuality + end + + end + + end + end + end +end \ No newline at end of file diff --git a/lib/adiwg/mdtranslator/readers/fgdc/modules/module_fgdc.rb b/lib/adiwg/mdtranslator/readers/fgdc/modules/module_fgdc.rb index 4c2f1c6e6..d1e4dcc2a 100644 --- a/lib/adiwg/mdtranslator/readers/fgdc/modules/module_fgdc.rb +++ b/lib/adiwg/mdtranslator/readers/fgdc/modules/module_fgdc.rb @@ -10,7 +10,7 @@ require 'adiwg/mdtranslator/internal/internal_metadata_obj' require_relative '../version' require_relative 'module_identification' -require_relative 'module_quality' +require_relative 'module_dataQuality' require_relative 'module_spatialOrganization' require_relative 'module_spatialReference' require_relative 'module_entityAttribute' @@ -70,7 +70,7 @@ def self.unpack(xDoc, hResponseObj) # metadata (dataqual 2) - data quality xDataQual = xMetadata.xpath('./dataqual') unless xDataQual.empty? - dataQuality = Quality.unpack(xDataQual, hMetadata, hDataQuality, hResponseObj) + dataQuality = DataQuality.unpack(xDataQual, hMetadata, hDataQuality, hResponseObj) hMetadata[:dataQuality] << dataQuality end diff --git a/lib/adiwg/mdtranslator/readers/fgdc/modules/module_keyword.rb b/lib/adiwg/mdtranslator/readers/fgdc/modules/module_keyword.rb index e0d7761b1..a96c5f8e1 100644 --- a/lib/adiwg/mdtranslator/readers/fgdc/modules/module_keyword.rb +++ b/lib/adiwg/mdtranslator/readers/fgdc/modules/module_keyword.rb @@ -231,9 +231,11 @@ def self.unpack(xKeywords, hResourceInfo, hResponseObj) hCitation[:title] = thesaurus hKeyword[:thesaurus] = hCitation end - if thesaurus.empty? - hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: BIO method keyword thesaurus is missing' - end + # This code is being disabled intentionally. While the standard does indicate this is required, in practice it is not always present. + # Instead of requiring keywords, we will allow them to be optional for bio lineage. + # if thesaurus.empty? + # hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: BIO method keyword thesaurus is missing' + # end # theme keyword bio.1.2 (methkey) - lineage method keywords {keywordObject} axKeywords = xKeywords.xpath('./methkey') @@ -247,9 +249,11 @@ def self.unpack(xKeywords, hResourceInfo, hResponseObj) end end end - if axKeywords.empty? - hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: BIO method keyword is missing' - end + # This code is being disabled intentionally. While the standard does indicate this is required, in practice it is not always present. + # Instead of requiring keywords, we will allow them to be optional for bio lineage. + # if axKeywords.empty? + # hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: BIO method keyword is missing' + # end aKeywords << hKeyword diff --git a/lib/adiwg/mdtranslator/readers/fgdc/modules/module_lineage.rb b/lib/adiwg/mdtranslator/readers/fgdc/modules/module_lineage.rb index 3e591f191..bd211e760 100644 --- a/lib/adiwg/mdtranslator/readers/fgdc/modules/module_lineage.rb +++ b/lib/adiwg/mdtranslator/readers/fgdc/modules/module_lineage.rb @@ -30,21 +30,15 @@ def self.unpack(xLineage, hResponseObj) # lineage bio (method) - methodology [] (required) axMethods = xLineage.xpath('./method') unless axMethods.empty? - Method.unpack(hLineage, axMethods, hResponseObj) + axMethods.each do |xMethod| + hProcess = Method.unpack(hLineage, xMethod, hResponseObj) + hLineage[:processSteps] << hProcess + end end if axMethods.empty? hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: BIO lineage methodology section is missing' end - - # lineage 2.5.1 (srcinfo) - source information [] - axSource = xLineage.xpath('./srcinfo') - unless axSource.empty? - axSource.each do |xSource| - hSource = Source.unpack(xSource, hResponseObj) - hLineage[:dataSources] << hSource - end - end - + # lineage 2.5.2 (procstep) - process step [] (required) axProcess = xLineage.xpath('./procstep') unless axProcess.empty? @@ -57,6 +51,15 @@ def self.unpack(xLineage, hResponseObj) hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: lineage process step section is missing' end + # lineage 2.5.1 (srcinfo) - source information [] + axSource = xLineage.xpath('./srcinfo') + unless axSource.empty? + axSource.each do |xSource| + hSource = Source.unpack(xSource, hResponseObj) + hLineage[:dataSources] << hSource + end + end + return hLineage end diff --git a/lib/adiwg/mdtranslator/readers/fgdc/modules/module_methodology.rb b/lib/adiwg/mdtranslator/readers/fgdc/modules/module_methodology.rb index 83ff9ba20..2b83dcd52 100644 --- a/lib/adiwg/mdtranslator/readers/fgdc/modules/module_methodology.rb +++ b/lib/adiwg/mdtranslator/readers/fgdc/modules/module_methodology.rb @@ -16,53 +16,45 @@ module Fgdc module Method - def self.unpack(hLineage, axMethods, hResponseObj) + def self.unpack(hLineage, xMethod, hResponseObj) - statement = '' intObj = Fgdc.get_intObj hResourceInfo = intObj[:metadata][:resourceInfo] - axMethods.each do |xMethod| + intMetadataClass = InternalMetadata.new + hProcessStep = intMetadataClass.newProcessStep - # methodology bio (methtype) - method type (not supported) + # methodology bio (methtype) - method type (not supported) - # methodology bio (methodid) - method identifier [] {keyword} - axKeywords = xMethod.xpath('./methodid') - unless axKeywords.empty? - axKeywords.each do |xKeyword| - Keyword.unpack(xKeyword, hResourceInfo, hResponseObj) - end + # methodology bio (methodid) - method identifier [] {keyword} + axKeywords = xMethod.xpath('./methodid') + unless axKeywords.empty? + axKeywords.each do |xKeyword| + Keyword.unpack(xKeyword, hResourceInfo, hResponseObj) end + end - # methodology bio (methdesc) - method description (required) - description = xMethod.xpath('./methdesc').text - unless description.empty? - statement += description + '; ' - end - if description.empty? - hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: BIO lineage methodology description is missing' - end + # methodology bio (methdesc) - method description (required) + description = xMethod.xpath('./methdesc').text + unless description.empty? + hProcessStep[:description] = description + end + if description.empty? + hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: BIO lineage methodology description is missing' + end - # methodology bio (methcite) - method citation [] {citation} - axCitations = xMethod.xpath('./methcite') - unless axCitations.empty? - axCitations.each do |xCitation| - hReturn = Citation.unpack(xCitation, hResponseObj) - unless hReturn.nil? - hLineage[:lineageCitation] << hReturn - end + # methodology bio (methcite) - method citation [] {citation} + axCitations = xMethod.xpath('./methcite') + unless axCitations.empty? + axCitations.each do |xCitation| + hReturn = Citation.unpack(xCitation, hResponseObj) + unless hReturn.nil? + hProcessStep[:references] << hReturn end end - end - unless statement.empty? - statement.chomp!('; ') - hLineage[:statement] = statement - end - - return hLineage - + return hProcessStep end end diff --git a/lib/adiwg/mdtranslator/readers/fgdc/modules/module_process.rb b/lib/adiwg/mdtranslator/readers/fgdc/modules/module_process.rb index b7cae30ab..c8fddbdfc 100644 --- a/lib/adiwg/mdtranslator/readers/fgdc/modules/module_process.rb +++ b/lib/adiwg/mdtranslator/readers/fgdc/modules/module_process.rb @@ -8,6 +8,7 @@ require 'adiwg/mdtranslator/internal/internal_metadata_obj' require_relative 'module_dateTime' require_relative 'module_contact' +require_relative 'module_citation' module ADIWG module Mdtranslator @@ -37,7 +38,7 @@ def self.unpack(xProcess, hLineage, hResponseObj) axUsed.each do |xUsed| usedSrc = xUsed.text unless usedSrc.empty? - hLineage[:dataSources].each do |hSource| + hProcess[:stepSources].each do |hSource| unless hSource[:sourceId].nil? if usedSrc == hSource[:sourceId] hProcess[:stepSources] << hSource @@ -92,6 +93,17 @@ def self.unpack(xProcess, hLineage, hResponseObj) end end + # process (references) - references [] + axReferences = xProcess.xpath('./reference') + unless axReferences.empty? + axReferences.each do |xReference| + hCitation = Citation.unpack(xReference, hResponseObj) + unless hCitation.nil? + hProcess[:references] << hCitation + end + end + end + return hProcess end diff --git a/lib/adiwg/mdtranslator/readers/fgdc/modules/module_quality.rb b/lib/adiwg/mdtranslator/readers/fgdc/modules/module_quality.rb deleted file mode 100644 index b493a05ea..000000000 --- a/lib/adiwg/mdtranslator/readers/fgdc/modules/module_quality.rb +++ /dev/null @@ -1,181 +0,0 @@ -# Reader - fgdc to internal data structure -# unpack fgdc data quality - -# History: -# Stan Smith 2017-08-15 original script - -require 'nokogiri' -require 'adiwg/mdtranslator/internal/internal_metadata_obj' -require_relative 'module_lineage' - -module ADIWG - module Mdtranslator - module Readers - module Fgdc - - module Quality - - def self.unpack(xDataQual, hMetadata, hDataQuality, hResponseObj) - - hDataQuality[:scope] = {scopeCode: 'tabularDataset'} - hDataQuality[:systemIdentifier] = { - uid: UUIDTools::UUID.random_create.to_s, - label: "CSDGM Data Quality" - } - - - # data quality 2.1 (attracc) - attribute accuracy - xAccuracy = xDataQual.xpath('./attracc') - accuracyReport = xAccuracy.xpath('./attraccr').text - hDataQuality[:report] << { - type: 'DQ_NonQuantitativeAttributeCompleteness', - descriptiveResult: [ {statement: accuracyReport} ] - } - - # data quality 2.1 (qattracc) - Quantitative Attribute Accuracy Assessment - - xQuantitativeAccuracy = xDataQual.xpath('./qattracc') - unless xQuantitativeAccuracy.xpath('./attraccv').empty? - hDataQuality[:report] << { - type: 'DQ_QuantitativeAttributeAccuracy', - quantitativeResult: [{ - value: xQuantitativeAccuracy.xpath('./attraccv').text - }] - } - end - - # data quality 2.2 (logic) - logical consistency (required) (not implemented) - xLogic = xDataQual.xpath('./logic') - if xLogic.empty? - hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: data quality logical consistency section is missing' - else - logic = xLogic.text - hDataQuality[:report] << { - type: 'DQ_ConceptualConsistency', - qualityMeasure: { - description: logic - } - } - end - - # data quality 2.3 (complete) - completion report (required) - xComplete = xDataQual.xpath('./complete') - if xComplete.empty? - hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: data quality completion report section is missing' - else - complete = xComplete.text - hDataQuality[:report] << { - type: 'DQ_CompletenessOmission', - descriptiveResult: [{ - statement: complete - }] - } - end - - # data quality 2.4 (position) - positional accuracy - xPositionalAccuracy = xDataQual.xpath('./posacc') - unless xPositionalAccuracy.empty? - - # horizontal positional accuracy - xHorizontal = xPositionalAccuracy.xpath('./horizpa') - unless xHorizontal.empty? - - report = {} - - unless xHorizontal.xpath('horizpar').empty? - report[:evaluationMethod] = { - methodDescription: xHorizontal.xpath('horizpar').text - } - end - - unless xHorizontal.xpath('qhorizpa/horizpae').empty? - report[:qualityMeasure] = { - description: xHorizontal.xpath('qhorizpa/horizpae').text - } - end - - unless xHorizontal.xpath('qhorizpa/horizpav').empty? - report[:quantitativeResult] = [{ - value: [ xHorizontal.xpath('qhorizpa/horizpav').text ] - }] - end - - unless report.empty? - if report[:qualityMeasure].nil? - report[:qualityMeasure] = { - name: ['Horizontal Positional Accuracy Report'] - } - else - report[:qualityMeasure][:name] = ['Horizontal Positional Accuracy Report'] - end - - report[:type] = 'DQ_AbsoluteExternalPositionalAccuracy' - - hDataQuality[:report] << report - end - end - - # vertical positional accuracy - xVertical = xPositionalAccuracy.xpath('./vertacc') - unless xVertical.empty? - - report = {} - - unless xVertical.xpath('vertaccr').empty? - report[:evaluationMethod] = { - methodDescription: xVertical.xpath('vertaccr').text - } - end - - unless xVertical.xpath('qvertpa/vertacce').empty? - report[:qualityMeasure] = { - description: xVertical.xpath('qvertpa/vertacce').text - } - end - - unless xVertical.xpath('qvertpa/vertaccv').empty? - report[:quantitativeResult] = [{ - value: [ xVertical.xpath('qvertpa/vertaccv').text ] - }] - end - - unless report.empty? - if report[:qualityMeasure].nil? - report[:qualityMeasure] = { - name: ['Vertical Positional Accuracy Report'] - } - else - report[:qualityMeasure][:name] = ['Vertical Positional Accuracy Report'] - end - - report[:type] = 'DQ_AbsoluteExternalPositionalAccuracy' - - hDataQuality[:report] << report - end - end - end - - # data quality 2.5 (lineage) - lineage (required) - xLineage = xDataQual.xpath('./lineage') - unless xLineage.empty? - hLineage = Lineage.unpack(xLineage, hResponseObj) - unless hLineage.nil? - hMetadata[:lineageInfo] << hLineage - end - end - if xLineage.nil? - hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: data quality lineage section is missing' - end - - # data quality 2.6 (cloud) - cloud cover (not implemented) - - return hDataQuality - - end - - end - - end - end - end -end diff --git a/lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader.rb b/lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader.rb index fb7dd4c8c..d4920b891 100644 --- a/lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader.rb +++ b/lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader.rb @@ -95,8 +95,8 @@ def self.readFile(file, hResponseObj) aCurVersion = currentVersion.split('.') aReqVersion = requestedVersion.split('.') approved = false - if aReqVersion[0] == aCurVersion[0] - if aReqVersion[1] <= aCurVersion[1] + if aReqVersion[0].to_i == aCurVersion[0].to_i + if aReqVersion[1].to_i <= aCurVersion[1].to_i approved = true end end diff --git a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_conformanceResult.rb b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_conformanceResult.rb index edbf4cdce..c0076ff51 100644 --- a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_conformanceResult.rb +++ b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_conformanceResult.rb @@ -8,7 +8,7 @@ module MdJson module ConformanceResult - def self.unpack(hConformanceResult, responseObj, inContext = nil) + def self.unpack(hConformanceResult, responseObj) intMetadataClass = InternalMetadata.new intConformanceResult = intMetadataClass.newConformanceResult @@ -23,6 +23,11 @@ def self.unpack(hConformanceResult, responseObj, inContext = nil) intConformanceResult[:scope] = Scope.unpack(hConformanceResult['scope'], responseObj) end + # name + if hConformanceResult.has_key?('name') + intConformanceResult[:name] = hConformanceResult['name'] + end + #specification if hConformanceResult.has_key?('specification') intConformanceResult[:specification] = Citation.unpack(hConformanceResult['specification'], responseObj) diff --git a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_coverageResult.rb b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_coverageResult.rb index ac0aa400a..5bea7ebdb 100644 --- a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_coverageResult.rb +++ b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_coverageResult.rb @@ -1,5 +1,8 @@ require_relative 'module_scope' require_relative 'module_spatialRepresentation' +require_relative 'module_qualityResultFile' +require_relative 'module_format' +require_relative 'module_coverageDescription' module ADIWG module Mdtranslator @@ -7,7 +10,7 @@ module Readers module MdJson module CoverageResult - def self.unpack(hResult, responseObj, inContext) + def self.unpack(hResult, responseObj) intMetadataClass = InternalMetadata.new intResult = intMetadataClass.newCoverageResult @@ -23,9 +26,12 @@ def self.unpack(hResult, responseObj, inContext) intResult[:scope] = Scope.unpack(hResult['scope'], responseObj) end + # name + if hResult.has_key?('name') + intResult[:name] = hResult['name'] + end # spatialRepresentationType - # https://github.com/ISO-TC211/XML/blob/master/standards.iso.org/iso/19115/resources/Codelists/gml/MD_SpatialRepresentationTypeCode.xml if hResult.has_key?('spatialRepresentationType') intResult[:spatialRepresentationType] = hResult['spatialRepresentationType'] end @@ -38,21 +44,20 @@ def self.unpack(hResult, responseObj, inContext) # resultContent - if hResult.has_key?('resultContent') - intResult[:resultContent] = hResult['resultContent'] + if hResult.has_key?('resultContentDescription') + intResult[:resultContentDescription] = CoverageDescription.unpack(hResult['resultContentDescription'], responseObj) end # resourceFormat if hResult.has_key?('resourceFormat') - intResult[:resourceFormat] = hResult['resourceFormat'] + intResult[:resourceFormat] = Format.unpack(hResult['resourceFormat'], responseObj) end # resultFile - resultFile if hResult.has_key?('resultFile') - intResult[:resultFile] = hResult['resultFile'] + intResult[:resultFile] = QualiltyResultFile.unpack(hResult['resultFile'], responseObj) end return intResult diff --git a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataQuality.rb b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataQuality.rb index 0efb139a9..291c3f5e0 100644 --- a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataQuality.rb +++ b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataQuality.rb @@ -35,14 +35,21 @@ def self.unpack(hDataQuality, responseObj, inContext = nil) end end + if hDataQuality.has_key?('systemIdentifier') + systemIdentifier = hDataQuality['systemIdentifier'] + intDataQuality[:systemIdentifier] = {} + intDataQuality[:systemIdentifier][:uid] = systemIdentifier['uid'] + intDataQuality[:systemIdentifier][:label] = systemIdentifier['label'] + end + if hDataQuality.has_key?('standaloneQualityReport') hObject = hDataQuality['standaloneQualityReport'] unless hObject.empty? - intDataQuality[:standaloneQualityReport] = {} - intDataQuality[:standaloneQualityReport][:abstract] = hObject["abstract"] + intDataQuality[:standaloneReport] = {} + intDataQuality[:standaloneReport][:abstract] = hObject["abstract"] - unless hObject["reportRefereence"].nil? || hObject["reportReference"].empty? - intDataQuality[:standaloneQualityReport][:reportReference] = Citation.unpack(hObject["reportReference"], responseObj, inContext) + unless hObject["reportReference"].nil? || hObject["reportReference"].empty? + intDataQuality[:standaloneReport][:reportReference] = Citation.unpack(hObject["reportReference"], responseObj, inContext) end end end diff --git a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataQualityReport.rb b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataQualityReport.rb index 986e735ba..50dbf506a 100644 --- a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataQualityReport.rb +++ b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataQualityReport.rb @@ -4,6 +4,7 @@ require_relative 'module_descriptiveResult' require_relative 'module_quantitativeResult' require_relative 'module_evaluationMethod' +require_relative 'module_qualityMeasure' module ADIWG module Mdtranslator @@ -28,6 +29,10 @@ def self.unpack(hReport, responseObj, inContext = nil) intReport[:type] = hReport["type"] + if hReport.has_key?('standaloneQualityReportDetails') + intReport[:standaloneQualityReportDetails] = hReport['standaloneQualityReportDetails'] + end + if hReport.has_key?('conformanceResult') hReport['conformanceResult'].each do |item| hReturn = ConformanceResult.unpack(item, responseObj) @@ -68,23 +73,10 @@ def self.unpack(hReport, responseObj, inContext = nil) end if hReport.has_key?('qualityMeasure') - qualityMeasure = hReport['qualityMeasure'] - identifier = qualityMeasure['identifier'] - - intReport[:qualityMeasure] = {} - - if identifier - intReport[:qualityMeasure][:identifier] = { - identifier: identifier['identifier'], - namespace: identifier['namespace'], - version: identifier['version'], - description: identifier['description'] - } - end + hReturn = QualityMeasure.unpack(hReport['qualityMeasure'], responseObj) - if qualityMeasure - intReport[:qualityMeasure][:name] = qualityMeasure['name'] - intReport[:qualityMeasure][:description] = qualityMeasure['description'] + unless hReturn.nil? + intReport[:qualityMeasure] = hReturn end end diff --git a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_descriptiveResult.rb b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_descriptiveResult.rb index 62d6c73ad..15da2128d 100644 --- a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_descriptiveResult.rb +++ b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_descriptiveResult.rb @@ -25,6 +25,10 @@ def self.unpack(hResult, responseObj, inContext = nil) intResult[:scope] = Scope.unpack(hResult['scope'], responseObj) end + if hResult.has_key?('name') + intResult[:name] = hResult['name'] + end + if hResult.has_key?('statement') intResult[:statement] = hResult['statement'] end diff --git a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_evaluationMethod.rb b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_evaluationMethod.rb index 40715ff08..b6b5df004 100644 --- a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_evaluationMethod.rb +++ b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_evaluationMethod.rb @@ -6,7 +6,7 @@ module Readers module MdJson module EvaluationMethod - def self.unpack(hMethod, responseObj, inContext = nil) + def self.unpack(hMethod, responseObj) intMetadataClass = InternalMetadata.new intMethod = intMetadataClass.newEvaluationMethod diff --git a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_legalConstraint.rb b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_legalConstraint.rb index 0a0517ac4..f81faa911 100644 --- a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_legalConstraint.rb +++ b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_legalConstraint.rb @@ -34,21 +34,21 @@ def self.unpack(hLegalCon, responseObj, inContext = nil) haveLegal = false - # legal constraint - use constraint [] - if hLegalCon.has_key?('useConstraint') - hLegalCon['useConstraint'].each do |item| + # legal constraint - access constraint [] + if hLegalCon.has_key?('accessConstraint') + hLegalCon['accessConstraint'].each do |item| unless item == '' - intLegalCon[:useCodes] << item + intLegalCon[:accessCodes] << item haveLegal = true end end end - # legal constraint - access constraint [] - if hLegalCon.has_key?('accessConstraint') - hLegalCon['accessConstraint'].each do |item| + # legal constraint - use constraint [] + if hLegalCon.has_key?('useConstraint') + hLegalCon['useConstraint'].each do |item| unless item == '' - intLegalCon[:accessCodes] << item + intLegalCon[:useCodes] << item haveLegal = true end end diff --git a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_qualityMeasure.rb b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_qualityMeasure.rb new file mode 100644 index 000000000..bcc7e95b7 --- /dev/null +++ b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_qualityMeasure.rb @@ -0,0 +1,34 @@ +require_relative 'module_identifier' + +module ADIWG + module Mdtranslator + module Readers + module MdJson + + module QualityMeasure + def self.unpack(hQualityMeasure, responseObj) + + intMetadataClass = InternalMetadata.new + intQualityMeasure = intMetadataClass.newQualityMeasure + + intQualityMeasure[:description] = hQualityMeasure['description'] + + if hQualityMeasure.has_key?('name') + intQualityMeasure[:nameOfMeasure] = hQualityMeasure['name'] + end + + if hQualityMeasure.has_key?('identifier') + hReturn = Identifier.unpack(hQualityMeasure['identifier'], responseObj) + unless hReturn.nil? + intQualityMeasure[:identifier] = hReturn + end + end + + return intQualityMeasure + + end + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_qualityResultFile.rb b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_qualityResultFile.rb new file mode 100644 index 000000000..d859cd929 --- /dev/null +++ b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_qualityResultFile.rb @@ -0,0 +1,72 @@ +require_relative 'module_format' + +module ADIWG + module Mdtranslator + module Readers + module MdJson + + module QualiltyResultFile + + def self.unpack(hContent, responseObj) + @MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson + + # return nil object if input is empty + if hContent.empty? + @MessagePath.issueWarning(130, responseObj) + return nil + end + + # instance classes needed in script + intMetadataClass = InternalMetadata.new + intContent = intMetadataClass.newQualityResultFile + + # content information - file name (required) + if hContent.has_key?('fileName') + unless hContent['fileName'] == '' + intContent[:fileName] = hContent['fileName'] + end + end + if intContent[:fileName].nil? + @MessagePath.issueError(131, responseObj) + end + + # content information - file description (required) + if hContent.has_key?('fileDescription') + unless hContent['fileDescription'] == '' + intContent[:fileDescription] = hContent['fileDescription'] + end + end + if intContent[:fileDescription].nil? + @MessagePath.issueError(132, responseObj) + end + + # content information - file type + if hContent.has_key?('fileType') + unless hContent['fileType'] == '' + intContent[:fileType] = hContent['fileType'] + end + end + if intContent[:fileType].nil? + @MessagePath.issueError(131, responseObj) + end + + if hContent.has_key?('fileFormat') + hObject = hContent['fileFormat'] + unless hObject.empty? + hReturn = Format.unpack(hObject, responseObj) + unless hReturn.nil? + intContent[:fileFormat] = hReturn + end + end + end + + return intContent + + end + + end + + end + end + end +end diff --git a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_quantitativeResult.rb b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_quantitativeResult.rb index a73dc385e..8b44010eb 100644 --- a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_quantitativeResult.rb +++ b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_quantitativeResult.rb @@ -25,8 +25,12 @@ def self.unpack(hResult, responseObj, inContext = nil) intResult[:scope] = Scope.unpack(hResult['scope'], responseObj) end + if hResult.has_key?('name') + intResult[:name] = hResult['name'] + end + if hResult.has_key?('value') - intResult[:value] = hResult['value'] + intResult[:values] = hResult['value'] end if hResult.has_key?('valueUnits') diff --git a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_rangeElementDescription.rb b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_rangeElementDescription.rb index 53ad22425..af8df0091 100644 --- a/lib/adiwg/mdtranslator/readers/mdJson/modules/module_rangeElementDescription.rb +++ b/lib/adiwg/mdtranslator/readers/mdJson/modules/module_rangeElementDescription.rb @@ -23,8 +23,8 @@ def self.unpack(hRangeElementDescription, responseObj, inContext = nil) intRangeElementDescription[:definition] = hRangeElementDescription['definition'] end - if hRangeElementDescription.has_key?('rangeElements') - intRangeElementDescription[:rangeElements] = hRangeElementDescription['rangeElements'] + if hRangeElementDescription.has_key?('rangeElement') + intRangeElementDescription[:rangeElement] = hRangeElementDescription['rangeElement'] end return intRangeElementDescription diff --git a/lib/adiwg/mdtranslator/readers/sbJson/modules/module_contact.rb b/lib/adiwg/mdtranslator/readers/sbJson/modules/module_contact.rb index 0fee378c5..d443ca611 100644 --- a/lib/adiwg/mdtranslator/readers/sbJson/modules/module_contact.rb +++ b/lib/adiwg/mdtranslator/readers/sbJson/modules/module_contact.rb @@ -249,6 +249,19 @@ def self.unpack(hSbJson, aContacts, hCitation, hResponseObj) end end + # orcId - external contact identifier + if hSbContact.has_key?('orcId') && hSbContact['contactType'] == 'person' + hContact[:externalIdentifier] ||= [] + unless hSbContact['orcId'].nil? || hSbContact['orcId'] == '' + hExternalIdentifier = { + "identifier": hSbContact['orcId'], + "namespace": "ORCID", + "description": "Open Researcher and Contributor Id" + } + hContact[:externalIdentifier] << hExternalIdentifier + end + end + aContacts << hContact aContacts << hContactOrg unless hContactOrg.empty? diff --git a/lib/adiwg/mdtranslator/version.rb b/lib/adiwg/mdtranslator/version.rb index fdd7ba95e..f46ed542d 100644 --- a/lib/adiwg/mdtranslator/version.rb +++ b/lib/adiwg/mdtranslator/version.rb @@ -109,7 +109,7 @@ module ADIWG module Mdtranslator # current mdtranslator version - VERSION = "2.18.4" + VERSION = "2.19.0-beta.31" end end diff --git a/lib/adiwg/mdtranslator/writers/fgdc/classes/class_dataQuality.rb b/lib/adiwg/mdtranslator/writers/fgdc/classes/class_dataQuality.rb new file mode 100644 index 000000000..7cd557118 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/fgdc/classes/class_dataQuality.rb @@ -0,0 +1,149 @@ +# FGDC <> Quality +# FGDC CSDGM writer output in XML + +# History: +# Stan Smith 2018-03-23 refactored error and warning messaging +# Stan Smith 2017-12-15 original script + +require_relative 'class_lineage' + +module ADIWG + module Mdtranslator + module Writers + module Fgdc + + class DataQuality + + def initialize(xml, hResponseObj) + @xml = xml + @hResponseObj = hResponseObj + @NameSpace = ADIWG::Mdtranslator::Writers::Fgdc + end + + def writeXML(intObj) + + # classes used + lineageClass = Lineage.new(@xml, @hResponseObj) + + hDataQuality = intObj.dig(:metadata, :dataQuality, 0) + + if hDataQuality && hDataQuality[:report] + # data quality 2.1 (attracc) - Attribute Accuracy + attribute_accuracy_report_text = hDataQuality[:report].select do |report| + [ + 'DQ_NonQuantitativeAttributeCorrectness', + 'DQ_ThematicClassificationCorrectness' + ].include?(report[:type]) && !report.dig(:descriptiveResult, 0, :statement).nil? + end.map { |report| report.dig(:descriptiveResult, 0, :statement) }.compact.join(' ') + + quantitative_attribute_accuracy = hDataQuality[:report].find { |report| report[:type] == 'DQ_QuantitativeAttributeAccuracy' } + attribute_accuracy_value = quantitative_attribute_accuracy.dig(:quantitativeResult, 0, :values, 0) if quantitative_attribute_accuracy + attribute_evaluation_method = quantitative_attribute_accuracy.dig(:evaluationMethod, :methodDescription) if quantitative_attribute_accuracy + + if attribute_accuracy_report_text != '' || attribute_accuracy_value || attribute_evaluation_method + @xml.tag!('attracc') do + @xml.tag!('attraccr', attribute_accuracy_report_text) unless attribute_accuracy_report_text.empty? + if attribute_accuracy_value || attribute_evaluation_method + @xml.tag!('qattracc') do + @xml.tag!('attraccv', attribute_accuracy_value) if attribute_accuracy_value + @xml.tag!('attracce', attribute_evaluation_method) if attribute_evaluation_method + end + end + end + elsif @hResponseObj[:writerShowTags] + @xml.tag!('attracc', 'Not Reported') + end + + # data quality 2.2 (logic) - logical consistency (required) + logic_reports = hDataQuality[:report].select do |report| + [ + 'DQ_ConceptualConsistency', + 'DQ_DomainConsistency', + 'DQ_FormatConsistency', + 'DQ_TopologicalConsistency' + ].include?(report[:type]) && !report.dig(:descriptiveResult, 0, :statement).nil? + end + + logic = logic_reports.map { |report| report.dig(:descriptiveResult, 0, :statement) }.compact.join(' ') + + if logic != '' + @xml.tag!('logic', logic) + else + @xml.tag!('logic', 'Not Reported') + end + + # data quality 2.3 (complete) - completion report (required) + omission = hDataQuality[:report].find { |report| report[:type] == 'DQ_CompletenessOmission' }&.dig(:descriptiveResult, 0, :statement) + commission = hDataQuality[:report].find { |report| report[:type] == 'DQ_CompletenessCommission' }&.dig(:descriptiveResult, 0, :statement) + complete = [omission, commission].compact.join(' ') + if complete != '' + @xml.tag!('complete', complete) + else + @xml.tag!('complete', 'Not Reported') + end + + # data quality 2.4 (posacc) - Positional Accuracy + reports = hDataQuality[:report].select do |report| + [ + 'DQ_AbsoluteExternalPositionalAccuracy', + 'DQ_RelativeInternalPositionalAccuracy', + 'DQ_GriddedDataPositionalAccuracy' + ].include?(report[:type]) && !report.dig(:descriptiveResult, 0, :statement).nil? + end + + horizpar = '' + vertaccr = '' + + reports.each do |report| + descriptive_result = report.dig(:descriptiveResult, 0) + next unless descriptive_result + + if descriptive_result[:name] == 'Vertical Positional Accuracy Report' + vertaccr = descriptive_result[:statement] + else + horizpar = descriptive_result[:statement] + end + end + + if !horizpar.empty? || !vertaccr.empty? + @xml.tag!('posacc') do + if !horizpar.empty? + @xml.tag!('horizpa') do + @xml.tag!('horizpar', horizpar) + end + end + + if !vertaccr.empty? + @xml.tag!('vertacc') do + @xml.tag!('vertaccr', vertaccr) + end + end + end + elsif @hResponseObj[:writerShowTags] + @xml.tag!('position', 'Not Reported') + end + + # data quality 2.5 (lineage) - lineage (required) + unless intObj[:metadata][:lineageInfo].empty? + @xml.tag!('lineage') do + lineageClass.writeXML(intObj[:metadata][:lineageInfo]) + end + end + if intObj[:metadata][:lineageInfo].empty? + @NameSpace.issueWarning(350, nil, 'data quality section') + end + + # data quality 2.6 (cloud) - cloud cover (not implemented) + if @hResponseObj[:writerShowTags] + @xml.tag!('cloud', 'Not Reported') + end + + end # writeXML + end # DataQuality + + end # Quality + + end + end + end +end \ No newline at end of file diff --git a/lib/adiwg/mdtranslator/writers/fgdc/classes/class_fgdc.rb b/lib/adiwg/mdtranslator/writers/fgdc/classes/class_fgdc.rb index 6713251d6..a8c3d9748 100644 --- a/lib/adiwg/mdtranslator/writers/fgdc/classes/class_fgdc.rb +++ b/lib/adiwg/mdtranslator/writers/fgdc/classes/class_fgdc.rb @@ -5,7 +5,7 @@ # Stan Smith 2017-11-16 original script require_relative 'class_identification' -require_relative 'class_quality' +require_relative 'class_dataQuality' require_relative 'class_spatialOrganization' require_relative 'class_spatialReference' require_relative 'class_dictionary' @@ -33,7 +33,7 @@ def writeXML(intObj) # classes used idClass = Identification.new(@xml, @hResponseObj) - qualityClass = Quality.new(@xml, @hResponseObj) + dataQualityClass = DataQuality.new(@xml, @hResponseObj) spaceOrgClass = SpatialOrganization.new(@xml, @hResponseObj) spaceRefClass = SpatialReference.new(@xml, @hResponseObj) dictionaryClass = DataDictionary.new(@xml, @hResponseObj) @@ -62,7 +62,7 @@ def writeXML(intObj) # currently only lineage is implemented unless intObj[:metadata][:lineageInfo].empty? @xml.tag!('dataqual') do - qualityClass.writeXML(intObj) + dataQualityClass.writeXML(intObj) end end if intObj[:metadata][:lineageInfo].empty? && @hResponseObj[:writerShowTags] diff --git a/lib/adiwg/mdtranslator/writers/fgdc/classes/class_quality.rb b/lib/adiwg/mdtranslator/writers/fgdc/classes/class_quality.rb deleted file mode 100644 index f002c95c2..000000000 --- a/lib/adiwg/mdtranslator/writers/fgdc/classes/class_quality.rb +++ /dev/null @@ -1,127 +0,0 @@ -# FGDC <> Quality -# FGDC CSDGM writer output in XML - -# History: -# Stan Smith 2018-03-23 refactored error and warning messaging -# Stan Smith 2017-12-15 original script - -require_relative 'class_lineage' - -module ADIWG - module Mdtranslator - module Writers - module Fgdc - - class Quality - - def initialize(xml, hResponseObj) - @xml = xml - @hResponseObj = hResponseObj - @NameSpace = ADIWG::Mdtranslator::Writers::Fgdc - end - - def writeXML(intObj) - - # classes used - lineageClass = Lineage.new(@xml, @hResponseObj) - - hDataQuality = intObj.dig(:metadata, :dataQuality, 0) - - if hDataQuality && hDataQuality[:report] - # data quality 2.1 (attracc) - attribute accuracy (not implemented) - attribute_completeness_report = hDataQuality[:report].find do |report| - report[:type] == 'DQ_NonQuantitativeAttributeCompleteness' && - !report.dig(:descriptiveResult, 0, :statement).nil? - end - - if attribute_completeness_report - @xml.tag!('attracc') do - @xml.tag!('attraccr', attribute_completeness_report[:descriptiveResult][0][:statement]) - end - elsif @hResponseObj[:writerShowTags] - @xml.tag!('attracc', 'Not Reported') - end - - # data quality 2.2 (logic) - logical consistency (not implemented) (required) - logic_report = hDataQuality[:report].find do |report| - report[:type] == 'DQ_ConceptualConsistency' && - !report.dig(:qualityMeasure, :description).nil? - end - - if logic = logic_report&.dig(:qualityMeasure, :decription) - @xml.tag!('logic', logic) - else - @xml.tag!('logic', 'Not Reported') - end - - # data quality 2.3 (complete) - completion report (not implemented) (required) - completeness_report = hDataQuality[:report].find do |report| - report[:type] == 'DQ_CompletenessOmission' && - !report.dig(:descriptiveResult, 0, :statement).nil? - end - - if complete = completeness_report&.dig(:descriptiveResult, 0, :statement) - @xml.tag!('complete', complete) - else - @xml.tag!('complete', 'Not Reported') - end - - # data quality 2.4 (position) - positional accuracy (not implemented) - - - horizontal_positional_accuracy_report = hDataQuality[:report].find do |report| - report[:type] == 'DQ_AbsoluteExternalPositionalAccuracy' && - report.dig(:qualityMeasure, :name) == 'Horizontal Positional Accuracy Report' - end - - horizpar = horizontal_positional_accuracy_report&.dig(:evaluationMethod, :methodDescription) - - - vertical_positional_accuracy_report = hDataQuality[:report].find do |report| - report[:type] == 'DQ_AbsoluteExternalPositionalAccuracy' && - report.dig(:qualityMeasure, :name) == 'Vertical Positional Accuracy Report' - end - - vertaccr = vertical_positional_accuracy_report&.dig(:evaluationMethod, :methodDescription) - - if horizpar || vertaccr - @xml.tag!('posacc') do - if horizpar - @xml.tag!('horizpa') do - @xml.tag!('horizpar', horizpar) - end - end - - if vertaccr - @xml.tag!('vertacc') do - @xml.tag!('vertaccr', vertaccr) - end - end - end - elsif @hResponseObj[:writerShowTags] - @xml.tag!('position', 'Not Reported') - end - end - - # data quality 2.5 (lineage) - lineage (required) - unless intObj[:metadata][:lineageInfo].empty? - @xml.tag!('lineage') do - lineageClass.writeXML(intObj[:metadata][:lineageInfo]) - end - end - if intObj[:metadata][:lineageInfo].empty? - @NameSpace.issueWarning(350, nil, 'data quality section') - end - - # data quality 2.6 (cloud) - cloud cover (not implemented) - if @hResponseObj[:writerShowTags] - @xml.tag!('cloud', 'Not Reported') - end - - end # writeXML - end # Quality - - end - end - end -end diff --git a/lib/adiwg/mdtranslator/writers/fgdc/classes/class_spatialDomain.rb b/lib/adiwg/mdtranslator/writers/fgdc/classes/class_spatialDomain.rb index 35586c950..d3ad330e8 100644 --- a/lib/adiwg/mdtranslator/writers/fgdc/classes/class_spatialDomain.rb +++ b/lib/adiwg/mdtranslator/writers/fgdc/classes/class_spatialDomain.rb @@ -127,7 +127,7 @@ def writeXML(aExtents) # altitude bounding (altmax) - maximum altitude (required) unless hBBox[:maximumAltitude].nil? - @xml.tag!('altmax', hBBox[:minimumAltitude]) + @xml.tag!('altmax', hBBox[:maximumAltitude]) end if hBBox[:maximumAltitude].nil? @NameSpace.issueWarning(372, 'altmax') diff --git a/lib/adiwg/mdtranslator/writers/html/sections/html_body.rb b/lib/adiwg/mdtranslator/writers/html/sections/html_body.rb index 53558e5a8..e7bff9ca7 100644 --- a/lib/adiwg/mdtranslator/writers/html/sections/html_body.rb +++ b/lib/adiwg/mdtranslator/writers/html/sections/html_body.rb @@ -71,6 +71,7 @@ def writeHtml(version, intObj) @html.a(' Contacts', {'href' => '#body-contacts', 'class' => 'btn navBtn', 'id' => 'contactButton'}) @html.a(' Metadata', {'href' => '#body-metadataInfo', 'class' => 'btn navBtn', 'id' => 'metadataButton'}) @html.a(' Resource', {'href' => '#body-resourceInfo', 'class' => 'btn navBtn', 'id' => 'resourceButton'}) + @html.a(' Quality', {'href' => '#body-dataQuality', 'class' => 'btn navBtn', 'id' => 'qualityButton'}) @html.a(' Lineage', {'href' => '#body-lineage', 'class' => 'btn navBtn', 'id' => 'lineageButton'}) @html.a(' Distribution', {'href' => '#body-distribution', 'class' => 'btn navBtn', 'id' => 'distributionButton'}) @html.a(' Associated', {'href' => '#body-associatedResource', 'class' => 'btn navBtn', 'id' => 'associatedButton'}) @@ -169,7 +170,10 @@ def writeHtml(version, intObj) @html.summary('Data Quality', {'id' => 'body-dataQuality', 'class' => 'h2'}) aDataQuality.each do |hDataQuality| @html.section(:class => 'block') do - dataQualityClass.writeHtml(hDataQuality) + @html.details do + @html.summary('Quality', {'class' => 'h3'}) + dataQualityClass.writeHtml(hDataQuality) + end end end end diff --git a/lib/adiwg/mdtranslator/writers/html/sections/html_dataQuality.rb b/lib/adiwg/mdtranslator/writers/html/sections/html_dataQuality.rb index bae142db0..70372a124 100644 --- a/lib/adiwg/mdtranslator/writers/html/sections/html_dataQuality.rb +++ b/lib/adiwg/mdtranslator/writers/html/sections/html_dataQuality.rb @@ -1,4 +1,6 @@ require_relative 'html_citation' +require_relative 'html_dataQualityReport' +require_relative 'html_scope' module ADIWG module Mdtranslator @@ -12,46 +14,81 @@ def initialize(html) def writeHtml(hDataQuality) citationClass = Html_Citation.new(@html) scopeClass = Html_Scope.new(@html) + dataQualityReportClass = Html_DataQualityReport.new(@html) - unless hDataQuality[:scope].nil? || hDataQuality[:scope].empty? - @html.section(class: 'block') do + # system identifier + unless hDataQuality[:systemIdentifier].nil? + systemIdentifier = hDataQuality[:systemIdentifier] + @html.section(:class => 'block') do @html.details do - @html.summary('Scope', {'class' => 'h5'}) - @html.section(class: 'block') do + @html.summary('System Identifier', {'class' => 'h4'}) + @html.em('UUID: ') + @html.text!(systemIdentifier[:uid]) + @html.br + @html.em('Label:') + @html.text!(systemIdentifier[:label]) + @html.br + end + end + end + + # scope + unless hDataQuality[:scope].empty? + @html.section(:class => 'block') do + @html.details do + @html.summary('Scope', {'class' => 'h4'}) + @html.section(:class => 'block') do scopeClass.writeHtml(hDataQuality[:scope]) end end end end - - unless hDataQuality[:standaloneQualityReport].nil? || - ( hDataQuality[:standaloneQualityReport][:abstract].nil? && - hDataQuality[:standaloneQualityReport][:reportReference].nil? ) - report = hDataQuality[:standaloneQualityReport] - - @html.section(class: 'block') do + # standalone quality report + unless hDataQuality[:standaloneReport].nil? || + ( hDataQuality[:standaloneReport][:abstract].nil? && + hDataQuality[:standaloneReport][:reportReference].nil? ) + report = hDataQuality[:standaloneReport] + @html.section(:class => 'block') do @html.details do - @html.summary('Standalone Quality Report', {'class' => 'h5'}) + @html.summary('Standalone Quality Report', {'class' => 'h4'}) unless report[:abstract].nil? - @html.section(class: 'block') do + @html.section(:class => 'block') do @html.em('Abstract:') @html.text!(report[:abstract]) end end - unless report[:reportReference].nil? - @html.details do - @html.summary('Report Reference', {'class' => 'h5'}) - @html.section(class: 'block') do - citationClass.writeHtml(report[:reportReference]) + @html.section(:class => 'block') do + @html.details do + @html.summary('Report Reference', {'class' => 'h5'}) + @html.section(:class => 'block') do + citationClass.writeHtml(report[:reportReference]) + end end end end end end + end + # reports + unless hDataQuality[:report].nil? || hDataQuality[:report].empty? + @html.section(:class => 'block') do + @html.details do + @html.summary('Reports', {'class' => 'h4'}) + hDataQuality[:report].each do |report| + @html.section(:class => 'block') do + @html.details do + @html.summary(report[:type], {'class' => 'h5'}) + dataQualityReportClass.writeHtml(report) + end + end + end + end + end end + end end end diff --git a/lib/adiwg/mdtranslator/writers/html/sections/html_dataQualityReport.rb b/lib/adiwg/mdtranslator/writers/html/sections/html_dataQualityReport.rb new file mode 100644 index 000000000..29dcb07d4 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/html/sections/html_dataQualityReport.rb @@ -0,0 +1,413 @@ +require_relative 'html_citation' +require_relative 'html_identifier' +require_relative 'html_scope' +require_relative 'html_spatialRepresentation' +require_relative 'html_format' +require_relative 'html_resultFile' +require_relative 'html_coverageInfo' + +module ADIWG + module Mdtranslator + module Writers + module Html + class Html_DataQualityReport + def initialize(html) + @html = html + end + + def writeHtml(hDataQualityReport) + @html.section(:class => 'block') do + writeQualityMeasure(hDataQualityReport[:qualityMeasure]) unless hDataQualityReport[:qualityMeasure].empty? + end + @html.section(:class => 'block') do + writeEvaluationMethod(hDataQualityReport[:evaluationMethod]) unless hDataQualityReport[:evaluationMethod].empty? + end + @html.section(:class => 'block') do + writeConformanceResult(hDataQualityReport[:conformanceResult]) unless hDataQualityReport[:conformanceResult].empty? + end + @html.section(:class => 'block') do + writeCoverageResult(hDataQualityReport[:coverageResult]) unless hDataQualityReport[:coverageResult].empty? + end + @html.section(:class => 'block') do + writeDescriptiveResult(hDataQualityReport[:descriptiveResult]) unless hDataQualityReport[:descriptiveResult].empty? + end + @html.section(:class => 'block') do + writeQuantitativeResult(hDataQualityReport[:quantitativeResult]) unless hDataQualityReport[:quantitativeResult].empty? + end + end + + private + + def writeQualityMeasure(qualityMeasure) + identifierClass = Html_Identifier.new(@html) + + @html.details do + @html.summary('Quality Measure', {'class' => 'h5'}) + @html.section(:class => 'block') do + # Identifier + unless qualityMeasure[:identifier].empty? + @html.details do + @html.summary('Identifier', {'class' => 'h5'}) + @html.section(:class => 'block') do + identifierClass.writeHtml(qualityMeasure[:identifier]) + end + end + end + + # Description + unless qualityMeasure[:description].nil? + @html.em('Description: ') + @html.text!(qualityMeasure[:description]) + @html.br + end + + # Names + unless qualityMeasure[:nameOfMeasure].empty? + @html.em('Names: ') + @html.text!(qualityMeasure[:nameOfMeasure].join('; ')) + @html.br + end + end + end + end + + def writeEvaluationMethod(evaluationMethod) + citationClass = Html_Citation.new(@html) + + @html.details do + @html.summary('Evaluation Method', {'class' => 'h5'}) + @html.section(:class => 'block') do + # Type + unless evaluationMethod[:type].nil? + @html.em('Type: ') + @html.text!(evaluationMethod[:type]) + @html.br + end + + # DateTime + unless evaluationMethod[:dateTime].nil? + @html.em('Date Time: ') + evaluationMethod[:dateTime].each do |datetime| + @html.text!(datetime) + @html.br + end + @html.br + end + + # MethodDescription + unless evaluationMethod[:methodDescription].nil? + @html.em('Evaluation Method Description: ') + @html.text!(evaluationMethod[:methodDescription]) + @html.br + end + + # EvaluationMethodType + unless evaluationMethod[:evaluationMethodType].nil? + @html.em('Evaluation Method Type: ') + @html.text!(evaluationMethod[:evaluationMethodType]) + @html.br + end + + # DeductiveSource + unless evaluationMethod[:deductiveSource].nil? + @html.em('Deductive Source: ') + @html.text!(evaluationMethod[:deductiveSource]) + @html.br + end + + # SamplingScheme + unless evaluationMethod[:samplingScheme].nil? + @html.em('Sampling Scheme: ') + @html.text!(evaluationMethod[:samplingScheme]) + @html.br + end + + # LotDescription + unless evaluationMethod[:lotDescription].nil? + @html.em('Lot Description: ') + @html.text!(evaluationMethod[:lotDescription]) + @html.br + end + + # SamplingRatio + unless evaluationMethod[:samplingRatio].nil? + @html.em('Sampling Ratio: ') + @html.text!(evaluationMethod[:samplingRatio]) + @html.br + end + + # EvaluationProcedure + unless evaluationMethod[:evaluationProcedure].empty? + @html.details do + @html.summary('Evaluation Procedure', {'class' => 'h5'}) + @html.section(:class => 'block') do + citationClass.writeHtml(evaluationMethod[:evaluationProcedure]) + end + end + end + + # ReferenceDocument + unless evaluationMethod[:referenceDocuments].empty? + @html.details do + @html.summary('Reference Document', {'class' => 'h5'}) + evaluationMethod[:referenceDocuments].each do |doc| + @html.section(:class => 'block') do + citationClass.writeHtml(doc) + end + end + end + end + end + end + end + + def writeConformanceResult(conformanceResult) + citationClass = Html_Citation.new(@html) + scopeClass = Html_Scope.new(@html) + + @html.details do + @html.summary('Conformance Result', {'class' => 'h5'}) + conformanceResult.each do |result| + @html.section(:class => 'block') do + # DateTime + unless result[:dateTime].nil? + @html.em('Date Time: ') + @html.text!(result[:dateTime]) + @html.br + end + + # Scope + unless result[:scope].empty? + @html.details do + @html.summary('Scope', {'class' => 'h5'}) + @html.section(:class => 'block') do + scopeClass.writeHtml(result[:scope]) + end + end + end + + # Name + unless result[:name].nil? + @html.em('Name: ') + @html.text!(result[:name]) + @html.br + end + + # Specification (citation) + unless result[:specification].empty? + @html.details do + @html.summary('Specification', {'class' => 'h5'}) + @html.section(:class => 'block') do + citationClass.writeHtml(result[:specification]) + end + end + end + + # Explanation + unless result[:explanation].nil? + @html.em('Explanation: ') + @html.text!(result[:explanation]) + @html.br + end + + # Pass (boolean) + unless result[:pass].nil? + @html.em('Pass: ') + @html.text!(result[:pass] ? 'Yes' : 'No') + @html.br + end + end + end + end + end + + def writeCoverageResult(coverageResult) + scopeClass = Html_Scope.new(@html) + spatialRepresentationClass = Html_SpatialRepresentation.new(@html) + formatClass = Html_Format.new(@html) + resultFileClass = Html_ResultFile.new(@html) + coverageInfoClass = Html_CoverageInfo.new(@html) + + @html.details do + @html.summary('Coverage Result', {'class' => 'h5'}) + coverageResult.each do |result| + @html.section(:class => 'block') do + # DateTime + unless result[:dateTime].nil? + @html.em('Date Time: ') + @html.text!(result[:dateTime]) + @html.br + end + + # Scope + unless result[:scope].empty? + @html.details do + @html.summary('Scope', {'class' => 'h5'}) + @html.section(:class => 'block') do + scopeClass.writeHtml(result[:scope]) + end + end + end + + # Name + unless result[:name].nil? + @html.em('Name: ') + @html.text!(result[:name]) + @html.br + end + + # SpatialRepresentationType + unless result[:spatialRepresentationType].nil? + @html.em('Spatial Representation Type: ') + @html.text!(result[:spatialRepresentationType]) + @html.br + end + + # SpatialRepresentation + unless result[:spatialRepresentation].empty? + @html.details do + @html.summary('Spatial Representation', {'class' => 'h5'}) + @html.section(:class => 'block') do + spatialRepresentationClass.writeHtml(result[:spatialRepresentation]) + end + end + end + + # ResultContentDescription + unless result[:resultContentDescription].empty? + @html.details do + @html.summary('Result Content Description', {'class' => 'h5'}) + @html.section(:class => 'block') do + coverageInfoClass.writeHtml(result[:resultContentDescription]) + end + end + end + + # ResourceFormat + unless result[:resourceFormat].empty? + @html.details do + @html.summary('Resource Format', {'class' => 'h5'}) + @html.section(:class => 'block') do + formatClass.writeHtml(result[:resourceFormat]) + end + end + end + + # ResultFile + unless result[:resultFile].empty? + @html.details do + @html.summary('Result File', {'class' => 'h5'}) + @html.section(:class => 'block') do + resultFileClass.writeHtml(result[:resultFile]) + end + end + end + + end + end + end + end + + def writeDescriptiveResult(descriptiveResult) + scopeClass = Html_Scope.new(@html) # Assuming a class to handle scope objects + + @html.details do + @html.summary('Descriptive Result', {'class' => 'h5'}) + descriptiveResult.each do |result| + @html.section(:class => 'block') do + # DateTime + unless result[:dateTime].nil? + @html.em('Date Time: ') + @html.text!(result[:dateTime]) + @html.br + end + + # Scope + unless result[:scope].empty? + @html.details do + @html.summary('Scope', {'class' => 'h5'}) + @html.section(:class => 'block') do + scopeClass.writeHtml(result[:scope]) + end + end + end + + # Name + unless result[:name].nil? + @html.em('Name: ') + @html.text!(result[:name]) + @html.br + end + + # Statement + unless result[:statement].nil? + @html.em('Statement: ') + @html.text!(result[:statement]) + @html.br + end + end + end + end + end + + def writeQuantitativeResult(quantitativeResult) + scopeClass = Html_Scope.new(@html) + + @html.details do + @html.summary('Quantitative Result', {'class' => 'h5'}) + quantitativeResult.each do |result| + @html.section(:class => 'block') do + # DateTime + unless result[:dateTime].nil? + @html.em('Date Time: ') + @html.text!(result[:dateTime]) + @html.br + end + + # Scope + unless result[:scope].empty? + @html.details do + @html.summary('Scope', {'class' => 'h5'}) + @html.section(:class => 'block') do + scopeClass.writeHtml(result[:scope]) + end + end + end + + # Name + unless result[:name].nil? + @html.em('Name: ') + @html.text!(result[:name]) + @html.br + end + + # Value + unless result[:values].empty? + @html.em('Value: ') + @html.text!(result[:values].join(', ')) + @html.br + end + + # ValueUnits + unless result[:valueUnits].nil? + @html.em('Value Units: ') + @html.text!(result[:valueUnits]) + @html.br + end + + # ValueRecordType + unless result[:valueRecordType].nil? + @html.em('Value Record Type: ') + @html.text!(result[:valueRecordType]) + @html.br + end + end + end + end + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/html/sections/html_rangeElementDescription.rb b/lib/adiwg/mdtranslator/writers/html/sections/html_rangeElementDescription.rb index 4e6b857cc..f7f4206d1 100644 --- a/lib/adiwg/mdtranslator/writers/html/sections/html_rangeElementDescription.rb +++ b/lib/adiwg/mdtranslator/writers/html/sections/html_rangeElementDescription.rb @@ -25,12 +25,12 @@ def writeHtml(red) @html.br end - red[:rangeElements].each do |hRangeElement| + red[:rangeElement].each do |hRangeElement| @html.em('Range Element:') @html.text!(hRangeElement) + @html.br end - @html.br end # writeHtml end # Html_RangeElementDescription diff --git a/lib/adiwg/mdtranslator/writers/html/sections/html_resultFile.rb b/lib/adiwg/mdtranslator/writers/html/sections/html_resultFile.rb new file mode 100644 index 000000000..19c8d1589 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/html/sections/html_resultFile.rb @@ -0,0 +1,60 @@ +# HTML writer +# result file + +require_relative 'html_format' + +module ADIWG + module Mdtranslator + module Writers + module Html + + class Html_ResultFile + + def initialize(html) + @html = html + end + + def writeHtml(hResultFile) + + # classes used + formatClass = Html_Format.new(@html) + + + # result file - file name + unless hResultFile[:fileName].nil? + @html.em('File Name: ') + @html.text!(hResultFile[:fileName]) + @html.br + end + + # result file - file type + unless hResultFile[:fileType].nil? + @html.em('File Type: ') + @html.text!(hResultFile[:fileType]) + @html.br + end + + # result file - file description + unless hResultFile[:fileDescription].nil? + @html.em('File Description: ') + @html.text!(hResultFile[:fileDescription]) + @html.br + end + + # resource format - format specification {citation} + unless hResultFile[:fileFormat].empty? + @html.details do + @html.summary(hResultFile[:fileFormat][:title], {'class' => 'h5'}) + @html.section(:class => 'block') do + formatClass.writeHtml(hResultFile[:fileFormat]) + end + end + end + + end # writeHtml + end # Html_Format + + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_dataIdentification.rb b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_dataIdentification.rb index 53a8eb335..ed3264955 100644 --- a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_dataIdentification.rb +++ b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_dataIdentification.rb @@ -277,6 +277,33 @@ def writeXML(hMetadata) # data identification - resource constraints [] {MD_Constraints} aConstraint = hResource[:constraints] + legalConstraint = aConstraint.find { |hCon| hCon[:type] == 'legal' } + # handle distribution liability statements - add to legal constraint -> other constraints + aDistInfo = hMetadata[:distributorInfo] + liabilityStatements = [] + aDistInfo.each do |hDistribution| + unless hDistribution.empty? + unless hDistribution[:liabilityStatement].nil? + liabilityStatements << hDistribution[:liabilityStatement] + end + end + end + if liabilityStatements.any? + # Create a new legal constraint if it doesn't exist + unless legalConstraint + legalConstraint = { + type: 'legal', + legalConstraint: { + otherCons: [] + } + } + aConstraint << legalConstraint + end + liabilityStatements.each do |liabilityStatement| + legalConstraint[:legalConstraint][:otherCons] << liabilityStatement + end + end + aConstraint.each do |hCon| @xml.tag!('mri:resourceConstraints') do constraintClass.writeXML(hCon, 'resource information') @@ -286,6 +313,8 @@ def writeXML(hMetadata) @xml.tag!('mri:resourceConstraints') end + # data identification - resource constraints {} from distribution liability statement + # data identification - associated resource [] {MD_AssociatedResource} aAssocRes.each do |hAssocRes| @xml.tag!('mri:associatedResource') do diff --git a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_dataQualityReport.rb b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_dataQualityReport.rb index b86541542..d8b4fc131 100644 --- a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_dataQualityReport.rb +++ b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_dataQualityReport.rb @@ -1,3 +1,14 @@ +require_relative '../iso19115_3_writer' +require_relative 'class_format' +require_relative 'class_qualityResultFile' +require_relative 'class_date' +require_relative 'class_scope' +require_relative 'class_spatialRepresentation' +require_relative 'class_coverageDescription' +require_relative 'class_codelist' +require_relative 'class_identifier' +require_relative 'class_citation' + module ADIWG module Mdtranslator module Writers @@ -12,83 +23,245 @@ def initialize(xml, hResponseObj) def writeXML(hReport) # require 'pry'; binding.pry + formatClass = MD_Format.new(@xml, @hResponseObj) + qualityResultFileClass = QualityResultFile.new(@xml, @hResponseObj) + dateClass = CI_Date.new(@xml, @hResponseObj) + scopeClass = MD_Scope.new(@xml, @hResponseObj) + spatialRepresentationClass = SpatialRepresentation.new(@xml, @hResponseObj) + coverageDescriptionClass = MD_CoverageDescription.new(@xml, @hResponseObj) + codeListClass = MD_Codelist.new(@xml, @hResponseObj) + identifierClass = MD_Identifier.new(@xml, @hResponseObj) + citationClass = CI_Citation.new(@xml, @hResponseObj) + @xml.tag!('mdq:report') do @xml.tag!("mdq:#{hReport[:type]}") do - # conformanceResult [] - - # coverageResult [] + # standaloneQualityReportDetails + unless hReport[:standaloneQualityReportDetails].nil? + @xml.tag!('mdq:standaloneQualityReportDetails') do + @xml.tag!('gco:CharacterString', hReport[:standaloneQualityReportDetails]) + end + end - # descriptiveResult [] - unless hReport[:descriptiveResult].nil? || hReport[:descriptiveResult].empty? - hReport[:descriptiveResult].each do |descriptiveResult| - @xml.tag!('mdq:result') do - @xml.tag!('mdq:DQ_DescriptiveResult') do - unless descriptiveResult[:statement].nil? || descriptiveResult[:statement].empty? - @xml.tag!('mdq:statement') do - @xml.tag!('gco:CharacterString', descriptiveResult[:statement]) + # qualityMeasure {} + qualityMeasure = hReport[:qualityMeasure] + unless qualityMeasure.empty? + @xml.tag!('mdq:measure') do + @xml.tag!('mdq:DQ_MeasureReference') do + unless qualityMeasure[:identifier].empty? + @xml.tag!('mdq:measureIdentification') do + identifierClass.writeXML(qualityMeasure[:identifier]) + end + end + unless qualityMeasure[:nameOfMeasure].nil? + qualityMeasure[:nameOfMeasure].each do |value| + @xml.tag!('mdq:nameOfMeasure') do + @xml.tag!('gco:CharacterString', value) end end end + unless qualityMeasure[:description].nil? + @xml.tag!('mdq:measureDescription') do + @xml.tag!('gco:CharacterString', qualityMeasure[:description]) + end + end end end - end + end # qualityMeasure # evaluationMethod {} evaluationMethod = hReport[:evaluationMethod] - unless evaluationMethod.nil? || evaluationMethod.empty? + unless evaluationMethod.empty? @xml.tag!('mdq:evaluationMethod') do @xml.tag!('mdq:DQ_EvaluationMethod') do - @xml.tag!('mdq:evaluationMethodDescription') do - @xml.tag!('gco:CharacterString', evaluationMethod[:methodDescription]) + unless evaluationMethod[:dateTime].empty? + evaluationMethod[:dateTime].each do |dateTime| + dateTimeValue = DateTime.parse(dateTime).strftime('%Y-%m-%dT%H:%M:%S') + @xml.tag!('mdq:dateTime') do + @xml.tag!('gco:DateTime', dateTimeValue) + end + end + end + unless evaluationMethod[:methodDescription].nil? + @xml.tag!('mdq:evaluationMethodDescription') do + @xml.tag!('gco:CharacterString', evaluationMethod[:methodDescription]) + end + end + unless evaluationMethod[:evaluationProcedure].empty? + @xml.tag!('mdq:evaluationProcedure') do + citationClass.writeXML(evaluationMethod[:evaluationProcedure]) + end + end + unless evaluationMethod[:referenceDocuments].empty? + evaluationMethod[:referenceDocuments].each do |citation| + @xml.tag!('mdq:referenceDoc') do + citationClass.writeXML(citation) + end + end + end + unless evaluationMethod[:evaluationMethodType].nil? + @xml.tag!('mdq:evaluationMethodType') do + codeListClass.writeXML('mcc', 'iso_evaluationMethodType', evaluationMethod[:evaluationMethodType]) + end end end end - end + end # evaluationMethod - # qualityMeasure {} - qualityMeasure = hReport[:qualityMeasure] - unless qualityMeasure.nil? || qualityMeasure.empty? - @xml.tag!('mdq:measure') do - @xml.tag!('mdq:DQ_MeasureReference') do - unless qualityMeasure[:name].nil? - qualityMeasure[:name].each do |value| - @xml.tag!('mdq:nameOfMeasure') do - @xml.tag!('gco:CharacterString', value) + # conformanceResult [] + unless hReport[:conformanceResult].empty? + hReport[:conformanceResult].each do |conformanceResult| + @xml.tag!('mdq:result') do + @xml.tag!('mdq:DQ_ConformanceResult') do + unless conformanceResult[:dateTime].nil? + dateTimeValue = DateTime.parse(conformanceResult[:dateTime]).strftime('%Y-%m-%dT%H:%M:%S') + @xml.tag!('mdq:dateTime') do + @xml.tag!('gco:DateTime', dateTimeValue) + end + end + unless conformanceResult[:scope].empty? + @xml.tag!('mdq:resultScope') do + scopeClass.writeXML(conformanceResult[:scope]) + end + end + unless conformanceResult[:specification].empty? + @xml.tag!('mdq:specification') do + citationClass.writeXML(conformanceResult[:specification]) + end + end + unless conformanceResult[:explanation].nil? + @xml.tag!('mdq:explanation') do + @xml.tag!('gco:CharacterString', conformanceResult[:explanation]) + end + end + unless conformanceResult[:pass].nil? + @xml.tag!('mdq:pass') do + @xml.tag!('gco:Boolean', conformanceResult[:pass]) end end end + end + end + end # conformanceResult - unless qualityMeasure[:description].nil? - @xml.tag!('mdq:measureDescription') do - @xml.tag!('gco:CharacterString', qualityMeasure[:description]) + # descriptiveResult [] + unless hReport[:descriptiveResult].empty? + hReport[:descriptiveResult].each do |descriptiveResult| + @xml.tag!('mdq:result') do + @xml.tag!('mdq:DQ_DescriptiveResult') do + unless descriptiveResult[:dateTime].nil? + dateTimeValue = DateTime.parse(descriptiveResult[:dateTime]).strftime('%Y-%m-%dT%H:%M:%S') + @xml.tag!('mdq:dateTime') do + @xml.tag!('gco:DateTime', dateTimeValue) + end + end + unless descriptiveResult[:scope].empty? + @xml.tag!('mdq:resultScope') do + scopeClass.writeXML(descriptiveResult[:scope]) + end + end + unless descriptiveResult[:statement].nil? + @xml.tag!('mdq:statement') do + @xml.tag!('gco:CharacterString', descriptiveResult[:statement]) + end end end end end - end - + end # descriptiveResult # quantitativeResult [] - unless hReport[:quantitativeResult].nil? || hReport[:quantitativeResult].empty? + unless hReport[:quantitativeResult].empty? hReport[:quantitativeResult].each do |quantitativeResult| @xml.tag!('mdq:result') do @xml.tag!('mdq:DQ_QuantitativeResult') do - quantitativeResult[:value].each do |value| - @xml.tag!('mdq:value') do - @xml.tag!('gco:Record', value) + unless quantitativeResult[:dateTime].nil? + dateTimeValue = DateTime.parse(quantitativeResult[:dateTime]).strftime('%Y-%m-%dT%H:%M:%S') + @xml.tag!('mdq:dateTime') do + @xml.tag!('gco:DateTime', dateTimeValue) + end + end + unless quantitativeResult[:scope].empty? + @xml.tag!('mdq:resultScope') do + scopeClass.writeXML(quantitativeResult[:scope]) + end + end + unless quantitativeResult[:values].empty? + quantitativeResult[:values].each do |value| + @xml.tag!('mdq:value') do + @xml.tag!('gco:Record', value) + end + end + end + unless quantitativeResult[:valueUnits].nil? + @xml.tag!('mdq:valueUnit') do + @xml.tag!('gml:UnitDefinition') do + @xml.tag!('gml:identifier', {'codeSpace' => 'units'}, quantitativeResult[:valueUnits]) + end + end + end + unless quantitativeResult[:valueRecordType].nil? + @xml.tag!('mdq:valueType') do + @xml.tag!('gco:RecordType', quantitativeResult[:valueRecordType]) end end end end end - end + end # quantitativeResult - end - end - end + # coverageResult [] + unless hReport[:coverageResult].empty? + hReport[:coverageResult].each do |coverageResult| + @xml.tag!('mdq:result') do + @xml.tag!('mdq:QE_CoverageResult') do + unless coverageResult[:dateTime].nil? + dateTimeValue = DateTime.parse(coverageResult[:dateTime]).strftime('%Y-%m-%dT%H:%M:%S') + @xml.tag!('mdq:dateTime') do + @xml.tag!('gco:DateTime', dateTimeValue) + end + end + unless coverageResult[:scope].empty? + @xml.tag!('mdq:resultScope') do + scopeClass.writeXML(coverageResult[:scope]) + end + end + unless coverageResult[:spatialRepresentationType].nil? + @xml.tag!('mdq:spatialRepresentationType') do + codeListClass.writeXML('mcc', 'iso_spatialRepresentation', coverageResult[:spatialRepresentationType]) + end + end + unless coverageResult[:resultFile].empty? + @xml.tag!('mdq:resultFile') do + qualityResultFileClass.writeXML(coverageResult[:resultFile]) + end + end + unless coverageResult[:spatialRepresentation].empty? + @xml.tag!('mdq:resultSpatialRepresentation') do + spatialRepresentationClass.writeXML(coverageResult[:spatialRepresentation]) + end + end + unless coverageResult[:resultContentDescription].empty? + @xml.tag!('mdq:resultContentDescription') do + coverageDescriptionClass.writeXML(coverageResult[:resultContentDescription]) + end + end + unless coverageResult[:resourceFormat].empty? + @xml.tag!('mdq:resultFormat') do + formatClass.writeXML(coverageResult[:resourceFormat]) + end + end + end + end + end + end # coverageResult + + end # mdq: + end # mdq:report + + end # writeXML - end + end # DataQualityReport class end end end diff --git a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_enumerationList.rb b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_enumerationList.rb new file mode 100755 index 000000000..f240dc4e1 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_enumerationList.rb @@ -0,0 +1,52 @@ +# ISO <> Enumerations +# 19115-2 writer output in XML + +# History: +# Stan Smith 2016-12-12 refactored for mdTranslator/mdJson 2.0 +# Stan Smith 2015-07-14 refactored to eliminate namespace globals $WriterNS and $IsoNS +# Stan Smith 2015-07-14 refactored to make iso19110 independent of iso19115_2 classes +# Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj) +# Stan Smith 2015-06-12 refactored to use mdCodes gem for codelist contents +# Stan Smith 2014-12-15 replaced NOAA CT_CodelistCatalogue with mdTranslator CT_CodelistCatalogue +# Stan Smith 2014-12-12 refactored to handle namespacing readers and writers +# Stan Smith 2014-10-15 allow non-ISO codesNames to be rendered +# Stan Smith 2013-08-09 original script + +require 'adiwg-mdcodes' + +module ADIWG + module Mdtranslator + module Writers + module Iso19115_3 + + class MD_EnumerationList + + def initialize(xml, responseObj) + @xml = xml + @hResponseObj = responseObj + end + + def writeXML(codeList, codeName) + + # get requested codelist from the adiwg-mdcodes gem + mdCodelist = ADIWG::Mdcodes.getCodelistDetail(codeList) + + sourceName = mdCodelist['sourceName'] + codelist = mdCodelist['codelist'] + + # search the codelist for a matching codeName + # only valid enumeration values can be written in ISO + codelist.each do |code| + if code['codeName'] == codeName + @xml.tag!('gmd:' + "#{sourceName}", codeName) + break + end + end + + end # writeXML + end # MD_EnumerationList class + + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_extension.rb b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_extension.rb new file mode 100644 index 000000000..d56d28b02 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_extension.rb @@ -0,0 +1,208 @@ +# ISO <> MD_MetadataExtensionInformation +# 19115-2 writer output in XML + +# History: +# Stan Smith 2019-03-22 replaced Enumeration class with method +# Stan Smith 2018-04-09 add error and warning messaging +# Stan Smith 2015-07-14 refactored to eliminate namespace globals $WriterNS and $IsoNS +# Stan Smith 2015-07-14 refactored to make iso19110 independent of iso19115_2 classes +# Stan Smith 2015-06-22 replace global ($response) with passed in object (hResponseObj) +# Stan Smith 2015-06-11 change all codelists to use 'class_codelist' method +# Stan Smith 2014-12-12 refactored to handle namespacing readers and writers +# Stan Smith 2014-07-08 modify require statements to function in RubyGem structure +# Stan Smith 2013-11-22 original script. + +require 'adiwg/mdtranslator/internal/module_codelistFun' +require_relative '../iso19115_3_writer' +require_relative 'class_codelist' +require_relative 'class_enumerationList' +require_relative 'class_onlineResource' + +module ADIWG + module Mdtranslator + module Writers + module Iso19115_3 + + class MD_MetadataExtensionInformation + + def initialize(xml, hResponseObj) + @xml = xml + @hResponseObj = hResponseObj + @NameSpace = ADIWG::Mdtranslator::Writers::Iso19115_3 + end + + def writeXML(hExtension) + + # classes used + codelistClass = MD_Codelist.new(@xml, @hResponseObj) + olResClass = CI_OnlineResource.new(@xml, @hResponseObj) + + outContext = 'extension information' + outContext = 'extension name ' + hExtension[:name] unless hExtension[:name].nil? + + @xml.tag!('gmd:MD_MetadataExtensionInformation') do + + # metadata extension - online resource {CI_OnLineResource} + hOLResource = hExtension[:onLineResource] + unless hOLResource.empty? + @xml.tag!('gmd:extensionOnLineResource') do + olResClass.writeXML(hOLResource, outContext) + end + end + if hOLResource.empty? && @hResponseObj[:writerShowTags] + @xml.tag!('gmd:extensionOnLineResource') + end + + # metadata extension = extended element information + @xml.tag!('gmd:extendedElementInformation') do + @xml.tag!('gmd:MD_ExtendedElementInformation') do + + # extended element info - name (required) + s = hExtension[:name] + unless s.nil? + @xml.tag!('gmd:name') do + @xml.tag!('gco:CharacterString', s) + end + end + if s.nil? + @NameSpace.issueWarning(100, 'gmd:name') + end + + # extended element info - short name + s = hExtension[:shortName] + unless s.nil? + @xml.tag!('gmd:shortName') do + @xml.tag!('gco:CharacterString', s) + end + end + if s.nil? && @hResponseObj[:writerShowTags] + @xml.tag!('gmd:shortName') + end + + # extended element info - definition (required) + s = hExtension[:definition] + unless s.nil? + @xml.tag!('gmd:definition') do + @xml.tag!('gco:CharacterString', s) + end + end + if s.nil? + @NameSpace.issueWarning(101, 'gmd:definition', outContext) + end + + # extended element info - obligation {MD_ObligationCode} + obligation = hExtension[:obligation] + unless obligation.nil? + if CodelistFun.validateItem('iso_obligation', obligation) + @xml.tag!('gmd:obligation') do + @xml.tag!('gmd:MD_ObligationCode', obligation) + end + else + @NameSpace.issueWarning(380, 'gmd:obligation', "#{obligation}") + end + end + if obligation.nil? && @hResponseObj[:writerShowTags] + @xml.tag!('gmd:obligation') + end + + # extended element info - data type (required) + s = hExtension[:dataType] + unless s.nil? + @xml.tag!('gmd:dataType') do + codelistClass.writeXML('gmd', 'iso_entityClass', s) + end + end + if s.nil? + @NameSpace.issueWarning(102, 'gmd:dataType', outContext) + end + + # extended element info - maximum occurrence + s = hExtension[:maxOccurrence] + unless s.nil? + @xml.tag!('gmd:maximumOccurrence') do + @xml.tag!('gco:CharacterString', s) + end + end + if s.nil? && @hResponseObj[:writerShowTags] + @xml.tag!('gmd:maximumOccurrence') + end + + # extended element info - parent entity [] (required) + aParents = hExtension[:parentEntities] + aParents.each do |parent| + @xml.tag!('gmd:parentEntity') do + @xml.tag!('gco:CharacterString', parent) + end + end + if aParents.empty? + @NameSpace.issueWarning(103, 'gmd:parentEntity', outContext) + end + + # extended element info - rule + s = hExtension[:rule] + unless s.nil? + @xml.tag!('gmd:rule') do + @xml.tag!('gco:CharacterString', s) + end + end + if s.nil? + @NameSpace.issueWarning(104, 'gmd:rule', outContext) + end + + # extended element info - rationale [] + aRations = hExtension[:rationales] + aRations.each do |ration| + @xml.tag!('gmd:rationale') do + @xml.tag!('gco:CharacterString', ration) + end + end + if aRations.empty? && @hResponseObj[:writerShowTags] + @xml.tag!('gmd:rationale') + end + + # extended element info - source [] (required) + # only allowing 1 for now + role = hExtension[:sourceRole] + unless role.nil? + @xml.tag!('gmd:source') do + @xml.tag!('gmd:CI_ResponsibleParty') do + orgName = hExtension[:sourceOrganization] + unless orgName.nil? + @xml.tag!('gmd:organisationName') do + @xml.tag!('gco:CharacterString', orgName) + end + end + uri = hExtension[:sourceURI] + unless uri.nil? + @xml.tag!('gmd:contactInfo') do + @xml.tag!('gmd:CI_Contact') do + @xml.tag!('gmd:onlineResource') do + @xml.tag!('gmd:CI_OnlineResource') do + @xml.tag!('gmd:linkage') do + @xml.tag!('gmd:URL', uri) + end + end + end + end + end + end + @xml.tag!('gmd:role') do + codelistClass.writeXML('gmd', 'iso_role', role) + end + end + end + end + if role.nil? + @NameSpace.issueWarning(105, 'gmd:source', outContext) + end + + end # gmd:MD_ExtendedElementInformation tag + end # gmd:extendedElementInformation + end # gmd:MD_MetadataExtensionInformation + end # writeXML + end # MD_MetadataExtensionInformation class + + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_gcoDateTime.rb b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_gcoDateTime.rb index 5c7d87533..e408a5f0e 100644 --- a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_gcoDateTime.rb +++ b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_gcoDateTime.rb @@ -24,7 +24,16 @@ def writeXML(hDate) # date - date (required) unless date.nil? case dateRes - when 'Y', 'YM', 'YMD', 'YMDh', 'YMDhm', 'YMDhms' + when 'Y' + dateStr = AdiwgDateTimeFun.stringDateFromDateTime(date, 'Y') + @xml.tag!('gco:Date', dateStr) + when 'YM' + dateStr = AdiwgDateTimeFun.stringDateFromDateTime(date, 'YM') + @xml.tag!('gco:Date', dateStr) + when 'YMD' + dateStr = AdiwgDateTimeFun.stringDateFromDateTime(date, 'YMD') + @xml.tag!('gco:Date', dateStr) + when 'YMDh', 'YMDhm', 'YMDhms' dateStr = AdiwgDateTimeFun.stringDateTimeFromDateTime(date, 'YMDhms') @xml.tag!('gco:DateTime', dateStr) when 'YMDhZ', 'YMDhmZ', 'YMDhmsZ' diff --git a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_mdMetadata.rb b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_mdMetadata.rb index 60ac34d75..f49ac14ab 100644 --- a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_mdMetadata.rb +++ b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_mdMetadata.rb @@ -26,6 +26,7 @@ require_relative 'class_spatialRepresentation' require_relative 'class_referenceSystem' require_relative 'class_featureCatalog' +require_relative 'class_extension' module ADIWG module Mdtranslator @@ -62,6 +63,7 @@ def writeXML(intObj) representationClass = SpatialRepresentation.new(@xml, @hResponseObj) referenceSystemClass = MD_ReferenceSystem.new(@xml, @hResponseObj) mdCatalogClass = MD_FeatureCatalogue.new(@xml, @hResponseObj) + extensionClass = MD_MetadataExtensionInformation.new(@xml, @hResponseObj) # create shortcuts to sections of internal object hMetadata = intObj[:metadata] @@ -85,7 +87,7 @@ def writeXML(intObj) # schema locations # set to 'remoteSchema' before publishing localSchema = 'C:\Users\StanSmith\Projects\ISO\19115\-3\mdt\1.0\mdt.xsd' - remoteSchema = 'http://standards.iso.org/iso/19115/-3/mdt/2.0/mdt.xsd' + remoteSchema = 'https://schemas.isotc211.org/19115/-3/mdt/2.0/mdt.xsd' # MD_Metadata @xml.tag!('mdb:MD_Metadata', @@ -291,6 +293,31 @@ def writeXML(intObj) @xml.tag!('mdb:referenceSystemInfo') end + taxonomyArray = hResInfo[:taxonomy] + unless taxonomyArray.empty? + # metadata information - metadata extension info + # add biological profile to all metadata records + intBio = intMetadataClass.newMetadataExtension + intBio[:name] = 'Taxonomy System' + intBio[:shortName] = 'TaxonSys' + intBio[:definition] = 'Documentation of taxonomic sources, procedures, and treatments' + intBio[:obligation] = 'optional' + intBio[:dataType] = 'class' + intBio[:maxOccurrence] = '1' + intBio[:parentEntities] << 'MD_Identification' + intBio[:rule] = 'New Metadata section as a class to MD_Identification' + intBio[:rationales] << 'The set of data elements contained within this class element ' + + 'represents an attempt to provide better documentation of ' + + 'taxonomic sources, procedures, and treatments.' + intBio[:sourceOrganization] = 'National Biological Information Infrastructure' + intBio[:sourceURI] = 'https://www2.usgs.gov/core_science_systems/Access/p1111-1.html' + intBio[:sourceRole] = 'author' + + @xml.tag!('gmd:metadataExtensionInfo') do + extensionClass.writeXML(intBio) + end + end + # ###################### Begin Data Identification ##################### # metadata information - data identification info - required diff --git a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_organization.rb b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_organization.rb index 4cef88081..8f577041b 100644 --- a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_organization.rb +++ b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_organization.rb @@ -113,25 +113,7 @@ def writeXML(hParty, hContact, inContext = nil) @xml.tag!('cit:individual') end - # organization - party identifier - if hContact[:externalIdentifier] && hContact[:externalIdentifier].length > 0 - hContact[:externalIdentifier].each do |identifier| - @xml.tag!('cit:partyIdentifier') do - identifierClass.writeXML(identifier); - end - end - else - if hContact[:contactId] && - hContact[:contactId].is_a?(Hash) - @xml.tag!('cit:partyIdentifier') do - identifierClass.writeXML(hContact[:contactId]); - end - elsif hContact[:contactId].is_a?(String) - @xml.tag!('cit:partyIdentifier') do - identifierClass.writeXML({ identifier: hContact[:contactId] }) - end - end - end + end if hContact.empty? diff --git a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_qualityResultFile.rb b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_qualityResultFile.rb new file mode 100644 index 000000000..28ed566bc --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_qualityResultFile.rb @@ -0,0 +1,55 @@ +require_relative '../iso19115_3_writer' +require_relative 'class_format' + +module ADIWG + module Mdtranslator + module Writers + module Iso19115_3 + + class QualityResultFile + + def initialize(xml, hResponseObj) + @xml = xml + @hResponseObj = hResponseObj + @NameSpace = ADIWG::Mdtranslator::Writers::Iso19115_3 + end + + def writeXML(hResultFile, inContext = nil) + + # classes used + formatClass = MD_Format.new(@xml, @hResponseObj) + + @xml.tag!('mdq:QualityResultFile') do + + unless hResultFile[:fileName].nil? + @xml.tag!('mdq:fileName') do + @xml.tag!('gcx:FileName', hResultFile[:fileName]) + end + end + + unless hResultFile[:fileType].nil? + @xml.tag!('mdq:fileType') do + @xml.tag!('gcx:MimeFileType', {:type => hResultFile[:fileType]}) + end + end + + unless hResultFile[:fileDescription].nil? + @xml.tag!('mdq:fileDescription') do + @xml.tag!('gco:CharacterString', hResultFile[:fileDescription]) + end + end + + unless hResultFile[:fileFormat].empty? + @xml.tag!('mdq:fileFormat') do + formatClass.writeXML(hResultFile[:fileFormat], inContext) + end + end + + end + end # writeXML + end + + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_rangeElementDescription.rb b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_rangeElementDescription.rb index cc5c71bec..7a8e49fd0 100644 --- a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_rangeElementDescription.rb +++ b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_rangeElementDescription.rb @@ -17,23 +17,24 @@ def initialize(xml, hResponseObj) end def writeXML(hAttribute, inContext = nil) - - unless hAttribute[:name].nil? - @xml.tag!('mrc:name') do - @xml.tag!('gco:CharacterString', hAttribute[:name]) + @xml.tag!('mrc:MI_RangeElementDescription') do + unless hAttribute[:name].nil? + @xml.tag!('mrc:name') do + @xml.tag!('gco:CharacterString', hAttribute[:name]) + end end - end - unless hAttribute[:definition].nil? - @xml.tag!('mrc:definition') do - @xml.tag!('gco:CharacterString', hAttribute[:definition]) + unless hAttribute[:definition].nil? + @xml.tag!('mrc:definition') do + @xml.tag!('gco:CharacterString', hAttribute[:definition]) + end end - end - hAttribute[:rangeElements].each do |hRangeElement| - @xml.tag!('mrc:rangeElement') do - @xml.tag!('gco:Record') do - @xml.tag!('gco:CharacterString', hRangeElement) + hAttribute[:rangeElement].each do |hRangeElement| + @xml.tag!('mrc:rangeElement') do + @xml.tag!('gco:Record') do + @xml.tag!('gco:CharacterString', hRangeElement) + end end end end diff --git a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_sampleDimension.rb b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_sampleDimension.rb index 3e2ae4814..20056e431 100644 --- a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_sampleDimension.rb +++ b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_sampleDimension.rb @@ -67,12 +67,6 @@ def writeXML(hAttribute, inContext = nil) @xml.tag!('mrc:scaleFactor') end - hAttribute[:rangeElementDescription].each do |red| - @xml.tag!('mrc:rangeElementDescription') do - rangeElementDescription.writeXML(red, inContext) - end - end - # sample dimension - offset {real} unless hAttribute[:offset].nil? @xml.tag!('mrc:offset') do @@ -126,6 +120,12 @@ def writeXML(hAttribute, inContext = nil) @xml.tag!('mrc:bitsPerValue') end + hAttribute[:rangeElementDescription].each do |red| + @xml.tag!('mrc:rangeElementDescription') do + rangeElementDescription.writeXML(red, inContext) + end + end + end # writeXML end # MD_SampleDescription diff --git a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_timePeriod.rb b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_timePeriod.rb index d99eba4c6..35a4599b0 100644 --- a/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_timePeriod.rb +++ b/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_timePeriod.rb @@ -65,9 +65,7 @@ def writeXML(hPeriod) # if empty add indeterminatePosition="unknown" unless hPeriod[:startDateTime].empty? hDateTime = hPeriod[:startDateTime] - dateTime = hDateTime[:dateTime] - timeResolution = hDateTime[:dateResolution] - dateStr = AdiwgDateTimeFun.stringDateTimeFromDateTime(dateTime, timeResolution) + dateStr = AdiwgDateTimeFun.stringDateTimeFromDateObject(hDateTime) @xml.tag!('gml:beginPosition', dateStr) end if hPeriod[:startDateTime].empty? @@ -79,9 +77,7 @@ def writeXML(hPeriod) # if empty add indeterminatePosition="unknown" unless hPeriod[:endDateTime].empty? hDateTime = hPeriod[:endDateTime] - dateTime = hDateTime[:dateTime] - timeResolution = hDateTime[:dateResolution] - dateStr = AdiwgDateTimeFun.stringDateTimeFromDateTime(dateTime, timeResolution) + dateStr = AdiwgDateTimeFun.stringDateTimeFromDateObject(hDateTime) @xml.tag!('gml:endPosition', dateStr) end if hPeriod[:endDateTime].empty? diff --git a/lib/adiwg/mdtranslator/writers/iso19115_3/iso19115_3_writer.rb b/lib/adiwg/mdtranslator/writers/iso19115_3/iso19115_3_writer.rb index 912156880..19ccac687 100644 --- a/lib/adiwg/mdtranslator/writers/iso19115_3/iso19115_3_writer.rb +++ b/lib/adiwg/mdtranslator/writers/iso19115_3/iso19115_3_writer.rb @@ -20,6 +20,8 @@ module Iso19115_3 def self.startWriter(intObj, hResponseObj) + hResponseObj[:writerMissingIdCount] = '000' + # make contact available to the instance @contacts = intObj[:contacts] @hResponseObj = hResponseObj diff --git a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_allocation.rb b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_allocation.rb index c10a2317d..eb6768648 100644 --- a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_allocation.rb +++ b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_allocation.rb @@ -28,8 +28,8 @@ def self.build(hAllocation) json.recipientId hAllocation[:recipientId] json.responsibleParty @Namespace.json_map(hAllocation[:responsibleParties], ResponsibleParty) json.matching hAllocation[:matching] - json.onlineResource @Namespace.json_map(hAllocation[:onlineResources], OnlineResource) json.comment hAllocation[:comment] + json.onlineResource @Namespace.json_map(hAllocation[:onlineResources], OnlineResource) end end # build diff --git a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_conformanceResult.rb b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_conformanceResult.rb index 7e7c13c7b..af13418b4 100644 --- a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_conformanceResult.rb +++ b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_conformanceResult.rb @@ -10,11 +10,12 @@ module MdJson module ConformanceResult def self.build(hConformanceResult) Jbuilder.new do |json| - json.dateTime hConformanceResult[:dateTime] - json.scope Scope.build(hConformanceResult[:scope]) - json.specification Citation.build(hConformanceResult[:specification]) - json.explanation hConformanceResult[:explanation] - json.pass hConformanceResult[:pass] + json.dateTime hConformanceResult[:dateTime] unless hConformanceResult[:dateTime].nil? + json.scope Scope.build(hConformanceResult[:scope]) unless hConformanceResult[:scope].empty? + json.name hConformanceResult[:name] unless hConformanceResult[:name].nil? + json.specification Citation.build(hConformanceResult[:specification]) unless hConformanceResult[:specification].empty? + json.explanation hConformanceResult[:explanation] unless hConformanceResult[:explanation].nil? + json.pass hConformanceResult[:pass] unless hConformanceResult[:pass].nil? end end end diff --git a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_coverageResult.rb b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_coverageResult.rb new file mode 100644 index 000000000..14a392e1e --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_coverageResult.rb @@ -0,0 +1,31 @@ +require 'jbuilder' +require_relative 'mdJson_scope' +require_relative 'mdJson_spatialRepresentation' +require_relative 'mdJson_format' +require_relative 'mdJson_qualityResultFile' +require_relative 'mdJson_coverageDescription' + +module ADIWG + module Mdtranslator + module Writers + module MdJson + + module CoverageResult + def self.build(hCoverageResult) + Jbuilder.new do |json| + json.dateTime hCoverageResult[:dateTime] + json.scope Scope.build(hCoverageResult[:scope]) unless hCoverageResult[:scope].empty? + json.name hCoverageResult[:name] unless hCoverageResult[:name].nil? + json.spatialRepresentationType hCoverageResult[:spatialRepresentationType] + json.spatialRepresentation SpatialRepresentation.build(hCoverageResult[:spatialRepresentation]) unless hCoverageResult[:spatialRepresentation].empty? + json.resultContentDescription CoverageDescription.build(hCoverageResult[:resultContentDescription]) unless hCoverageResult[:resultContentDescription].empty? + json.resourceFormat Format.build(hCoverageResult[:resourceFormat]) unless hCoverageResult[:resourceFormat].empty? + json.resultFile QualityResultFile.build(hCoverageResult[:resultFile]) unless hCoverageResult[:resultFile].empty? + end + end + end + + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dataQuality.rb b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dataQuality.rb index 92e3fc1e6..afd9a8975 100644 --- a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dataQuality.rb +++ b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dataQuality.rb @@ -3,6 +3,8 @@ require 'jbuilder' require_relative 'mdJson_scope' require_relative 'mdJson_dataQualityReport' +require_relative 'mdJson_citation' +require_relative 'mdJson_standaloneQualityReport' module ADIWG module Mdtranslator @@ -17,7 +19,7 @@ def self.build(hDataQuality) Jbuilder.new do |json| json.scope Scope.build(hDataQuality[:scope]) json.systemIdentifier hDataQuality[:systemIdentifier] - json.standaloneQualityReport hDataQuality[:standaloneQualityReport] + json.standaloneQualityReport StandaloneQualityReport.build(hDataQuality[:standaloneReport]) unless hDataQuality[:standaloneReport].nil? json.report @Namespace.json_map(hDataQuality[:report], DataQualityReport) end diff --git a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dataQualityReport.rb b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dataQualityReport.rb index 9734a9eb6..196097faa 100644 --- a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dataQualityReport.rb +++ b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dataQualityReport.rb @@ -1,9 +1,10 @@ require 'jbuilder' -require_relative 'mdJson_conformanceResult' -require_relative 'mdJson_descriptiveResult' require_relative 'mdJson_qualityMeasure' -require_relative 'mdJson_quantitativeResult' require_relative 'mdJson_evaluationMethod' +require_relative 'mdJson_quantitativeResult' +require_relative 'mdJson_descriptiveResult' +require_relative 'mdJson_conformanceResult' +require_relative 'mdJson_coverageResult' module ADIWG module Mdtranslator @@ -16,13 +17,14 @@ module DataQualityReport def self.build(hReport) Jbuilder.new do |json| - json.type hReport[:type] - json.conformanceResult @Namespace.json_map(hReport[:conformanceResult], ConformanceResult) unless hReport[:conformanceResult].nil? || hReport[:conformanceResult].empty? - json.descriptiveResult @Namespace.json_map(hReport[:descriptiveResult], DescriptiveResult) unless hReport[:descriptiveResult].nil? || hReport[:descriptiveResult].empty? - json.evaluationMethod EvaluationMethod.build(hReport[:evaluationMethod]) unless hReport[:evaluationMethod].nil? - json.qualityMeasure QualityMeasure.build(hReport[:qualityMeasure]) unless hReport[:qualityMeasure].nil? - json.quantitativeResult @Namespace.json_map(hReport[:quantitativeResult], QuantitativeResult) unless hReport[:quantitativeResult].nil? || hReport[:quantitativeResult].empty? - + json.type hReport[:type] unless hReport[:type].nil? + json.standaloneQualityReportDetails hReport[:standaloneQualityReportDetails] unless hReport[:standaloneQualityReportDetails].nil? + json.qualityMeasure QualityMeasure.build(hReport[:qualityMeasure]) unless hReport[:qualityMeasure].empty? + json.evaluationMethod EvaluationMethod.build(hReport[:evaluationMethod]) unless hReport[:evaluationMethod].empty? + json.quantitativeResult @Namespace.json_map(hReport[:quantitativeResult], QuantitativeResult) unless hReport[:quantitativeResult].empty? + json.descriptiveResult @Namespace.json_map(hReport[:descriptiveResult], DescriptiveResult) unless hReport[:descriptiveResult].empty? + json.conformanceResult @Namespace.json_map(hReport[:conformanceResult], ConformanceResult) unless hReport[:conformanceResult].empty? + json.coverageResult @Namespace.json_map(hReport[:coverageResult], CoverageResult) unless hReport[:coverageResult].empty? end end diff --git a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_descriptiveResult.rb b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_descriptiveResult.rb index 497f615d5..20d90a9ab 100644 --- a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_descriptiveResult.rb +++ b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_descriptiveResult.rb @@ -9,9 +9,10 @@ module MdJson module DescriptiveResult def self.build(hResult) Jbuilder.new do |json| - json.dateTime hResult[:dateTime] - json.scope Scope.build(hResult[:scope]) unless hResult[:scope].nil? - json.statement hResult[:statement] + json.dateTime hResult[:dateTime] unless hResult[:dateTime].nil? + json.scope Scope.build(hResult[:scope]) unless hResult[:scope].empty? + json.name hResult[:name] unless hResult[:name].nil? + json.statement hResult[:statement] unless hResult[:statement].nil? end end diff --git a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_funding.rb b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_funding.rb index 59d66841a..70247a4bc 100644 --- a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_funding.rb +++ b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_funding.rb @@ -20,9 +20,9 @@ module Funding def self.build(hFunding) Jbuilder.new do |json| - json.description hFunding[:description] - json.timePeriod TimePeriod.build(hFunding[:timePeriod]) unless hFunding[:timePeriod].empty? json.allocation @Namespace.json_map(hFunding[:allocations], Allocation) + json.timePeriod TimePeriod.build(hFunding[:timePeriod]) unless hFunding[:timePeriod].empty? + json.description hFunding[:description] end end # build diff --git a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_legalConstraint.rb b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_legalConstraint.rb index 30ed6c303..75f5c4c87 100644 --- a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_legalConstraint.rb +++ b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_legalConstraint.rb @@ -15,8 +15,8 @@ module LegalConstraint def self.build(hLegal) Jbuilder.new do |json| - json.useConstraint hLegal[:useCodes] unless hLegal[:useCodes].empty? json.accessConstraint hLegal[:accessCodes] unless hLegal[:accessCodes].empty? + json.useConstraint hLegal[:useCodes] unless hLegal[:useCodes].empty? json.otherConstraint hLegal[:otherCons] unless hLegal[:otherCons].empty? end diff --git a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_metadata.rb b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_metadata.rb index 06971d11e..5a6469553 100644 --- a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_metadata.rb +++ b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_metadata.rb @@ -28,12 +28,12 @@ def self.build(hMetadata) Jbuilder.new do |json| json.metadataInfo MetadataInfo.build(hMetadata[:metadataInfo]) json.resourceInfo ResourceInfo.build(hMetadata[:resourceInfo]) + json.dataQuality @Namespace.json_map(hMetadata[:dataQuality], DataQuality) json.resourceLineage @Namespace.json_map(hMetadata[:lineageInfo], LineageInfo) json.resourceDistribution @Namespace.json_map(hMetadata[:distributorInfo], Distribution) json.associatedResource @Namespace.json_map(hMetadata[:associatedResources], AssociatedResource) json.additionalDocumentation @Namespace.json_map(hMetadata[:additionalDocuments], AdditionalDocument) json.funding @Namespace.json_map(hMetadata[:funding], Funding) - json.dataQuality @Namespace.json_map(hMetadata[:dataQuality], DataQuality) end end # build diff --git a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_onlineResource.rb b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_onlineResource.rb index b86b48831..97db1b538 100644 --- a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_onlineResource.rb +++ b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_onlineResource.rb @@ -19,10 +19,10 @@ def self.build(hOlRes) Jbuilder.new do |json| json.uri hOlRes[:olResURI] json.name hOlRes[:olResName] + json.protocol hOlRes[:olResProtocol] json.description hOlRes[:olResDesc] json.function hOlRes[:olResFunction] json.applicationProfile hOlRes[:olResApplicationProfile] - json.protocol hOlRes[:olResProtocol] json.protocolRequest hOlRes[:olResProtocolRequest] end diff --git a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_qualityMeasure.rb b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_qualityMeasure.rb index a347410b9..ff6fd7bf5 100644 --- a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_qualityMeasure.rb +++ b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_qualityMeasure.rb @@ -1,4 +1,5 @@ require 'jbuilder' +require_relative 'mdJson_identifier' module ADIWG module Mdtranslator @@ -8,9 +9,9 @@ module MdJson module QualityMeasure def self.build(hQualityMeasure) Jbuilder.new do |json| - json.identifier hQualityMeasure[:identifier] - json.name hQualityMeasure[:name] - json.description hQualityMeasure[:description] + json.identifier Identifier.build(hQualityMeasure[:identifier]) unless hQualityMeasure[:identifier].empty? + json.name hQualityMeasure[:nameOfMeasure] unless hQualityMeasure[:nameOfMeasure].empty? + json.description hQualityMeasure[:description] unless hQualityMeasure[:description].nil? end end end diff --git a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_qualityResultFile.rb b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_qualityResultFile.rb new file mode 100644 index 000000000..959b90435 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_qualityResultFile.rb @@ -0,0 +1,23 @@ +require 'jbuilder' +require_relative 'mdJson_format' + +module ADIWG + module Mdtranslator + module Writers + module MdJson + + module QualityResultFile + def self.build(hQualityResultFile) + Jbuilder.new do |json| + json.fileName hQualityResultFile[:fileName] + json.fileDescription hQualityResultFile[:fileDescription] + json.fileType hQualityResultFile[:fileType] + json.fileFormat Format.build(hQualityResultFile[:fileFormat]) unless hQualityResultFile[:fileFormat].nil? + end + end + end + + end + end + end +end \ No newline at end of file diff --git a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_quantitativeResult.rb b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_quantitativeResult.rb index de7d1a37c..9af7aebd3 100644 --- a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_quantitativeResult.rb +++ b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_quantitativeResult.rb @@ -9,11 +9,12 @@ module MdJson module QuantitativeResult def self.build(hResult) Jbuilder.new do |json| - json.dateTime hResult[:dateTime] - json.scope Scope.build(hResult[:scope]) if hResult[:scope] - json.value hResult[:value] - json.valueUnits hResult[:valueUnits] - json.valueRecordType hResult[:valueRecordType] + json.dateTime hResult[:dateTime] unless hResult[:dateTime].nil? + json.scope Scope.build(hResult[:scope]) unless hResult[:scope].empty? + json.name hResult[:name] unless hResult[:name].nil? + json.value hResult[:values] unless hResult[:values].empty? + json.valueUnits hResult[:valueUnits] unless hResult[:valueUnits].nil? + json.valueRecordType hResult[:valueRecordType] unless hResult[:valueRecordType].nil? end end end diff --git a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceInfo.rb b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceInfo.rb index b7669f025..0f533b293 100644 --- a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceInfo.rb +++ b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceInfo.rb @@ -42,8 +42,8 @@ def self.build(hResInfo) json.abstract hResInfo[:abstract] json.shortAbstract hResInfo[:shortAbstract] json.purpose hResInfo[:purpose] - json.credit hResInfo[:credits] unless hResInfo[:credits].empty? json.timePeriod TimePeriod.build(hResInfo[:timePeriod]) unless hResInfo[:timePeriod].empty? + json.credit hResInfo[:credits] unless hResInfo[:credits].empty? json.status hResInfo[:status] unless hResInfo[:status].empty? json.pointOfContact @Namespace.json_map(hResInfo[:pointOfContacts], ResponsibleParty) json.spatialReferenceSystem @Namespace.json_map(hResInfo[:spatialReferenceSystems], SpatialReference) diff --git a/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_standaloneQualityReport.rb b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_standaloneQualityReport.rb new file mode 100644 index 000000000..bb4f1a43e --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_standaloneQualityReport.rb @@ -0,0 +1,31 @@ +# mdJson 2.0 writer - dataQuality + +require 'jbuilder' +require_relative 'mdJson_citation' + +module ADIWG + module Mdtranslator + module Writers + module MdJson + + module StandaloneQualityReport + + @Namespace = ADIWG::Mdtranslator::Writers::MdJson + + def self.build(hStandaloneReport) + reportReference = hStandaloneReport[:reportReference] + Jbuilder.new do |json| + json.reportReference Citation.build(reportReference) + json.abstract hStandaloneReport[:abstract] + end + + end + + end + + end + end + end +end + + diff --git a/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_citation.rb b/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_citation.rb index e67e65dfe..fb6ea5ff2 100644 --- a/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_citation.rb +++ b/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_citation.rb @@ -12,15 +12,15 @@ module SbJson module Citation - # build from citation as follows ... - # names, [] {citation.responsibleParty[]} - # dates(type), [] {citation.dates[]} - # title, {citation.title} - # uri, [] {citation.onlineResource[]} def self.build(hCitation) citation = '' + if hCitation[:otherDetails].length > 0 + citation = hCitation[:otherDetails][0] + return citation + end + # names aParties = [] hCitation[:responsibleParties].each do |hResponsibility| @@ -45,32 +45,15 @@ def self.build(hCitation) unless hContact[:name].nil? sbRole = Codelists.codelist_adiwg2sb('role_adiwg2sb', hParty[:role]) sbRole = sbRole.nil? ? hParty[:role] : sbRole - citation += hContact[:name] + '(' + sbRole + '), ' + if sbRole.downcase == 'author' + citation += hContact[:name] + ', ' + end end end end - # dates - hCitation[:dates].each do |hDate| - dateStr = AdiwgDateTimeFun.stringDateFromDateObject(hDate) - dateType = Codelists.codelist_adiwg2sb('date_adiwg2sb', hDate[:dateType]) - unless dateType.nil? - citation += dateStr + '(' + dateType + '), ' - end - end - # title - citation += hCitation[:title] + ', ' - - # uri - hCitation[:onlineResources].each do |hOnline| - citation += hOnline[:olResURI] + ', ' - end - - # clean off last comma - if citation.length > 0 - citation = citation[0...-2] - end + citation += hCitation[:title] citation diff --git a/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_contact.rb b/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_contact.rb index c3e617f7e..20bd23245 100644 --- a/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_contact.rb +++ b/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_contact.rb @@ -149,6 +149,16 @@ def self.build(hParty) end end end + + if hContact[:externalIdentifier] && type == 'person' + hContact[:externalIdentifier].each do |hExternalIdentifier| + if hExternalIdentifier[:namespace] == 'ORCID' + json.orcId hExternalIdentifier[:identifier] + break + end + end + end + end end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_additionalDocumentation.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_additionalDocumentation.rb index eb86a2586..d7a9505bc 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_additionalDocumentation.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_additionalDocumentation.rb @@ -33,7 +33,7 @@ def writeHtml(hAddDoc) # additional documentation - citation [] {citation} hAddDoc[:citation].each do |hCitation| @html.div do - @html.div(hCitation[:title], {'class' => 'h5'}) + @html.h5(hCitation[:title], {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hCitation) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_algorithm.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_algorithm.rb index b2782f562..aa68d4965 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_algorithm.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_algorithm.rb @@ -32,7 +32,7 @@ def writeHtml(hAlgorithm) # algorithm - citation {citation} unless hAlgorithm[:citation].empty? @html.div do - @html.div('Algorithm citation', {'class' => 'h5'}) + @html.h5('Algorithm citation', {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hAlgorithm[:citation]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_allocation.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_allocation.rb index 296503c8b..0c6966b98 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_allocation.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_allocation.rb @@ -80,7 +80,7 @@ def writeHtml(hAllocation) # allocation - responsible parties [] {responsibleParty} hAllocation[:responsibleParties].each do |hResponsibility| @html.div do - @html.div(hResponsibility[:roleName], 'class' => 'h5') + @html.h5(hResponsibility[:roleName], 'class' => 'h5') @html.div(:class => 'block') do responsibilityClass.writeHtml(hResponsibility) end @@ -90,7 +90,7 @@ def writeHtml(hAllocation) # allocation - online resource [] {onlineResource} hAllocation[:onlineResources].each do |hOnline| @html.div do - @html.div('Online Resource', {'class' => 'h5'}) + @html.h5('Online Resource', {'class' => 'h5'}) @html.div(:class => 'block') do onlineClass.writeHtml(hOnline) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_associatedResource.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_associatedResource.rb index 83af5e693..353b8f2fb 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_associatedResource.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_associatedResource.rb @@ -47,7 +47,7 @@ def writeHtml(hResource) # associated resource - resource citation {citation} unless hResource[:resourceCitation].empty? @html.div do - @html.div('Resource citation', {'class' => 'h5'}) + @html.h5('Resource citation', {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hResource[:resourceCitation]) end @@ -57,7 +57,7 @@ def writeHtml(hResource) # associated resource - metadata citation unless hResource[:metadataCitation].empty? @html.div do - @html.div('Metadata citation', {'class' => 'h5'}) + @html.h5('Metadata citation', {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hResource[:metadataCitation]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_attribute.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_attribute.rb index adf123c00..071f39100 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_attribute.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_attribute.rb @@ -48,7 +48,7 @@ def writeHtml(hAttribute) # attribute - attribute identifiers [] {identifier} hAttribute[:attributeIdentifiers].each do |hIdentifier| @html.div do - @html.div('Identifier', 'class' => 'h5') + @html.h5('Identifier', 'class' => 'h5') @html.div(:class => 'block') do identifierClass.writeHtml(hIdentifier) end @@ -121,7 +121,7 @@ def writeHtml(hAttribute) # attribute - range element description hAttribute[:rangeElementDescription].each do |red| @html.div do - @html.div('Range Element Description', 'class' => 'h5') + @html.h5('Range Element Description', 'class' => 'h5') @html.div(:class => 'block') do rangeElementDescriptionClass.writeHtml(red) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_attributeGroup.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_attributeGroup.rb index 5b29e305f..bd8aeae16 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_attributeGroup.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_attributeGroup.rb @@ -35,7 +35,7 @@ def writeHtml(hGroup) hGroup[:attributes].each do |hAttribute| @html.div do counter += 1 - @html.div('Attribute '+counter.to_s, {'class' => 'h5'}) + @html.h5('Attribute '+counter.to_s, {'class' => 'h5'}) @html.div(:class => 'block') do attributeClass.writeHtml(hAttribute) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_body.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_body.rb index 429ff6fbb..3b2d14747 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_body.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_body.rb @@ -67,37 +67,25 @@ def writeHtml(version, intObj) @html.div('id' => 'sideNav') do # add section buttons - @html.a(' Top', {'href' => '#', 'class' => 'btn'}) @html.a(' Contacts', {'href' => '#body-contacts', 'class' => 'btn navBtn', 'id' => 'contactButton'}) @html.a(' Metadata', {'href' => '#body-metadataInfo', 'class' => 'btn navBtn', 'id' => 'metadataButton'}) @html.a(' Resource', {'href' => '#body-resourceInfo', 'class' => 'btn navBtn', 'id' => 'resourceButton'}) @html.a(' Lineage', {'href' => '#body-lineage', 'class' => 'btn navBtn', 'id' => 'lineageButton'}) @html.a(' Distribution', {'href' => '#body-distribution', 'class' => 'btn navBtn', 'id' => 'distributionButton'}) + @html.br @html.a(' Associated', {'href' => '#body-associatedResource', 'class' => 'btn navBtn', 'id' => 'associatedButton'}) @html.a(' Additional', {'href' => '#body-additionalDocument', 'class' => 'btn navBtn', 'id' => 'additionalButton'}) @html.a(' Dictionary', {'href' => '#body-dataDictionary', 'class' => 'btn navBtn', 'id' => 'dictionaryButton'}) @html.a(' Funding', {'href' => '#body-funding', 'class' => 'btn navBtn', 'id' => 'fundingButton'}) @html.a(' Repository', {'href' => '#body-repository', 'class' => 'btn navBtn', 'id' => 'repositoryButton'}) - # add open and close buttons - @html.span(' Open', {'class' => 'btn icon-caret-down', 'id' => 'openAllButton'}) - @html.span(' Close', {'class' => 'btn icon-caret-right', 'id' => 'closeAllButton'}) - end # main header @html.h2('id' => 'mainHeader') do # added blank to span tag to force builder to create closing tag - @html.span('', 'id' => 'logo') - @html.span('Metadata Record') - @html.span('HTML5', 'class' => 'version') end - # report title - # aShortVersion = version.split('.') - # shortVersion = aShortVersion[0].to_s + '.' + aShortVersion[1].to_s - @html.h1('mdTranslator ' + version + ' HTML Metadata Record', 'id' => 'mdtranslator-metadata-report') - # resource citation title unless hResourceInfo.empty? unless hResourceInfo[:citation].empty? @@ -110,7 +98,7 @@ def writeHtml(version, intObj) # report date @html.div(:class => 'block') do @html.em('Report Generated:') - @html.text!(Time.new.inspect) + @html.text!(Time.new.strftime('%Y-%m-%d %H:%M:%S')) end # metadata source @@ -129,6 +117,7 @@ def writeHtml(version, intObj) unless aContacts.empty? @html.div do @html.h2('Contacts', {'id' => 'body-contacts', 'class' => 'h2'}) + @html.span('', {'style' => 'mso-bookmark:body-contacts'}) @html.div(:class => 'block') do aContacts.each do |hContact| @html.div(:class => 'block') do @@ -136,6 +125,7 @@ def writeHtml(version, intObj) end end @html.hr + @html.br end end end @@ -144,6 +134,7 @@ def writeHtml(version, intObj) unless hMetaInfo.empty? @html.div do @html.h2('Metadata Information', {'id' => 'body-metadataInfo', 'class' => 'h2'}) + @html.span('', {'style' => 'mso-bookmark:body-metadataInfo'}) @html.div(:class => 'block') do @html.div(:class => 'block') do metaInfoClass.writeHtml(hMetaInfo) @@ -157,7 +148,8 @@ def writeHtml(version, intObj) unless hResourceInfo.empty? @html.div do @html.h2('Resource Information', {'id' => 'body-resourceInfo', 'class' => 'h2'}) - @html.div(:class => 'block') do + @html.span('', {'style' => 'mso-bookmark:body-resourceInfo'}) + @html.div(:class => 'block') do resourceClass.writeHtml(hResourceInfo) end @html.hr @@ -167,6 +159,7 @@ def writeHtml(version, intObj) unless aDataQuality.nil? || aDataQuality.empty? @html.div do @html.h2('Data Quality', {'id' => 'body-dataQuality', 'class' => 'h2'}) + @html.span('', {'style' => 'mso-bookmark:body-dataQuality'}) aDataQuality.each do |hDataQuality| @html.div(:class => 'block') do dataQualityClass.writeHtml(hDataQuality) @@ -179,6 +172,7 @@ def writeHtml(version, intObj) unless aLineage.empty? @html.div do @html.h2('Resource Lineage', {'id' => 'body-lineage', 'class' => 'h2'}) + @html.span('', {'style' => 'mso-bookmark:body-lineage'}) @html.div(:class => 'block') do aLineage.each do |hLineage| @html.div do @@ -197,6 +191,7 @@ def writeHtml(version, intObj) unless aDistribution.empty? @html.div do @html.h2('Resource Distribution', {'id' => 'body-distribution', 'class' => 'h2'}) + @html.span('', {'style' => 'mso-bookmark:body-distribution'}) @html.div(:class => 'block') do aDistribution.each do |hDistribution| @html.div do @@ -215,6 +210,7 @@ def writeHtml(version, intObj) unless aAssociated.empty? @html.div do @html.h2('Associated Resources', {'id' => 'body-associatedResource', 'class' => 'h2'}) + @html.span('', {'style' => 'mso-bookmark:body-associatedResource'}) @html.div(:class => 'block') do aAssociated.each do |hAssociated| @html.div do @@ -233,6 +229,7 @@ def writeHtml(version, intObj) unless aAdditional.empty? @html.div do @html.h2('Additional Documentation', {'id' => 'body-additionalDocument', 'class' => 'h2'}) + @html.span('', {'style' => 'mso-bookmark:body-additionalDocument'}) @html.div(:class => 'block') do aAdditional.each do |hAdditional| @html.div do @@ -251,6 +248,7 @@ def writeHtml(version, intObj) unless aDictionaries.empty? @html.div do @html.h2('Data Dictionaries', {'id' => 'body-dataDictionary', 'class' => 'h2'}) + @html.span('', {'style' => 'mso-bookmark:body-dataDictionary'}) @html.div(:class => 'block') do aDictionaries.each do |hDictionary| @html.div do @@ -268,6 +266,7 @@ def writeHtml(version, intObj) unless aFunding.empty? @html.div do @html.h2('Funding', {'id' => 'body-funding', 'class' => 'h2'}) + @html.span('', {'style' => 'mso-bookmark:body-funding'}) @html.div(:class => 'block') do aFunding.each do |hFunding| @html.div do @@ -285,6 +284,7 @@ def writeHtml(version, intObj) unless aRepositories.empty? @html.div do @html.h2('Metadata Repositories', {'id' => 'body-repository', 'class' => 'h2'}) + @html.span('', {'style' => 'mso-bookmark:body-repository'}) @html.div(:class => 'block') do aRepositories.each do |hRepository| @html.div do @@ -298,22 +298,6 @@ def writeHtml(version, intObj) end end - # load leaflet - @html.link( :rel => 'stylesheet', :href => 'https://unpkg.com/leaflet@1.0.3/dist/leaflet.css') - @html.script('', :src => 'https://unpkg.com/leaflet@1.0.3/dist/leaflet.js') - @html.script('', :src => 'https://stamen-maps.a.ssl.fastly.net/js/tile.stamen.js') - - # add inline javascript - # read javascript from file - path = File.join(File.dirname(__FILE__), 'html_bodyScript.js') - file = File.open(path, 'r') - bodyJS = file.read - file.close - - @html.script('type'=>'text/javascript') do - @html << bodyJS - end - end # body end # writeHtml end # Html_Body diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_bodyScript.js b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_bodyScript.js deleted file mode 100644 index a88cde78e..000000000 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_bodyScript.js +++ /dev/null @@ -1,317 +0,0 @@ - -//forEach Polyfill, Reference: https://goo.gl/hFIfSd -if (!Array.prototype.forEach) { - Array.prototype.forEach = function(callback, thisArg) { - var T, k; - if (this === null || this === undefined) { - throw new TypeError(' this is null or not defined'); - } - var O = Object(this); - var len = O.length >>> 0; - if ( typeof callback !== "function") { - throw new TypeError(callback + ' is not a function'); - } - if (arguments.length > 1) { - T = thisArg; - } - k = 0; - while (k < len) { - var kValue; - if ( k in O) { - kValue = O[k]; - callback.call(T, kValue, k, O); - } - k++; - } - }; -} - -// open detail panel in the document -function openDetail(evt) { - var href = evt.target.getAttribute("href"); - href = href.slice(1); - - if(window.location !== window.parent.location){ - evt.preventDefault(); - var el = document.getElementById(href); - window.scrollTo(0, el.offsetTop); - } - var parentNode = document.getElementById(href).parentNode; - parentNode.open = true; -} - -// open all detail panels in the document -function openAllDetails(evt) { - if(window.location !== window.parent.location){ - evt.preventDefault(); - } - var arr = document.getElementsByTagName("details"); - var len = arr.length; - - for (var i = 0; i < len; i++) { - arr[i].open = true; - } -} - -// close all detail panels in the document -function closeAllDetails(evt) { - if(window.location !== window.parent.location){ - evt.preventDefault(); - } - var arr = document.getElementsByTagName("details"); - var len = arr.length; - - for (var i = 0; i < len; i++) { - arr[i].open = false; - } -} - -// add event listeners to all anchor buttons in the sideNav -var navBtnList = document.querySelectorAll('a.navBtn'); -var navBtnArray = Array.prototype.slice.call(navBtnList); -navBtnArray.forEach(function(btn, btnIdx, btnArr) { - var href = btn.getAttribute("href").slice(1); - var target = document.getElementById(href); - //hide button if target is not present - if(target) { - btn.addEventListener("click", openDetail, false); - } else { - btn.style.display = 'none'; - } -}); - -// add event listener to openAllButton -var elOpen = document.getElementById("openAllButton"); -elOpen.addEventListener("click", openAllDetails, false); - -// add event listener to closeAllButton -var elClose = document.getElementById("closeAllButton"); -elClose.addEventListener("click", closeAllDetails, false); - -//replace top links in inframes -if(window.location !== window.parent.location){ - // add event listeners to all "top" links - var topList = document.querySelectorAll("a[href='#']"); - var topArray = Array.prototype.slice.call(topList); - topArray.forEach(function(a) { - a.addEventListener("click", function(evt) { - evt.preventDefault(); - window.scrollTo(0,0); - }, false); - }); -} - -if ( typeof L === "object") { - (function() { - - var westBound; - var eastBound; - - var coordsToLatLng = function(coords) { - // if computed bounding box spans the antimeridian - // add 360 to negative longitudes - var longitude = coords[0]; - if (westBound >= 0 && eastBound < 0) { - if (longitude < 0) { - longitude += 360; - } - } - var latitude = coords[1]; - return L.latLng(latitude, longitude); - }; - - var bbox2Poly = function(bbox) { - var bboxJson = JSON.parse(bbox.textContent || bbox.innerText); - var sw = [ bboxJson.westLongitude, bboxJson.southLatitude ]; - var nw = [ bboxJson.westLongitude, bboxJson.northLatitude ]; - var ne = [ bboxJson.eastLongitude, bboxJson.northLatitude ]; - var se = [ bboxJson.eastLongitude, bboxJson.southLatitude ]; - var coords = []; - coords.push(sw); - coords.push(nw); - coords.push(ne); - coords.push(se); - var bboxCoods = []; - bboxCoods.push(coords); - return bboxCoods; - }; - - // collect all geographicExtents sections in document - var geoExtentNodeList = document.querySelectorAll('section.extent-geographic'); - var geoExtents = Array.prototype.slice.call(geoExtentNodeList); - - var check = function(i, me, bnds) { - if (i < 3) { - var resize = me.getSize().x === 0 && me.getContainer().offsetWidth > 0; - - me.invalidateSize(); - if (resize) { - me.fitBounds(bnds); - } else { - i++; - setTimeout(function() { - check(i, me, bnds); - }, 100); - } - } - }; - - geoExtents.forEach(function(geoExtent, idx, arr) { - // instantiate a leaflet map in the map div - var map = L.map(geoExtent.querySelector('div.map'), {noWrap: true}); - // get a pointer to the map header switch - var header = geoExtent.querySelector('summary.map-summary'); - // get the GeoJSON from the geojson div - var geoJsonDiv = geoExtent.querySelector('div.geojson'); - if (geoJsonDiv) { - var geojson = JSON.parse(geoJsonDiv.textContent || geoJsonDiv.innerText); - } - else { - var geojson = []; - } - // get the user provided bounding box for the extent - if any - var userBBox = geoExtent.querySelector('div.userBBox'); - if (userBBox) { - var userCoords = bbox2Poly(userBBox); - var newUserBBox = { - "type": "Feature", - "geometry": { - "type": "Polygon", - "coordinates": userCoords - }, - "properties": { - "style": { - "color": '#f00', - "fill": false - }, - "featureName": [ - "User BBOX" - ] - } - }; - geojson.push(newUserBBox); - } - - // get the computed bounding box for the extent - always one - var computedBBox = geoExtent.querySelector('div.computedBBox'); - if (computedBBox) { - var compCoords = bbox2Poly(computedBBox); - var newCompBBox = { - "type": "Feature", - "geometry": { - "type": "Polygon", - "coordinates": compCoords - }, - "properties": { - "style": { - "color": '#0f0', - "fill": false - }, - "featureName": [ - "Computed BBOX" - ] - } - }; - geojson.push(newCompBBox); - westBound = compCoords[0][0][0]; - eastBound = compCoords[0][2][0]; - } - - var pointCnt = 0; - var lineStringCnt = 0; - var polygonCnt = 0; - var geoCollectCnt = 0; - var featureCnt = 0; - - geojson.forEach(function(geo, geoIdx, geoArr) { - - // make sure each geo has a properties object - if (!geo.properties) { - geo.properties = {}; - } - - // add popup information - if (geo.type === "Point") { - pointCnt += 1; - geo.properties.popup = "Point " + pointCnt; - } - if (geo.type === 'LineString') { - lineStringCnt += 1; - geo.properties.popup = "LineString " + lineStringCnt; - } - if (geo.type === 'Polygon') { - polygonCnt += 1; - geo.properties.popup = "Polygon " + polygonCnt; - } - if (geo.type === 'GeometryCollection') { - geoCollectCnt += 1; - geo.properties.popup = "Geometry Collection " + geoCollectCnt; - // popup can't find properties on collection objects - // placed popup on geometry collection instead - // geo.geometries.forEach(function (geoG, geoGIdx, geoGArr) { - // geoG.properties = {}; - // geoG.properties.popup = "Geometry Collection " + geoCollectCnt + " " + geoG.type; - // }); - } - if (geo.type === 'Feature') { - featureCnt += 1; - var featureName; - if (geo.properties.featureName !== undefined) { - featureName = geo.properties.featureName[0] || geo.id || geo.geometry.type; - } else featureName = geo.id || "Feature " + featureCnt + " " + geo.geometry.type; - geo.properties.popup = featureName; - } - if (geo.type === 'FeatureCollection') { - geo.features.forEach(function (geoF, geoFIdx, geoFArr) { - featureCnt += 1; - var featureName; - if (geoF.properties.featureName !== undefined) { - featureName = geoF.properties.featureName[0] || geoF.id || geoF.geometry.type; - } else featureName = geoF.id || "Feature " + featureCnt + " " + geoF.geometry.type; - geoF.properties.popup = featureName; - }); - } - - }); - - var geoLayer = L.geoJSON(geojson, { - style: function(feature) { - return feature.properties.style || {}; - }, - coordsToLatLng: coordsToLatLng, - onEachFeature: function (feature, layer) { - layer.bindPopup(feature.properties.popup,{ - closeButton: true - }); - } - }).addTo(map); - - var bnds = geoLayer.getBounds(); - map.fitBounds(bnds); - - L.DomEvent.addListener(header, 'click', function() { - var me = this; - var i = 0; - - setTimeout(function() { - check(i, me, bnds); - }, 100); - - }, map); - - L.DomEvent.addListener(L.DomUtil.get('openAllButton'), 'click', function() { - var me = this; - var i = 0; - - setTimeout(function() { - check(i, me, bnds); - }, 100); - - }, map); - - // map.addLayer(new L.TileLayer.OSM()); - var stamen = new L.StamenTileLayer("terrain"); - map.addLayer(stamen); - }); - })(); -} diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_citation.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_citation.rb index 746fab2d0..b948b6a35 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_citation.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_citation.rb @@ -68,7 +68,7 @@ def writeHtml(hCitation) # citation - responsibilities [] {responsibility} hCitation[:responsibleParties].each do |hResponsibility| @html.div do - @html.div(hResponsibility[:roleName], 'class' => 'h5') + @html.h5(hResponsibility[:roleName], 'class' => 'h5') @html.div(:class => 'block') do responsibilityClass.writeHtml(hResponsibility) end @@ -78,7 +78,7 @@ def writeHtml(hCitation) # citation - identifier [] hCitation[:identifiers].each do |hIdentifier| @html.div do - @html.div('Identifier', 'class' => 'h5') + @html.h5('Identifier', 'class' => 'h5') @html.div(:class => 'block') do identifierClass.writeHtml(hIdentifier) end @@ -88,7 +88,7 @@ def writeHtml(hCitation) # citation - series unless hCitation[:series].empty? @html.div do - @html.div('Publication Series', {'class' => 'h5'}) + @html.h5('Publication Series', {'class' => 'h5'}) @html.div(:class => 'block') do hSeries = hCitation[:series] @@ -121,7 +121,7 @@ def writeHtml(hCitation) # citation - online resource [] hCitation[:onlineResources].each do |hOnline| @html.div do - @html.div('Online Resource', {'class' => 'h5'}) + @html.h5('Online Resource', {'class' => 'h5'}) @html.div(:class => 'block') do onlineClass.writeHtml(hOnline) end @@ -131,7 +131,7 @@ def writeHtml(hCitation) # citation - browse graphic [] hCitation[:browseGraphics].each do |hGraphic| @html.div do - @html.div('Graphic Overview', {'class' => 'h5'}) + @html.h5('Graphic Overview', {'class' => 'h5'}) @html.div(:class => 'block') do graphicClass.writeHtml(hGraphic) end @@ -147,14 +147,14 @@ def writeHtml(hCitation) end end - # citation - other div [] - # unless hCitation[:otherdiv].empty? - # hCitation[:otherdiv].each do |detail| - # @html.em('Other div: ') - # @html.text!(detail) - # @html.br - # end - # end + # citation - other details [] + unless hCitation[:otherDetails].empty? + hCitation[:otherDetails].each do |detail| + @html.em('Other Details: ') + @html.text!(detail) + @html.br + end + end end # writeHtml end # Html_Citation diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_classedData.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_classedData.rb index 600939422..fef5e299f 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_classedData.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_classedData.rb @@ -33,7 +33,7 @@ def writeHtml(hClassD) aClassItems = hClassD[:classedDataItems] aClassItems.each do |hClassItem| @html.div do - @html.div(hClassItem[:className], {'class'=>'h5'}) + @html.h5(hClassItem[:className], {'class'=>'h5'}) @html.div(:class=>'block') do htmlClassItem.writeHtml(hClassItem) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_constraint.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_constraint.rb index 6759566dd..5a19637b7 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_constraint.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_constraint.rb @@ -52,7 +52,7 @@ def writeHtml(hConstraint) # constraint - scope {scope} unless hConstraint[:scope].empty? @html.div do - @html.div('Scope', {'class' => 'h5'}) + @html.h5('Scope', {'class' => 'h5'}) @html.div(:class => 'block') do scopeClass.writeHtml(hConstraint[:scope]) end @@ -62,7 +62,7 @@ def writeHtml(hConstraint) # constraint - graphic [] {graphic} hConstraint[:graphic].each do |hGraphic| @html.div do - @html.div('Graphic', {'class' => 'h5'}) + @html.h5('Graphic', {'class' => 'h5'}) @html.div(:class => 'block') do graphicClass.writeHtml(hGraphic) end @@ -72,7 +72,7 @@ def writeHtml(hConstraint) # constraint - reference [] {citation} hConstraint[:reference].each do |hReference| @html.div do - @html.div('Reference', {'class' => 'h5'}) + @html.h5('Reference', {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hReference) end @@ -82,7 +82,7 @@ def writeHtml(hConstraint) # constraint - releasability {releasability} unless hConstraint[:releasability].empty? @html.div do - @html.div('Releasability', {'class' => 'h5'}) + @html.h5('Releasability', {'class' => 'h5'}) @html.div(:class => 'block') do releasabilityClass.writeHtml(hConstraint[:releasability]) end @@ -92,7 +92,7 @@ def writeHtml(hConstraint) # constraint - responsibility [] {responsibility} hConstraint[:responsibleParty].each do |hResponsibility| @html.div do - @html.div(hResponsibility[:roleName], {'class' => 'h5'}) + @html.h5(hResponsibility[:roleName], {'class' => 'h5'}) @html.div(:class => 'block') do responsibilityClass.writeHtml(hResponsibility) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_contact.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_contact.rb index beb3c32f0..c1483e1d2 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_contact.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_contact.rb @@ -28,7 +28,7 @@ def writeHtml(hContact) graphicClass = Html_Graphic.new(@html) @html.div do - @html.div(hContact[:name], {'id' => 'CID_' + hContact[:contactId], 'class' => 'h3'}) + @html.h3(hContact[:name], {'id' => 'CID_' + hContact[:contactId], 'class' => 'h3'}) @html.div(:class => 'block') do # contact - contact ID @@ -70,7 +70,7 @@ def writeHtml(hContact) # contact - address hContact[:addresses].each do |hAddress| @html.div do - @html.div('Address', {'class' => 'h5'}) + @html.h5('Address', {'class' => 'h5', 'style' => 'font-style: italic'}) @html.div(:class => 'block') do # address - delivery points @@ -119,7 +119,7 @@ def writeHtml(hContact) # contact - phones hContact[:phones].each do |hPhone| @html.div do - @html.div('Phone', {'class' => 'h5'}) + @html.h5('Phone', {'class' => 'h5', 'style' => 'font-style: italic'}) @html.div(:class => 'block') do # phone - name @@ -159,7 +159,7 @@ def writeHtml(hContact) # contact - online resource [] hContact[:onlineResources].each do |hOnline| @html.div do - @html.div('Online Resource', {'class' => 'h5'}) + @html.h5('Online Resource', {'class' => 'h5', 'style' => 'font-style: italic'}) @html.div(:class => 'block') do onlineClass.writeHtml(hOnline) end @@ -169,7 +169,7 @@ def writeHtml(hContact) # contact - logos [] hContact[:logos].each do |hLogo| @html.div do - @html.div('Logo Graphic', {'class' => 'h5'}) + @html.h5('Logo Graphic', {'class' => 'h5', 'style' => 'font-style: italic'}) @html.div(:class => 'block') do graphicClass.writeHtml(hLogo) end @@ -190,6 +190,38 @@ def writeHtml(hContact) @html.br end + # contact - external identifiers [] + if hContact.key?(:externalIdentifier) && !hContact[:externalIdentifier].empty? + hContact[:externalIdentifier].each do |identifier| + @html.div do + @html.h5("External Identifier", {'class' => 'h5', 'style' => 'font-style: italic'}) + @html.div(:class => 'block') do + @html.em('Identifier: ') + @html.text!(identifier[:identifier]) + @html.br + + unless identifier[:namespace].nil? + @html.em('Namespace: ') + @html.text!(identifier[:namespace]) + @html.br + end + + unless identifier[:version].nil? + @html.em('Version: ') + @html.text!(identifier[:version]) + @html.br + end + + unless identifier[:description].nil? + @html.em('Description: ') + @html.text!(identifier[:description]) + @html.br + end + end + end + end + end + end end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_coverageInfo.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_coverageInfo.rb index a5b2d4244..b124a24b4 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_coverageInfo.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_coverageInfo.rb @@ -45,7 +45,7 @@ def writeHtml(hCoverage) # coverage - process level code unless hCoverage[:processingLevelCode].empty? @html.div do - @html.div('Processing Level Code', {'class' => 'h5'}) + @html.h5('Processing Level Code', {'class' => 'h5'}) @html.div(:class => 'block') do identifierClass.writeHtml(hCoverage[:processingLevelCode]) end @@ -55,7 +55,7 @@ def writeHtml(hCoverage) # coverage - attribute group [] {attributeGroup} hCoverage[:attributeGroups].each do |hAttGroup| @html.div do - @html.div('Attribute Group', {'class' => 'h5'}) + @html.h5('Attribute Group', {'class' => 'h5'}) @html.div(:class => 'block') do attGroupClass.writeHtml(hAttGroup) end @@ -65,7 +65,7 @@ def writeHtml(hCoverage) # coverage - image description {imageInfo} unless hCoverage[:imageDescription].empty? @html.div do - @html.div('Image Description', {'class' => 'h5'}) + @html.h5('Image Description', {'class' => 'h5'}) @html.div(:class => 'block') do imageClass.writeHtml(hCoverage[:imageDescription]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataDictionary.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataDictionary.rb index 22c34e2d5..bb4098377 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataDictionary.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataDictionary.rb @@ -51,7 +51,7 @@ def writeHtml(hDictionary) # dictionary - domains [] {domain} unless hDictionary[:domains].empty? @html.div do - @html.div('Domains', {'class' => 'h5'}) + @html.h5('Domains', {'class' => 'h5'}) @html.div(:class => 'block') do domainClass.writeHtml(hDictionary[:domains]) end @@ -61,7 +61,7 @@ def writeHtml(hDictionary) # dictionary - entities [] {entity} unless hDictionary[:entities].empty? @html.div do - @html.div('Entities', {'class' => 'h5'}) + @html.h5('Entities', {'class' => 'h5'}) @html.div(:class => 'block') do entityClass.writeHtml(hDictionary[:entities]) end @@ -71,7 +71,7 @@ def writeHtml(hDictionary) # dictionary - citation {citation} unless hDictionary[:citation].empty? @html.div do - @html.div('Citation', {'class' => 'h5'}) + @html.h5('Citation', {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hDictionary[:citation]) end @@ -81,7 +81,7 @@ def writeHtml(hDictionary) # dictionary - locales {locale} hDictionary[:locales].each do |hLocale| @html.div do - @html.div('Locale', {'class' => 'h5'}) + @html.h5('Locale', {'class' => 'h5'}) @html.div(:class => 'block') do localeClass.writeHtml(hLocale) end @@ -91,7 +91,7 @@ def writeHtml(hDictionary) # dictionary - responsible party {responsibility} unless hDictionary[:responsibleParty].empty? @html.div do - @html.div(hDictionary[:responsibleParty][:roleName], {'class' => 'h5'}) + @html.h5(hDictionary[:responsibleParty][:roleName], {'class' => 'h5'}) @html.div(:class => 'block') do responsibilityClass.writeHtml(hDictionary[:responsibleParty]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataQuality.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataQuality.rb index 4da7ae60f..e4e7845f6 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataQuality.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataQuality.rb @@ -1,4 +1,6 @@ require_relative 'html_citation' +require_relative 'html_scope' +require_relative 'html_dataQualityReport' module ADIWG module Mdtranslator @@ -12,14 +14,13 @@ def initialize(html) def writeHtml(hDataQuality) citationClass = Html_Citation.new(@html) scopeClass = Html_Scope.new(@html) + dataQualityReportClass = Html_DataQualityReport.new(@html) - unless hDataQuality[:scope].nil? || hDataQuality[:scope].empty? - @html.div(class: 'block') do - @html.div do - @html.div('Scope', {'class' => 'h5'}) - @html.div(class: 'block') do - scopeClass.writeHtml(hDataQuality[:scope]) - end + unless hDataQuality[:scope].empty? + @html.div do + @html.h5('Scope', {'class' => 'h5'}) + @html.div(:class => 'block') do + scopeClass.writeHtml(hDataQuality[:scope]) end end end @@ -30,11 +31,11 @@ def writeHtml(hDataQuality) hDataQuality[:standaloneQualityReport][:reportReference].nil? ) report = hDataQuality[:standaloneQualityReport] - @html.div(class: 'block') do + @html.div(:class => 'block') do @html.div do - @html.div('Standalone Quality Report', {'class' => 'h5'}) + @html.h5('Standalone Quality Report', {'class' => 'h5'}) unless report[:abstract].nil? - @html.div(class: 'block') do + @html.div(:class =>'block') do @html.em('Abstract:') @html.text!(report[:abstract]) end @@ -42,16 +43,34 @@ def writeHtml(hDataQuality) unless report[:reportReference].nil? @html.div do - @html.div('Report Reference', {'class' => 'h5'}) - @html.div(class: 'block') do + @html.h5('Report Reference', {'class' => 'h5'}) + @html.div(:class =>'block') do citationClass.writeHtml(report[:reportReference]) end end end + end end + end + # reports + unless hDataQuality[:report].empty? + @html.div(:class =>'block') do + @html.div do + @html.h4('Reports', {'class' => 'h4'}) + hDataQuality[:report].each do |report| + @html.div(:class =>'block') do + @html.div do + @html.h5(report[:type], {'class' => 'h5'}) + dataQualityReportClass.writeHtml(report) + end + end + end + end + end end + end end end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataQualityReport.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataQualityReport.rb new file mode 100644 index 000000000..a8d09414b --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataQualityReport.rb @@ -0,0 +1,385 @@ +require_relative 'html_citation' +require_relative 'html_identifier' +require_relative 'html_scope' +require_relative 'html_spatialRepresentation' +require_relative 'html_format' +require_relative 'html_resultFile' +require_relative 'html_coverageInfo' + +module ADIWG + module Mdtranslator + module Writers + module Simple_html + class Html_DataQualityReport + def initialize(html) + @html = html + end + + def writeHtml(hDataQualityReport) + @html.div(:class => 'block') do + writeQualityMeasure(hDataQualityReport[:qualityMeasure]) unless hDataQualityReport[:qualityMeasure].empty? + end + @html.div(:class => 'block') do + writeEvaluationMethod(hDataQualityReport[:evaluationMethod]) unless hDataQualityReport[:evaluationMethod].empty? + end + @html.div(:class => 'block') do + writeConformanceResult(hDataQualityReport[:conformanceResult]) unless hDataQualityReport[:conformanceResult].empty? + end + @html.div(:class => 'block') do + writeCoverageResult(hDataQualityReport[:coverageResult]) unless hDataQualityReport[:coverageResult].empty? + end + @html.div(:class => 'block') do + writeDescriptiveResult(hDataQualityReport[:descriptiveResult]) unless hDataQualityReport[:descriptiveResult].empty? + end + @html.div(:class => 'block') do + writeQuantitativeResult(hDataQualityReport[:quantitativeResult]) unless hDataQualityReport[:quantitativeResult].empty? + end + end + + private + + def writeQualityMeasure(qualityMeasure) + identifierClass = Html_Identifier.new(@html) + + @html.div do + @html.h5('Quality Measure', {'class' => 'h5'}) + @html.div(:class => 'block') do + # Identifier + unless qualityMeasure[:identifier].empty? + @html.div do + @html.h5('Identifier', {'class' => 'h5'}) + @html.div(:class => 'block') do + identifierClass.writeHtml(qualityMeasure[:identifier]) + end + end + end + + # Description + unless qualityMeasure[:description].nil? + @html.em('Description: ') + @html.text!(qualityMeasure[:description]) + @html.br + end + + # Names + unless qualityMeasure[:nameOfMeasure].empty? + @html.em('Names: ') + @html.text!(qualityMeasure[:nameOfMeasure].join('; ')) + @html.br + end + end + end + end + + def writeEvaluationMethod(evaluationMethod) + citationClass = Html_Citation.new(@html) + + @html.div do + @html.h5('Evaluation Method', {'class' => 'h5'}) + @html.div(:class => 'block') do + # Type + unless evaluationMethod[:type].nil? + @html.em('Type: ') + @html.text!(evaluationMethod[:type]) + @html.br + end + + # DateTime + unless evaluationMethod[:dateTime].nil? + @html.em('Date Time: ') + evaluationMethod[:dateTime].each do |datetime| + @html.text!(datetime) + @html.br + end + @html.br + end + + # MethodDescription + unless evaluationMethod[:methodDescription].nil? + @html.em('Evaluation Method Description: ') + @html.text!(evaluationMethod[:methodDescription]) + @html.br + end + + # EvaluationMethodType + unless evaluationMethod[:evaluationMethodType].nil? + @html.em('Evaluation Method Type: ') + @html.text!(evaluationMethod[:evaluationMethodType]) + @html.br + end + + # DeductiveSource + unless evaluationMethod[:deductiveSource].nil? + @html.em('Deductive Source: ') + @html.text!(evaluationMethod[:deductiveSource]) + @html.br + end + + # SamplingScheme + unless evaluationMethod[:samplingScheme].nil? + @html.em('Sampling Scheme: ') + @html.text!(evaluationMethod[:samplingScheme]) + @html.br + end + + # LotDescription + unless evaluationMethod[:lotDescription].nil? + @html.em('Lot Description: ') + @html.text!(evaluationMethod[:lotDescription]) + @html.br + end + + # SamplingRatio + unless evaluationMethod[:samplingRatio].nil? + @html.em('Sampling Ratio: ') + @html.text!(evaluationMethod[:samplingRatio]) + @html.br + end + + # EvaluationProcedure + unless evaluationMethod[:evaluationProcedure].empty? + @html.div do + @html.h5('Evaluation Procedure', {'class' => 'h5'}) + @html.div(:class => 'block') do + citationClass.writeHtml(evaluationMethod[:evaluationProcedure]) + end + end + end + + # ReferenceDocument + unless evaluationMethod[:referenceDocuments].empty? + @html.div do + @html.h5('Reference Document', {'class' => 'h5'}) + evaluationMethod[:referenceDocuments].each do |doc| + @html.div(:class => 'block') do + citationClass.writeHtml(doc) + end + end + end + end + end + end + end + + def writeConformanceResult(conformanceResult) + citationClass = Html_Citation.new(@html) + scopeClass = Html_Scope.new(@html) + + @html.div do + @html.h5('Conformance Result', {'class' => 'h5'}) + conformanceResult.each do |result| + @html.div(:class => 'block') do + # DateTime + unless result[:dateTime].nil? + @html.em('Date Time: ') + @html.text!(result[:dateTime]) + @html.br + end + + # Scope + unless result[:scope].empty? + @html.div do + @html.h5('Scope', {'class' => 'h5'}) + @html.div(:class => 'block') do + scopeClass.writeHtml(result[:scope]) + end + end + end + + # Specification (citation) + unless result[:specification].empty? + @html.div do + @html.h5('Specification', {'class' => 'h5'}) + @html.div(:class => 'block') do + citationClass.writeHtml(result[:specification]) + end + end + end + + # Explanation + unless result[:explanation].nil? + @html.em('Explanation: ') + @html.text!(result[:explanation]) + @html.br + end + + # Pass (boolean) + unless result[:pass].nil? + @html.em('Pass: ') + @html.text!(result[:pass] ? 'Yes' : 'No') + @html.br + end + end + end + end + end + + def writeCoverageResult(coverageResult) + scopeClass = Html_Scope.new(@html) + spatialRepresentationClass = Html_SpatialRepresentation.new(@html) + formatClass = Html_Format.new(@html) + resultFileClass = Html_ResultFile.new(@html) + coverageInfoClass = Html_CoverageInfo.new(@html) + + @html.div do + @html.h5('Coverage Result', {'class' => 'h5'}) + coverageResult.each do |result| + @html.div(:class => 'block') do + # DateTime + unless result[:dateTime].nil? + @html.em('Date Time: ') + @html.text!(result[:dateTime]) + @html.br + end + + # Scope + unless result[:scope].empty? + @html.div do + @html.h5('Scope', {'class' => 'h5'}) + @html.div(:class => 'block') do + scopeClass.writeHtml(result[:scope]) + end + end + end + + # SpatialRepresentationType + unless result[:spatialRepresentationType].nil? + @html.em('Spatial Representation Type: ') + @html.text!(result[:spatialRepresentationType]) + @html.br + end + + # SpatialRepresentation + unless result[:spatialRepresentation].empty? + @html.div do + @html.h5('Spatial Representation', {'class' => 'h5'}) + @html.div(:class => 'block') do + spatialRepresentationClass.writeHtml(result[:spatialRepresentation]) + end + end + end + + # ResultContentDescription + unless result[:resultContentDescription].empty? + @html.div do + @html.h5('Result Content Description', {'class' => 'h5'}) + @html.div(:class => 'block') do + coverageInfoClass.writeHtml(result[:resultContentDescription]) + end + end + end + + # ResourceFormat + unless result[:resourceFormat].empty? + @html.div do + @html.h5('Resource Format', {'class' => 'h5'}) + @html.div(:class => 'block') do + formatClass.writeHtml(result[:resourceFormat]) + end + end + end + + # ResultFile + unless result[:resultFile].empty? + @html.div do + @html.h5('Result File', {'class' => 'h5'}) + @html.div(:class => 'block') do + resultFileClass.writeHtml(result[:resultFile]) + end + end + end + + end + end + end + end + + def writeDescriptiveResult(descriptiveResult) + scopeClass = Html_Scope.new(@html) + + @html.div do + @html.h5('Descriptive Result', {'class' => 'h5'}) + descriptiveResult.each do |result| + @html.div(:class => 'block') do + # DateTime + unless result[:dateTime].nil? + @html.em('Date Time: ') + @html.text!(result[:dateTime]) + @html.br + end + + # Scope + unless result[:scope].empty? + @html.div do + @html.h5('Scope', {'class' => 'h5'}) + @html.div(:class => 'block') do + scopeClass.writeHtml(result[:scope]) + end + end + end + + # Statement + unless result[:statement].nil? + @html.em('Statement: ') + @html.text!(result[:statement]) + @html.br + end + end + end + end + end + + def writeQuantitativeResult(quantitativeResult) + scopeClass = Html_Scope.new(@html) + + @html.div do + @html.h5('Quantitative Result', {'class' => 'h5'}) + quantitativeResult.each do |result| + @html.div(:class => 'block') do + # DateTime + unless result[:dateTime].nil? + @html.em('Date Time: ') + @html.text!(result[:dateTime]) + @html.br + end + + # Scope + unless result[:scope].empty? + @html.div do + @html.h5('Scope', {'class' => 'h5'}) + @html.div(:class => 'block') do + scopeClass.writeHtml(result[:scope]) + end + end + end + + # Value + unless result[:values].empty? + @html.em('Value: ') + @html.text!(result[:values].join(', ')) + @html.br + end + + # ValueUnits + unless result[:valueUnits].nil? + @html.em('Value Units: ') + @html.text!(result[:valueUnits]) + @html.br + end + + # ValueRecordType + unless result[:valueRecordType].nil? + @html.em('Value Record Type: ') + @html.text!(result[:valueRecordType]) + @html.br + end + end + end + end + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_distribution.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_distribution.rb index 6ea61e1c2..6819afc2b 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_distribution.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_distribution.rb @@ -42,7 +42,7 @@ def writeHtml(hDistribution) # distribution - distributor [] {distributor} hDistribution[:distributor].each do |hDistributor| @html.div do - @html.div('Distributor', {'class' => 'h5'}) + @html.h5('Distributor', {'class' => 'h5'}) @html.div(:class => 'block') do distributorClass.writeHtml(hDistributor) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_distributor.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_distributor.rb index c31e0b275..5e08759ec 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_distributor.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_distributor.rb @@ -30,7 +30,7 @@ def writeHtml(hDistributor) # distributor - contact {responsibility} unless hDistributor[:contact].empty? @html.div do - @html.div('Contact', {'class' => 'h5'}) + @html.h5('Contact', {'class' => 'h5'}) @html.div(:class => 'block') do responsibilityClass.writeHtml(hDistributor[:contact]) end @@ -40,7 +40,7 @@ def writeHtml(hDistributor) # distributor - order process [] {orderProcess} hDistributor[:orderProcess].each do |hOrder| @html.div do - @html.div('Order Process', {'class' => 'h5'}) + @html.h5('Order Process', {'class' => 'h5'}) @html.div(:class => 'block') do orderClass.writeHtml(hOrder) end @@ -50,7 +50,7 @@ def writeHtml(hDistributor) # distributor - transfer options [] {transferOption} hDistributor[:transferOptions].each do |hTransfer| @html.div do - @html.div('Transfer Option', {'class' => 'h5'}) + @html.h5('Transfer Option', {'class' => 'h5'}) @html.div(:class => 'block') do transferClass.writeHtml(hTransfer) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_domain.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_domain.rb index 2c7a551bb..762dd4cf9 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_domain.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_domain.rb @@ -38,7 +38,7 @@ def writeHtml(aDomains) type = 'ENUMERATED' unless hDomain[:domainItems].empty? @html.div do - @html.div(dName, {'class' => 'h5'}) + @html.h5(dName, {'class' => 'h5'}) @html.div(:class => 'block') do # domain - type @@ -78,7 +78,7 @@ def writeHtml(aDomains) # domain - domain reference {citation} unless hDomain[:domainReference].empty? @html.div do - @html.div('Reference', {'class' => 'h5'}) + @html.h5('Reference', {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hDomain[:domainReference]) end @@ -88,7 +88,7 @@ def writeHtml(aDomains) # domain - domain items [] {domainItem} hDomain[:domainItems].each do |hItem| @html.div do - @html.div(hItem[:itemValue], {'class' => 'h5'}) + @html.h5(hItem[:itemValue], {'class' => 'h5'}) @html.div(:class => 'block') do itemClass.writeHtml(hItem) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_domainItem.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_domainItem.rb index 59a3627a9..a8300e144 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_domainItem.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_domainItem.rb @@ -48,7 +48,7 @@ def writeHtml(hItem) # domain item - reference {citation} unless hItem[:itemReference].empty? @html.div do - @html.div('Reference', {'class' => 'h5'}) + @html.h5('Reference', {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hItem[:itemReference]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_entity.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_entity.rb index f5f690075..09bff685a 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_entity.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_entity.rb @@ -38,7 +38,7 @@ def writeHtml(aEntities) eName = hEntity[:entityName] unless hEntity[:entityName].nil? @html.div do - @html.div(eName, {'class' => 'h5'}) + @html.h5(eName, {'class' => 'h5'}) @html.div(:class => 'block') do # entity - entity id @@ -116,7 +116,7 @@ def writeHtml(aEntities) iName = hIndex[:indexCode] unless hIndex[:indexCode].nil? iName = hIndex[:indexName] unless hIndex[:indexName].nil? @html.div do - @html.div('Index: '+iName, {'class' => 'h5'}) + @html.h5('Index: '+iName, {'class' => 'h5'}) @html.div(:class => 'block') do indexClass.writeHtml(hIndex) end @@ -126,7 +126,7 @@ def writeHtml(aEntities) # entity - foreign keys [] {entityForeignKey} hEntity[:foreignKeys].each do |hForeign| @html.div do - @html.div('ForeignKey', {'class' => 'h5'}) + @html.h5('ForeignKey', {'class' => 'h5'}) @html.div(:class => 'block') do foreignClass.writeHtml(hForeign) end @@ -136,7 +136,7 @@ def writeHtml(aEntities) # entity - entity reference [] {citation} hEntity[:entityReferences].each do |hReference| @html.div do - @html.div('Reference', {'class' => 'h5'}) + @html.h5('Reference', {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hReference) end @@ -149,7 +149,7 @@ def writeHtml(aEntities) aName = hAttribute[:attributeCode] unless hAttribute[:attributeCode].nil? aName = hAttribute[:attributeName] unless hAttribute[:attributeName].nil? @html.div do - @html.div('Attribute: '+aName, {'class' => 'h5'}) + @html.h5('Attribute: '+aName, {'class' => 'h5'}) @html.div(:class => 'block') do attributeClass.writeHtml(hAttribute) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_entityAttribute.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_entityAttribute.rb index a55a28d66..3f92acd7c 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_entityAttribute.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_entityAttribute.rb @@ -129,7 +129,7 @@ def writeHtml(hAttribute) # entity attribute - range of values [] {citation} hAttribute[:valueRange].each do |hRange| @html.div do - @html.div('Range of Values', {'class' => 'h5'}) + @html.h5('Range of Values', {'class' => 'h5'}) @html.div(:class => 'block') do # range of values - minimum value @@ -153,7 +153,7 @@ def writeHtml(hAttribute) # entity attribute - time period of values {timePeriod} hAttribute[:timePeriod].each do |hPeriod| @html.div do - @html.div('Time Period of Values', {'class' => 'h5'}) + @html.h5('Time Period of Values', {'class' => 'h5'}) @html.div(:class => 'block') do periodClass.writeHtml(hPeriod) end @@ -163,7 +163,7 @@ def writeHtml(hAttribute) # entity attribute - attribute reference {citation} unless hAttribute[:attributeReference].empty? @html.div do - @html.div('Reference', {'class' => 'h5'}) + @html.h5('Reference', {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hAttribute[:attributeReference]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_extent.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_extent.rb index 63fda0d3a..a4ef5d8f8 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_extent.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_extent.rb @@ -39,7 +39,7 @@ def writeHtml(hExtent) # extent - geographic extents hExtent[:geographicExtents].each do |hGeographic| @html.div do - @html.div('Geographic Extent', {'class' => 'h5'}) + @html.h5('Geographic Extent', {'class' => 'h5'}) @html.div(:class => 'block extent-geographic') do geographicClass.writeHtml(hGeographic) end @@ -49,7 +49,7 @@ def writeHtml(hExtent) # extent - temporal extents hExtent[:temporalExtents].each do |hTemporal| @html.div do - @html.div('Temporal Extent', {'class' => 'h5'}) + @html.h5('Temporal Extent', {'class' => 'h5'}) @html.div(:class => 'block') do temporalClass.writeHtml(hTemporal) end @@ -59,7 +59,7 @@ def writeHtml(hExtent) # extent - vertical extents hExtent[:verticalExtents].each do |hVertical| @html.div do - @html.div('Vertical Extent', {'class' => 'h5'}) + @html.h5('Vertical Extent', {'class' => 'h5'}) @html.div(:class => 'block') do verticalClass.writeHtml(hVertical) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_feature.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_feature.rb index a828898f1..05e81c9d4 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_feature.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_feature.rb @@ -36,7 +36,7 @@ def writeHtml(hFeature) # feature - geometry object unless hFeature[:geometryObject].empty? @html.div do - @html.div(hFeature[:geometryObject][:type], 'class' => 'h5') + @html.h5(hFeature[:geometryObject][:type], 'class' => 'h5') @html.div(:class => 'block') do geometryClass.writeHtml(hFeature[:geometryObject]) end @@ -46,7 +46,7 @@ def writeHtml(hFeature) # feature - user bounding box unless hFeature[:bbox].empty? @html.div do - @html.div('User Provided Bounding Box', 'class' => 'h5') + @html.h5('User Provided Bounding Box', 'class' => 'h5') @html.div(:class => 'block') do bbox = {} bbox[:westLongitude] = hFeature[:bbox][0] @@ -61,7 +61,7 @@ def writeHtml(hFeature) # feature - computed bounding box unless hFeature[:computedBbox].empty? @html.div do - @html.div('Computed Bounding Box', 'class' => 'h5') + @html.h5('Computed Bounding Box', 'class' => 'h5') @html.div(:class => 'block') do boxClass.writeHtml(hFeature[:computedBbox]) end @@ -71,7 +71,7 @@ def writeHtml(hFeature) # feature - properties unless hFeature[:properties].empty? @html.div do - @html.div('Properties', 'class' => 'h5') + @html.h5('Properties', 'class' => 'h5') @html.div(:class => 'block') do propertyClass.writeHtml(hFeature[:properties]) end @@ -81,7 +81,7 @@ def writeHtml(hFeature) # feature - native GeoJson unless hFeature[:nativeGeoJson].empty? @html.div do - @html.div('GeoJson', 'class' => 'h5') + @html.h5('GeoJson', 'class' => 'h5') @html.div(:class => 'block') do @html.text!(hFeature[:nativeGeoJson].to_json) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_featureCollection.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_featureCollection.rb index 3757b44db..0fd0ef793 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_featureCollection.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_featureCollection.rb @@ -31,7 +31,7 @@ def writeHtml(hCollection) unless feature[:id].nil? title += ': '+feature[:id].to_s end - @html.div(title, 'class' => 'h5') + @html.h5(title, 'class' => 'h5') @html.div(:class => 'block') do featureClass.writeHtml(feature) end @@ -41,7 +41,7 @@ def writeHtml(hCollection) # feature collection - user bounding box unless hCollection[:bbox].empty? @html.div do - @html.div('User Provided Bounding Box', 'class' => 'h5') + @html.h5('User Provided Bounding Box', 'class' => 'h5') @html.div(:class => 'block') do bbox = {} bbox[:westLongitude] = hCollection[:bbox][0] @@ -56,7 +56,7 @@ def writeHtml(hCollection) # feature collection - computed bounding box unless hCollection[:computedBbox].empty? @html.div do - @html.div('Computed Bounding Box', 'class' => 'h5') + @html.h5('Computed Bounding Box', 'class' => 'h5') @html.div(:class => 'block') do boxClass.writeHtml(hCollection[:computedBbox]) end @@ -66,7 +66,7 @@ def writeHtml(hCollection) # feature collection - native GeoJson unless hCollection[:nativeGeoJson].empty? @html.div do - @html.div('GeoJson', 'class' => 'h5') + @html.h5('GeoJson', 'class' => 'h5') @html.div(:class => 'block') do @html.text!(hCollection[:nativeGeoJson].to_json) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_featureProperties.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_featureProperties.rb index 19231ff7a..d4959c2ea 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_featureProperties.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_featureProperties.rb @@ -40,7 +40,7 @@ def writeHtml(hProperty) # feature properties - identifier [] {identifier} hProperty[:identifiers].each do |hIdentifier| @html.div do - @html.div('Identifier', 'class' => 'h5') + @html.h5('Identifier', 'class' => 'h5') @html.div(:class => 'block') do identifierClass.writeHtml(hIdentifier) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_format.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_format.rb index 08edad8f5..09b5063fc 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_format.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_format.rb @@ -28,7 +28,7 @@ def writeHtml(hFormat) # resource format - format specification {citation} unless hFormat[:formatSpecification].empty? @html.div do - @html.div(hFormat[:formatSpecification][:title], {'class' => 'h5'}) + @html.h5(hFormat[:formatSpecification][:title], {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hFormat[:formatSpecification]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_funding.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_funding.rb index 718bda512..58c9f78bd 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_funding.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_funding.rb @@ -44,7 +44,7 @@ def writeHtml(hFunding) # funding - allocations [] {allocation} hFunding[:allocations].each do |hAllocation| @html.div do - @html.div('Allocation', {'class' => 'h5'}) + @html.h5('Allocation', {'class' => 'h5'}) @html.div(:class => 'block') do allocationClass.writeHtml(hAllocation) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geodeticParameters.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geodeticParameters.rb index 608c62e10..565b4e13c 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geodeticParameters.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geodeticParameters.rb @@ -25,7 +25,7 @@ def writeHtml(hGeodetic) # geodetic parameters - datum identifier unless hGeodetic[:datumIdentifier].empty? @html.div do - @html.div('Datum Identifier', {'id' => 'datum-identifier', 'class' => 'h5'}) + @html.h5('Datum Identifier', {'id' => 'datum-identifier', 'class' => 'h5'}) @html.div(:class => 'block') do identifierClass.writeHtml(hGeodetic[:datumIdentifier]) end @@ -35,7 +35,7 @@ def writeHtml(hGeodetic) # geodetic parameters - ellipsoid identifier unless hGeodetic[:ellipsoidIdentifier].empty? @html.div do - @html.div('Ellipsoid Identifier', {'id' => 'ellipsoid-identifier', 'class' => 'h5'}) + @html.h5('Ellipsoid Identifier', {'id' => 'ellipsoid-identifier', 'class' => 'h5'}) @html.div(:class => 'block') do identifierClass.writeHtml(hGeodetic[:ellipsoidIdentifier]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geographicElement.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geographicElement.rb index 34922cb23..7ca4260a6 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geographicElement.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geographicElement.rb @@ -32,7 +32,7 @@ def writeHtml(hElement) case hElement[:type] when 'Point', 'LineString', 'Polygon', 'MultiPoint', 'MultiLineString', 'MultiPolygon' @html.div do - @html.div(hElement[:type], 'class' => 'h5') + @html.h5(hElement[:type], 'class' => 'h5') @html.div(:class => 'block') do geometryClass.writeHtml(hElement) end @@ -40,7 +40,7 @@ def writeHtml(hElement) when 'GeometryCollection' @html.div do - @html.div('Geometry Collection', 'class' => 'h5') + @html.h5('Geometry Collection', 'class' => 'h5') @html.div(:class => 'block') do geoCollectionClass.writeHtml(hElement) end @@ -52,7 +52,7 @@ def writeHtml(hElement) unless hElement[:id].nil? title += ': '+hElement[:id].to_s end - @html.div(title, 'class' => 'h5') + @html.h5(title, 'class' => 'h5') @html.div(:class => 'block') do featureClass.writeHtml(hElement) end @@ -60,7 +60,7 @@ def writeHtml(hElement) when 'FeatureCollection' @html.div do - @html.div(hElement[:type], 'class' => 'h5') + @html.h5(hElement[:type], 'class' => 'h5') @html.div(:class => 'block') do featCollectionClass.writeHtml(hElement) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geographicExtent.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geographicExtent.rb index 3431f536f..52cbbc955 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geographicExtent.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geographicExtent.rb @@ -41,20 +41,10 @@ def writeHtml(hExtent) end end - # geographic extent - map {div} - @html.div do - @html.div('Map', 'class' => 'h5 map-summary') - @html.div(:class => 'block') do - @html.div('class' => 'map', 'id' => 'map') do - # map drawn by html_bodyScript.js - end - end - end - # geographic extent - geographic element [] {geographicElement} unless hExtent[:geographicElements].empty? @html.div do - @html.div('Elements', 'class' => 'h5') + @html.h5('Elements', 'class' => 'h5') @html.div(:class => 'block') do hExtent[:geographicElements].each do |hElement| geographicClass.writeHtml(hElement) @@ -66,7 +56,7 @@ def writeHtml(hExtent) # geographic extent - user bounding box unless hExtent[:boundingBox].empty? @html.div do - @html.div('User Provided Bounding Box', 'class' => 'h5') + @html.h5('User Provided Bounding Box', 'class' => 'h5') @html.div(:class => 'block') do boundingClass.writeHtml(hExtent[:boundingBox]) @html.div(:class =>'userBBox hidden') do @@ -79,7 +69,7 @@ def writeHtml(hExtent) # computed bounding box - {boundingBox} unless hExtent[:computedBbox].empty? @html.div do - @html.div('Computed Bounding Box', 'class' => 'h5') + @html.h5('Computed Bounding Box', 'class' => 'h5') @html.div(:class => 'block') do boundingClass.writeHtml(hExtent[:computedBbox]) @html.div(:class =>'computedBBox hidden') do @@ -92,7 +82,7 @@ def writeHtml(hExtent) # geographic extent - identifier {identifier} unless hExtent[:identifier].empty? @html.div do - @html.div('Identifier', 'class' => 'h5') + @html.h5('Identifier', 'class' => 'h5') @html.div(:class => 'block') do identifierClass.writeHtml(hExtent[:identifier]) end @@ -102,7 +92,7 @@ def writeHtml(hExtent) # geographic extent - native GeoJson unless hExtent[:nativeGeoJson].empty? @html.div do - @html.div('GeoJson', 'class' => 'h5') + @html.h5('GeoJson', 'class' => 'h5') @html.div(:class => 'block') do @html.div(:class =>'geojson', :dataPopup => 'fill in popData') do @html.text!(hExtent[:nativeGeoJson].to_json) diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geologicAge.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geologicAge.rb index 1ff953e7a..bb212b501 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geologicAge.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geologicAge.rb @@ -55,7 +55,7 @@ def writeHtml(hGeoAge) # geologic age - age references [] {citation} hGeoAge[:ageReferences].each do |hCitation| @html.div do - @html.div('Age Reference', {'class' => 'h5'}) + @html.h5('Age Reference', {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hCitation) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geometryCollection.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geometryCollection.rb index 760302b97..9cde44020 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geometryCollection.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geometryCollection.rb @@ -27,7 +27,7 @@ def writeHtml(hCollection) # geometry collection - objects hCollection[:geometryObjects].each do |hObject| @html.div do - @html.div(hObject[:type], 'class' => 'h5') + @html.h5(hObject[:type], 'class' => 'h5') @html.div(:class => 'block') do geometryClass.writeHtml(hObject) end @@ -37,7 +37,7 @@ def writeHtml(hCollection) # geometry collection - user bounding box unless hCollection[:bbox].empty? @html.div do - @html.div('User Provided Bounding Box', 'class' => 'h5') + @html.h5('User Provided Bounding Box', 'class' => 'h5') @html.div(:class => 'block') do bbox = {} bbox[:westLongitude] = hCollection[:bbox][0] @@ -52,7 +52,7 @@ def writeHtml(hCollection) # geometry collection - computed bounding box unless hCollection[:computedBbox].empty? @html.div do - @html.div('Computed Bounding Box', 'class' => 'h5') + @html.h5('Computed Bounding Box', 'class' => 'h5') @html.div(:class => 'block') do boxClass.writeHtml(hCollection[:computedBbox]) end @@ -62,7 +62,7 @@ def writeHtml(hCollection) # geographic element - native GeoJson unless hCollection[:nativeGeoJson].empty? @html.div do - @html.div('GeoJson', 'class' => 'h5') + @html.h5('GeoJson', 'class' => 'h5') @html.div(:class => 'block') do @html.text!(hCollection[:nativeGeoJson].to_json) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geometryObject.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geometryObject.rb index 6ccfd5b63..88971847c 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geometryObject.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geometryObject.rb @@ -20,7 +20,7 @@ def writeHtml(hObject) # geometry object - coordinates unless hObject[:coordinates].nil? @html.div do - @html.div('Coordinates', 'class' => 'h5') + @html.h5('Coordinates', 'class' => 'h5') @html.div(:class => 'block') do @html.text!(hObject[:coordinates].to_s) end @@ -30,7 +30,7 @@ def writeHtml(hObject) # geographic element - native GeoJson unless hObject[:nativeGeoJson].empty? @html.div do - @html.div('GeoJson', 'class' => 'h5') + @html.h5('GeoJson', 'class' => 'h5') @html.div(:class => 'block') do @html.text!(hObject[:nativeGeoJson].to_json) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_georectifiedRepresentation.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_georectifiedRepresentation.rb index cf340b2c6..81a48eb9b 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_georectifiedRepresentation.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_georectifiedRepresentation.rb @@ -27,7 +27,7 @@ def writeHtml(hGeorectified) # georectified representation - scope hGeorectified[:scope].each do |scope| @html.div do - @html.div('Scope ', 'class' => 'h5') + @html.h5('Scope ', 'class' => 'h5') @html.div(:class => 'block') do scopeClass.writeHtml(hGeorectified[:scope]) end @@ -37,7 +37,7 @@ def writeHtml(hGeorectified) # georectified representation - grid {gridRepresentation} unless hGeorectified[:gridRepresentation].empty? @html.div do - @html.div('Grid Information ', 'class' => 'h5') + @html.h5('Grid Information ', 'class' => 'h5') @html.div(:class => 'block') do gridClass.writeHtml(hGeorectified[:gridRepresentation]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_georeferenceableRepresentation.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_georeferenceableRepresentation.rb index f65966232..4402fc2cc 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_georeferenceableRepresentation.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_georeferenceableRepresentation.rb @@ -29,7 +29,7 @@ def writeHtml(hGeoreferenceable) # georeferenceable representation - scope hGeoreferenceable[:scope].each do |scope| @html.div do - @html.div('Scope ', 'class' => 'h5') + @html.h5('Scope ', 'class' => 'h5') @html.div(:class => 'block') do scopeClass.writeHtml(hGeoreferenceable[:scope]) end @@ -40,7 +40,7 @@ def writeHtml(hGeoreferenceable) # georeferenceable representation - grid {gridRepresentation} unless hGeoreferenceable[:gridRepresentation].empty? @html.div do - @html.div('Grid Information ', 'class' => 'h5') + @html.h5('Grid Information ', 'class' => 'h5') @html.div(:class => 'block') do gridClass.writeHtml(hGeoreferenceable[:gridRepresentation]) end @@ -75,7 +75,7 @@ def writeHtml(hGeoreferenceable) # georeferenceable representation - parameter citation {citation} hGeoreferenceable[:parameterCitation].each do |hCitation| @html.div do - @html.div('Parameter Citation ', 'class' => 'h5') + @html.h5('Parameter Citation ', 'class' => 'h5') @html.div(:class => 'block') do citationClass.writeHtml(hCitation) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_graphic.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_graphic.rb index c587f3519..d06944c9e 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_graphic.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_graphic.rb @@ -49,7 +49,7 @@ def writeHtml(hGraphic) # graphic - uri [] {onlineResource} hGraphic[:graphicURI].each do |hOnline| @html.div do - @html.div('Online Link ', {'class' => 'h5'}) + @html.h5('Online Link ', {'class' => 'h5'}) @html.div(:class => 'block') do onlineClass.writeHtml(hOnline) end @@ -59,7 +59,7 @@ def writeHtml(hGraphic) # graphic - constraint [] {constraint} hGraphic[:graphicConstraints].each do |hConstraint| @html.div do - @html.div('Constraint', {'class' => 'h5'}) + @html.h5('Constraint', {'class' => 'h5'}) @html.div(:class => 'block') do constraintClass.writeHtml(hConstraint) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_gridRepresentation.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_gridRepresentation.rb index 1b217df66..c2b647034 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_gridRepresentation.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_gridRepresentation.rb @@ -28,7 +28,7 @@ def writeHtml(hGrid) # grid representation - scope hGrid[:scope].each do |scope| @html.div do - @html.div('Scope ', 'class' => 'h5') + @html.h5('Scope ', 'class' => 'h5') @html.div(:class => 'block') do scopeClass.writeHtml(hGrid[:scope]) end @@ -48,7 +48,7 @@ def writeHtml(hGrid) hGrid[:dimension].each do |hDimension| dimensionCount += 1 @html.div do - @html.div('Dimension '+dimensionCount.to_s, 'class' => 'h5') + @html.h5('Dimension '+dimensionCount.to_s, 'class' => 'h5') @html.div(:class => 'block') do dimensionClass.writeHtml(hDimension) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_identifier.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_identifier.rb index a8bcf6cd8..ae97dcdf6 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_identifier.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_identifier.rb @@ -65,7 +65,7 @@ def writeHtml(hIdentifier) # identifier - authority {citation} unless hIdentifier[:citation].empty? @html.div do - @html.div('Authority', {'id' => 'metadata-identifier', 'class' => 'h5'}) + @html.h5('Authority', {'id' => 'metadata-identifier', 'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hIdentifier[:citation]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_imageInfo.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_imageInfo.rb index 494bc6d01..18633439d 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_imageInfo.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_imageInfo.rb @@ -61,7 +61,7 @@ def writeHtml(hImage) # image information - image quality code {identifier} unless hImage[:imageQualityCode].empty? @html.div do - @html.div('Image Quality Code', {'class' => 'h5'}) + @html.h5('Image Quality Code', {'class' => 'h5'}) @html.div(:class => 'block') do identifierClass.writeHtml(hImage[:imageQualityCode]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_keyword.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_keyword.rb index e2b0a2e6c..61cd4844d 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_keyword.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_keyword.rb @@ -30,32 +30,30 @@ def writeHtml(hKeyword) if type.nil? type = 'Unclassified' end - @html.div(type, {'class' => 'h5'}) + @html.h5(type, {'class' => 'h5'}) @html.div(:class => 'block') do - - # keywords - @html.ul do - hKeyword[:keywords].each do |hKeyword| - unless hKeyword[:keyword].nil? - keyword = hKeyword[:keyword] - unless hKeyword[:keywordId].nil? - keyword += ' (ID: ' + hKeyword[:keywordId].to_s + ')' - end - @html.li(keyword) - end - end - end - + # thesaurus unless hKeyword[:thesaurus].empty? @html.div do - @html.div('Thesaurus', {'class' => 'h5'}) + @html.h5('Thesaurus', {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hKeyword[:thesaurus]) end end end + # keywords + hKeyword[:keywords].each do |hKeyword| + unless hKeyword[:keyword].nil? + keyword = hKeyword[:keyword] + unless hKeyword[:keywordId].nil? + keyword += ' (ID: ' + hKeyword[:keywordId].to_s + ')' + end + @html.div('Keyword:' + keyword) + end + end + end end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_lineage.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_lineage.rb index 37fea4a20..436b2fcf9 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_lineage.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_lineage.rb @@ -41,7 +41,7 @@ def writeHtml(hLineage) # lineage - scope unless hLineage[:resourceScope].empty? @html.div do - @html.div('Scope', {'class' => 'h5'}) + @html.h5('Scope', {'class' => 'h5'}) @html.div(:class => 'block') do scopeClass.writeHtml(hLineage[:resourceScope]) end @@ -51,7 +51,7 @@ def writeHtml(hLineage) # lineage - citation hLineage[:lineageCitation].each do |hCitation| @html.div do - @html.div('Citation', {'class' => 'h5'}) + @html.h5('Citation', {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hCitation) end @@ -61,7 +61,7 @@ def writeHtml(hLineage) # lineage - data sources hLineage[:dataSources].each do |hsource| @html.div do - @html.div('Data Source', {'class' => 'h5'}) + @html.h5('Data Source', {'class' => 'h5'}) @html.div(:class => 'block') do sourceClass.writeHtml(hsource) end @@ -71,7 +71,7 @@ def writeHtml(hLineage) # lineage - process steps hLineage[:processSteps].each do |hStep| @html.div do - @html.div('Process Step', {'class' => 'h5'}) + @html.h5('Process Step', {'class' => 'h5'}) @html.div(:class => 'block') do stepClass.writeHtml(hStep) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_maintenance.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_maintenance.rb index 6e061c43c..92d452db9 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_maintenance.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_maintenance.rb @@ -47,11 +47,11 @@ def writeHtml(hMaint) # maintenance - scopes [] {scope} unless hMaint[:scopes].empty? @html.div do - @html.div('Maintenance Scopes', {'class' => 'h5'}) + @html.h5('Maintenance Scopes', {'class' => 'h5'}) @html.div(:class => 'block') do hMaint[:scopes].each do |hScope| @html.div do - @html.div(hScope[:scopeCode], 'class' => 'h5') + @html.h5(hScope[:scopeCode], 'class' => 'h5') @html.div(:class => 'block') do scopeClass.writeHtml(hScope) end @@ -64,11 +64,11 @@ def writeHtml(hMaint) # maintenance - contacts [] {responsibility} unless hMaint[:contacts].empty? @html.div do - @html.div('Maintenance Contacts', {'class' => 'h5'}) + @html.h5('Maintenance Contacts', {'class' => 'h5'}) @html.div(:class => 'block') do hMaint[:contacts].each do |hContact| @html.div do - @html.div(hContact[:roleName], 'class' => 'h5') + @html.h5(hContact[:roleName], 'class' => 'h5') @html.div(:class => 'block') do responsibilityClass.writeHtml(hContact) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_medium.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_medium.rb index aa484fa26..26bd62799 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_medium.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_medium.rb @@ -29,7 +29,7 @@ def writeHtml(hMedium) # medium - specification {citation} unless hMedium[:mediumSpecification].empty? @html.div do - @html.div('Medium Specification', {'class' => 'h5'}) + @html.h5('Medium Specification', {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hMedium[:mediumSpecification]) end @@ -74,7 +74,7 @@ def writeHtml(hMedium) # medium - identifier {identifier} unless hMedium[:identifier].empty? @html.div do - @html.div('Identifier for the Medium', {'class' => 'h5'}) + @html.h5('Identifier for the Medium', {'class' => 'h5'}) @html.div(:class => 'block') do identifierClass.writeHtml(hMedium[:identifier]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_metadataInfo.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_metadataInfo.rb index 0f70128df..4b7573d0c 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_metadataInfo.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_metadataInfo.rb @@ -50,7 +50,7 @@ def writeHtml(hMetaInfo) # metadataInfo - metadata identifier {identifier} unless hMetaInfo[:metadataIdentifier].empty? @html.div do - @html.div('Metadata Identifier', {'id' => 'metadataInfo-identifier', 'class' => 'h3'}) + @html.h3('Metadata Identifier', {'id' => 'metadataInfo-identifier', 'class' => 'h3', 'style' => 'font-style: italic'}) @html.div(:class => 'block') do identifierClass.writeHtml(hMetaInfo[:metadataIdentifier]) end @@ -60,7 +60,7 @@ def writeHtml(hMetaInfo) # metadataInfo - parent metadata {citation} unless hMetaInfo[:parentMetadata].empty? @html.div do - @html.div('Parent Metadata', {'id' => 'metadataInfo-parent', 'class' => 'h3'}) + @html.h3('Parent Metadata', {'id' => 'metadataInfo-parent', 'class' => 'h3', 'style' => 'font-style: italic'}) @html.div(:class => 'block') do citationClass.writeHtml(hMetaInfo[:parentMetadata]) end @@ -70,13 +70,13 @@ def writeHtml(hMetaInfo) # metadataInfo - metadata locales unless hMetaInfo[:defaultMetadataLocale].empty? && hMetaInfo[:otherMetadataLocales].empty? @html.div do - @html.div('Metadata Locales', {'id' => 'metadataInfo-locale', 'class' => 'h3'}) + @html.h3('Metadata Locales', {'id' => 'metadataInfo-locale', 'class' => 'h3', 'style' => 'font-style: italic'}) @html.div(:class => 'block') do # default metadata locales {locale} unless hMetaInfo[:defaultMetadataLocale].empty? @html.div do - @html.div('Default Locale', {'class' => 'h5'}) + @html.h5('Default Locale', {'class' => 'h5'}) @html.div(:class => 'block') do localeClass.writeHtml(hMetaInfo[:defaultMetadataLocale]) end @@ -86,7 +86,7 @@ def writeHtml(hMetaInfo) # other metadata locales [] {locale} hMetaInfo[:otherMetadataLocales].each do |hLocale| @html.div do - @html.div('Other Locale', {'class' => 'h5'}) + @html.h5('Other Locale', {'class' => 'h5'}) @html.div(:class => 'block') do localeClass.writeHtml(hLocale) end @@ -100,11 +100,11 @@ def writeHtml(hMetaInfo) # metadataInfo - contacts [] {responsibility} unless hMetaInfo[:metadataContacts].empty? @html.div do - @html.div('Metadata Contacts', {'id' => 'metadataInfo-contacts', 'class' => 'h3'}) + @html.h3('Metadata Contacts', {'id' => 'metadataInfo-contacts', 'class' => 'h3', 'style' => 'font-style: italic'}) @html.div(:class => 'block') do hMetaInfo[:metadataContacts].each do |hResponsibility| @html.div do - @html.div(hResponsibility[:roleName], 'class' => 'h5') + @html.h5(hResponsibility[:roleName], 'class' => 'h5') @html.div(:class => 'block') do responsibilityClass.writeHtml(hResponsibility) end @@ -117,7 +117,7 @@ def writeHtml(hMetaInfo) # metadataInfo - dates [] {date} unless hMetaInfo[:metadataDates].empty? @html.div do - @html.div('Metadata Dates', {'id' => 'metadataInfo-dates', 'class' => 'h3'}) + @html.h3('Metadata Dates', {'id' => 'metadataInfo-dates', 'class' => 'h3', 'style' => 'font-style: italic'}) @html.div(:class => 'block') do hMetaInfo[:metadataDates].each do |hDate| @html.em('Date: ') @@ -131,7 +131,7 @@ def writeHtml(hMetaInfo) # metadataInfo - linkages [] {onlineResource} unless hMetaInfo[:metadataLinkages].empty? @html.div do - @html.div('Metadata Online Resource', {'id' => 'metadataInfo-links', 'class' => 'h3'}) + @html.h3('Metadata Online Resource', {'id' => 'metadataInfo-links', 'class' => 'h3', 'style' => 'font-style: italic'}) @html.div(:class => 'block') do hMetaInfo[:metadataLinkages].each do |hOnline| @html.div do @@ -148,7 +148,7 @@ def writeHtml(hMetaInfo) # metadataInfo - constraints [] {constraint} unless hMetaInfo[:metadataConstraints].empty? @html.div do - @html.div('Metadata Constraints', {'id' => 'metadataInfo-constraint', 'class' => 'h3'}) + @html.h3('Metadata Constraints', {'id' => 'metadataInfo-constraint', 'class' => 'h3', 'style' => 'font-style: italic'}) @html.div(:class => 'block') do hMetaInfo[:metadataConstraints].each do |hConstraint| @html.div do @@ -165,7 +165,7 @@ def writeHtml(hMetaInfo) # metadataInfo - maintenance {maintenance} unless hMetaInfo[:metadataMaintenance].empty? @html.div do - @html.div('Metadata Maintenance', {'id' => 'metadataInfo-maintenance', 'class' => 'h3'}) + @html.h3('Metadata Maintenance', {'id' => 'metadataInfo-maintenance', 'class' => 'h3', 'style' => 'font-style: italic'}) @html.div(:class => 'block') do maintClass.writeHtml(hMetaInfo[:metadataMaintenance]) end @@ -175,13 +175,14 @@ def writeHtml(hMetaInfo) # metadataInfo - alternate metadata references [] {citation} unless hMetaInfo[:alternateMetadataReferences].empty? @html.div do - @html.div('Alternate Metadata Citations', {'id' => 'metadataInfo-alternate', 'class' => 'h3'}) + @html.h3('Alternate Metadata Citations', {'id' => 'metadataInfo-alternate', 'class' => 'h3', 'style' => 'font-style: italic'}) @html.div(:class => 'block') do hMetaInfo[:alternateMetadataReferences].each do |hCitation| @html.div do - @html.div(hCitation[:title], 'class' => 'h5') + @html.h5(hCitation[:title], 'class' => 'h5') @html.div(:class => 'block') do citationClass.writeHtml(hCitation) + @html.br end end end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_metadataRepository.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_metadataRepository.rb index 5e3a9d42b..50a0b2619 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_metadataRepository.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_metadataRepository.rb @@ -40,7 +40,7 @@ def writeHtml(hRepository) # metadata repository - citation unless hRepository[:citation].empty? @html.div do - @html.div('Citation', {'class' => 'h5'}) + @html.h5('Citation', {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hRepository[:citation]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_processStep.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_processStep.rb index 7573b7950..d4a414b20 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_processStep.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_processStep.rb @@ -135,7 +135,7 @@ def writeHtml(hStep) # process step - scope {scope} unless hStep[:scope].empty? @html.div do - @html.div('Scope', {'class' => 'h5'}) + @html.h5('Scope', {'class' => 'h5'}) @html.div(:class => 'block') do scopeClass.writeHtml(hStep[:scope]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_processing.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_processing.rb index 5b8f54d77..7c9e4f334 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_processing.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_processing.rb @@ -36,7 +36,7 @@ def writeHtml(hProcessing) # processing - identifier {identifier} unless hProcessing[:identifier].empty? @html.div do - @html.div('Identifier', {'class' => 'h5'}) + @html.h5('Identifier', {'class' => 'h5'}) @html.div(:class => 'block') do identifierClass.writeHtml(hProcessing[:identifier]) end @@ -63,7 +63,7 @@ def writeHtml(hProcessing) # processing - documentation [] {citation} hProcessing[:documentation].each do |hCitation| @html.div do - @html.div('Documentation', {'class' => 'h5'}) + @html.h5('Documentation', {'class' => 'h5'}) @html.div(:class => 'block') do citationClass.writeHtml(hCitation) end @@ -73,7 +73,7 @@ def writeHtml(hProcessing) # processing - algorithm [] {algorithm} hProcessing[:algorithms].each do |hAlgorithm| @html.div do - @html.div('Algorithm', {'class' => 'h5'}) + @html.h5('Algorithm', {'class' => 'h5'}) @html.div(:class => 'block') do algorithmClass.writeHtml(hAlgorithm) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_rangeElementDescription.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_rangeElementDescription.rb index 1c8e8d5ac..da410c3fe 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_rangeElementDescription.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_rangeElementDescription.rb @@ -25,12 +25,12 @@ def writeHtml(red) @html.br end - red[:rangeElements].each do |hRangeElement| + red[:rangeElement].each do |hRangeElement| @html.em('Range Element:') @html.text!(hRangeElement) + @html.br end - @html.br end # writeHtml end # Html_RangeElementDescription diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_releasability.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_releasability.rb index 2a72d5907..5fda7f7ff 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_releasability.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_releasability.rb @@ -44,7 +44,7 @@ def writeHtml(hRelease) @html.div(:class => 'block') do hRelease[:addressee].each do |hAddressee| @html.div do - @html.div(hAddressee[:roleName], 'class' => 'h5') + @html.h5(hAddressee[:roleName], 'class' => 'h5') @html.div(:class => 'block') do responsibilityClass.writeHtml(hAddressee) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_resourceInfo.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_resourceInfo.rb index b137dbc13..5c535b9b6 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_resourceInfo.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_resourceInfo.rb @@ -76,7 +76,7 @@ def writeHtml(hResource) # resource - citation {citation} unless hResource[:citation].empty? @html.div do - @html.div('Citation', {'id' => 'resourceInfo-citation', 'class' => 'h3'}) + @html.h3('Citation', {'id' => 'resourceInfo-citation', 'class' => 'h3'}) @html.div(:class => 'block') do citationClass.writeHtml(hResource[:citation]) end @@ -86,7 +86,7 @@ def writeHtml(hResource) # resource - abstract unless hResource[:abstract].nil? && hResource[:shortAbstract].nil? @html.div do - @html.div('Abstract', {'id' => 'resourceInfo-abstract', 'class' => 'h3'}) + @html.h3('Abstract', {'id' => 'resourceInfo-abstract', 'class' => 'h3'}) @html.div(:class => 'block') do # short abstract @@ -115,7 +115,7 @@ def writeHtml(hResource) # resource - purpose unless hResource[:purpose].nil? && hResource[:resourceUsages].empty? @html.div do - @html.div('Purpose, Usage, and Limitations', {'id' => 'resourceInfo-purpose', 'class' => 'h3'}) + @html.h3('Purpose, Usage, and Limitations', {'id' => 'resourceInfo-purpose', 'class' => 'h3'}) @html.div(:class => 'block') do # purpose @@ -148,13 +148,13 @@ def writeHtml(hResource) # resource - graphic overview [] {graphicOverview} unless hResource[:graphicOverviews].empty? @html.div do - @html.div('Graphic Overviews', {'id' => 'resourceInfo-overview', 'class' => 'h3'}) + @html.h3('Graphic Overviews', {'id' => 'resourceInfo-overview', 'class' => 'h3'}) @html.div(:class => 'block') do counter = 0 hResource[:graphicOverviews].each do |hGraphic| counter += 1 @html.div do - @html.div('Overview '+counter.to_s, 'class' => 'h5') + @html.h5('Overview '+counter.to_s, 'class' => 'h5') @html.div(:class => 'block') do graphicClass.writeHtml(hGraphic) end @@ -167,13 +167,13 @@ def writeHtml(hResource) # resource - point of contact [] {responsibility} unless hResource[:pointOfContacts].empty? && hResource[:credits].empty? @html.div do - @html.div('Resource Contacts', {'id' => 'resourceInfo-contacts', 'class' => 'h3'}) + @html.h3('Resource Contacts', {'id' => 'resourceInfo-contacts', 'class' => 'h3'}) @html.div(:class => 'block') do # contacts - responsibility hResource[:pointOfContacts].each do |hContact| @html.div do - @html.div(hContact[:roleName], 'class' => 'h5') + @html.h5(hContact[:roleName], 'class' => 'h5') @html.div(:class => 'block') do responsibilityClass.writeHtml(hContact) end @@ -183,7 +183,7 @@ def writeHtml(hResource) # contacts - credits unless hResource[:credits].empty? @html.div do - @html.div('Other Credits', 'class' => 'h5') + @html.h5('Other Credits', 'class' => 'h5') @html.div(:class => 'block') do hResource[:credits].each do |credit| @html.em('Credit: ') @@ -201,7 +201,7 @@ def writeHtml(hResource) # resource - temporal information unless hResource[:timePeriod].empty? && hResource[:temporalResolutions].empty? @html.div do - @html.div('Temporal Information', {'id' => 'resourceInfo-temporal', 'class' => 'h3'}) + @html.h3('Temporal Information', {'id' => 'resourceInfo-temporal', 'class' => 'h3'}) @html.div(:class => 'block') do # time period {timePeriod} @@ -216,7 +216,7 @@ def writeHtml(hResource) unless hResource[:temporalResolutions].empty? hResource[:temporalResolutions].each do |hResolution| @html.div do - @html.div('Resolution', 'class' => 'h5') + @html.h5('Resolution', 'class' => 'h5') @html.div(:class => 'block') do durationClass.writeHtml(hResolution) end @@ -234,7 +234,7 @@ def writeHtml(hResource) hResource[:spatialRepresentations].empty? hResource[:spatialResolutions].empty? @html.div do - @html.div('Spatial Information', {'id' => 'resourceInfo-spatial', 'class' => 'h3'}) + @html.h3('Spatial Information', {'id' => 'resourceInfo-spatial', 'class' => 'h3'}) @html.div(:class => 'block') do # representation type [] {spatialRepresentation} @@ -312,11 +312,11 @@ def writeHtml(hResource) # # resource - extent [] {extent} # unless hResource[:extents].empty? # @html.div do - # @html.div('Spatial, Temporal, and Vertical Extents', {'id' => 'resourceInfo-extent', 'class' => 'h3'}) + # @html.h3('Spatial, Temporal, and Vertical Extents', {'id' => 'resourceInfo-extent', 'class' => 'h3'}) # @html.div(:class => 'block') do # hResource[:extents].each do |hExtent| # @html.div do - # @html.div('Extent', {'class' => 'h5'}) + # @html.h5('Extent', {'class' => 'h5'}) # @html.div(:class => 'block') do # extentClass.writeHtml(hExtent) # end @@ -329,7 +329,7 @@ def writeHtml(hResource) # resource - keywords [] {keyword} unless hResource[:keywords].empty? @html.div do - @html.div('Keywords', {'id' => 'resourceInfo-keyword', 'class' => 'h3'}) + @html.h3('Keywords', {'id' => 'resourceInfo-keyword', 'class' => 'h3'}) @html.div(:class => 'block') do hResource[:keywords].each do |hKeyword| keywordClass.writeHtml(hKeyword) @@ -341,13 +341,13 @@ def writeHtml(hResource) # resource - taxonomy {taxonomy} unless hResource[:taxonomy].empty? @html.div do - @html.div('Taxonomy', {'id' => 'resourceInfo-taxonomy', 'class' => 'h3'}) + @html.h3('Taxonomy', {'id' => 'resourceInfo-taxonomy', 'class' => 'h3'}) @html.div(:class => 'block') do counter = 0 hResource[:taxonomy].each do |hTaxonomy| counter += 1 @html.div do - @html.div('Taxonomic Structure '+counter.to_s, 'class' => 'h5') + @html.h5('Taxonomic Structure '+counter.to_s, 'class' => 'h5') @html.div(:class => 'block') do taxonomyClass.writeHtml(hTaxonomy) end @@ -360,7 +360,7 @@ def writeHtml(hResource) # resource - constraints [] {constraint} unless hResource[:constraints].empty? @html.div do - @html.div('Constraints', {'id' => 'resourceInfo-constraint', 'class' => 'h3'}) + @html.h3('Constraints', {'id' => 'resourceInfo-constraint', 'class' => 'h3'}) @html.div(:class => 'block') do hResource[:constraints].each do |hConstraint| @html.div do @@ -377,7 +377,7 @@ def writeHtml(hResource) # resource - coverage description [] {coverageInfo} unless hResource[:coverageDescriptions].empty? @html.div do - @html.div('Coverage Description', {'id' => 'resourceInfo-Coverage', 'class' => 'h3'}) + @html.h3('Coverage Description', {'id' => 'resourceInfo-Coverage', 'class' => 'h3'}) @html.div(:class => 'block') do hResource[:coverageDescriptions].each do |hCoverage| @html.div do @@ -394,7 +394,7 @@ def writeHtml(hResource) # resource - locale unless hResource[:defaultResourceLocale].empty? && hResource[:otherResourceLocales].empty? @html.div do - @html.div('Resource Locales', {'id' => 'resourceInfo-locale', 'class' => 'h3'}) + @html.h3('Resource Locales', {'id' => 'resourceInfo-locale', 'class' => 'h3'}) @html.div(:class => 'block') do # default resource locales {locale} @@ -424,11 +424,11 @@ def writeHtml(hResource) # resource - formats [] {format} unless hResource[:resourceFormats].empty? @html.div do - @html.div('Resource Formats', {'id' => 'resourceInfo-format', 'class' => 'h3'}) + @html.h3('Resource Formats', {'id' => 'resourceInfo-format', 'class' => 'h3'}) @html.div(:class => 'block') do hResource[:resourceFormats].each do |hFormat| @html.div do - @html.div('Format', {'class' => 'h5'}) + @html.h5('Format', {'class' => 'h5'}) @html.div(:class => 'block') do formatClass.writeHtml(hFormat) end @@ -443,7 +443,7 @@ def writeHtml(hResource) hResource[:environmentDescription].nil? && hResource[:supplementalInfo].nil? @html.div do - @html.div('Supplemental Information', {'id' => 'resourceInfo-supplemental', 'class' => 'h3'}) + @html.h3('Supplemental Information', {'id' => 'resourceInfo-supplemental', 'class' => 'h3'}) @html.div(:class => 'block') do # supplemental - maintenance [] {maintenance} diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_responsibility.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_responsibility.rb index ef6ff1ec3..6b3f29efb 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_responsibility.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_responsibility.rb @@ -27,7 +27,7 @@ def writeHtml(hResponsibility) hResponsibility[:parties].each do |hParty| hContact = Html_Document.getContact(hParty[:contactId]) @html.div do - @html.div(hContact[:name], 'class' => 'h5') + @html.h5(hContact[:name], 'class' => 'h5') @html.div(:class => 'block') do # party - contact ID @@ -65,7 +65,7 @@ def writeHtml(hResponsibility) # # responsibility - role extent [] {extent} # hResponsibility[:roleExtents].each do |hExtent| # @html.div do - # @html.div('Extent', {'class' => 'h5'}) + # @html.h5('Extent', {'class' => 'h5'}) # @html.div(:class => 'block') do # extentClass.writeHtml(hExtent) # end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_resultFile.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_resultFile.rb new file mode 100644 index 000000000..a863aab10 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_resultFile.rb @@ -0,0 +1,60 @@ +# HTML writer +# result file + +require_relative 'html_format' + +module ADIWG + module Mdtranslator + module Writers + module Simple_html + + class Html_ResultFile + + def initialize(html) + @html = html + end + + def writeHtml(hResultFile) + + # classes used + formatClass = Html_Format.new(@html) + + + # result file - file name + unless hResultFile[:fileName].nil? + @html.em('File Name: ') + @html.text!(hResultFile[:fileName]) + @html.br + end + + # result file - file type + unless hResultFile[:fileType].nil? + @html.em('File Type: ') + @html.text!(hResultFile[:fileType]) + @html.br + end + + # result file - file description + unless hResultFile[:fileDescription].nil? + @html.em('File Description: ') + @html.text!(hResultFile[:fileDescription]) + @html.br + end + + # result file - file format + unless hResultFile[:fileFormat].empty? + @html.div do + @html.div(hResultFile[:fileFormat][:title], {'class' => 'h5'}) + @html.div(:class => 'block') do + formatClass.writeHtml(hResultFile[:fileFormat]) + end + end + end + + end # writeHtml + end # Html_ResultFile + + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_scope.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_scope.rb index f548bfc75..2d8c0b35d 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_scope.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_scope.rb @@ -5,7 +5,7 @@ # Stan Smith 2017-03-25 original script require_relative 'html_scopeDescription' -# require_relative 'html_extent' +require_relative 'html_extent' module ADIWG module Mdtranslator @@ -22,7 +22,7 @@ def writeHtml(hScope) # classes used descriptionClass = Html_ScopeDescription.new(@html) - # extentClass = Html_Extent.new(@html) + extentClass = Html_Extent.new(@html) # scope - code unless hScope[:scopeCode].nil? @@ -34,22 +34,22 @@ def writeHtml(hScope) # scope - description [] {scopeDescription} hScope[:scopeDescriptions].each do |hDescription| @html.div do - @html.div('Description', {'class' => 'h5'}) + @html.h5('Description', {'class' => 'h5'}) @html.div(:class => 'block') do descriptionClass.writeHtml(hDescription) end end end - # # scope - extent [] {extent} - # hScope[:extents].each do |hExtent| - # @html.div do - # @html.div('Extent', {'class' => 'h5'}) - # @html.div(:class => 'block') do - # extentClass.writeHtml(hExtent) - # end - # end - # end + # scope - extent [] {extent} + hScope[:extents].each do |hExtent| + @html.div do + @html.h5('Extent', {'class' => 'h5'}) + @html.div(:class => 'block') do + extentClass.writeHtml(hExtent) + end + end + end end # writeHtml end # Html_Scope diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_source.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_source.rb index f7b728128..573e66f8b 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_source.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_source.rb @@ -82,7 +82,7 @@ def writeHtml(hSource) # source - spatial resolution {resolution} unless hSource[:spatialResolution].empty? @html.div do - @html.div('Resolution', {'class' => 'h5'}) + @html.h5('Resolution', {'class' => 'h5'}) @html.div(:class => 'block') do resolutionClass.writeHtml(hSource[:spatialResolution]) end @@ -119,7 +119,7 @@ def writeHtml(hSource) # source - scope {scope} unless hSource[:scope].empty? @html.div do - @html.div('Scope', {'class' => 'h5'}) + @html.h5('Scope', {'class' => 'h5'}) @html.div(:class => 'block') do scopeClass.writeHtml(hSource[:scope]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_spatialRepresentation.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_spatialRepresentation.rb index 493eed3d2..f4fc53428 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_spatialRepresentation.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_spatialRepresentation.rb @@ -31,7 +31,7 @@ def writeHtml(hRepresentation) # spatial Representation - grid {gridRepresentation} unless hRepresentation[:gridRepresentation].empty? @html.div do - @html.div('Grid Representation ', 'class' => 'h5') + @html.h5('Grid Representation ', 'class' => 'h5') @html.div(:class => 'block') do gridClass.writeHtml(hRepresentation[:gridRepresentation]) end @@ -41,7 +41,7 @@ def writeHtml(hRepresentation) # spatial Representation - vector {vectorRepresentation} unless hRepresentation[:vectorRepresentation].empty? @html.div do - @html.div('Vector Representation ', 'class' => 'h5') + @html.h5('Vector Representation ', 'class' => 'h5') @html.div(:class => 'block') do vectorClass.writeHtml(hRepresentation[:vectorRepresentation]) end @@ -51,7 +51,7 @@ def writeHtml(hRepresentation) # spatial Representation - georectified {georectifiedRepresentation} unless hRepresentation[:georectifiedRepresentation].empty? @html.div do - @html.div('Georectified Representation ', 'class' => 'h5') + @html.h5('Georectified Representation ', 'class' => 'h5') @html.div(:class => 'block') do georectifiedClass.writeHtml(hRepresentation[:georectifiedRepresentation]) end @@ -61,7 +61,7 @@ def writeHtml(hRepresentation) # spatial Representation - georeferenceable {georeferenceableRepresentation} unless hRepresentation[:georeferenceableRepresentation].empty? @html.div do - @html.div('Georeferenceable Representation ', 'class' => 'h5') + @html.h5('Georeferenceable Representation ', 'class' => 'h5') @html.div(:class => 'block') do georeferenceableClass.writeHtml(hRepresentation[:georeferenceableRepresentation]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_taxonomy.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_taxonomy.rb index 2da661fe5..4966a8c1a 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_taxonomy.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_taxonomy.rb @@ -102,11 +102,11 @@ def writeHtml(hTaxonomy) # taxonomy - observers {responsibility} unless hTaxonomy[:observers].empty? @html.div do - @html.div('Observers', {'class' => 'h5'}) + @html.h5('Observers', {'class' => 'h5'}) @html.div(:class => 'block') do hTaxonomy[:observers].each do |hObserver| @html.div do - @html.div(hObserver[:roleName], 'class' => 'h5') + @html.h5(hObserver[:roleName], 'class' => 'h5') @html.div(:class => 'block') do responsibilityClass.writeHtml(hObserver) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_timeInstant.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_timeInstant.rb index 8300c0171..f8857c277 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_timeInstant.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_timeInstant.rb @@ -66,7 +66,7 @@ def writeHtml(hInstant) # time instant - identifier {identifier} unless hInstant[:identifier].empty? @html.div do - @html.div('Identifier', 'class' => 'h5') + @html.h5('Identifier', 'class' => 'h5') @html.div(:class => 'block') do identifierClass.writeHtml(hInstant[:identifier]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_timePeriod.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_timePeriod.rb index 566d6fbbd..1f7b584ac 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_timePeriod.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_timePeriod.rb @@ -64,15 +64,13 @@ def writeHtml(hPeriod) # time period - description unless hPeriod[:description].nil? @html.em('Description: ') - @html.div(:class => 'block') do - @html.text!(hPeriod[:description]) - end + @html.text!(hPeriod[:description]) end # time period - start geologic age {geologic age} unless hPeriod[:startGeologicAge].empty? @html.div do - @html.div('Starting Geologic Age', 'class' => 'h5') + @html.h5('Starting Geologic Age', 'class' => 'h5') @html.div(:class => 'block') do geoAgeClass.writeHtml(hPeriod[:startGeologicAge]) end @@ -82,7 +80,7 @@ def writeHtml(hPeriod) # time period - end geologic age {geologic age} unless hPeriod[:endGeologicAge].empty? @html.div do - @html.div('Ending Geologic Age', 'class' => 'h5') + @html.h5('Ending Geologic Age', 'class' => 'h5') @html.div(:class => 'block') do geoAgeClass.writeHtml(hPeriod[:endGeologicAge]) end @@ -92,7 +90,7 @@ def writeHtml(hPeriod) # time period - identifier {identifier} unless hPeriod[:identifier].empty? @html.div do - @html.div('Identifier', 'class' => 'h5') + @html.h5('Identifier', 'class' => 'h5') @html.div(:class => 'block') do identifierClass.writeHtml(hPeriod[:identifier]) end @@ -102,7 +100,7 @@ def writeHtml(hPeriod) # time period - time interval unless hPeriod[:timeInterval].empty? @html.div do - @html.div('Time Interval', 'class' => 'h5') + @html.h5('Time Interval', 'class' => 'h5') @html.div(:class => 'block') do intervalClass.writeHtml(hPeriod[:timeInterval]) end @@ -112,7 +110,7 @@ def writeHtml(hPeriod) # time period - duration unless hPeriod[:duration].empty? @html.div do - @html.div('Duration', 'class' => 'h5') + @html.h5('Duration', 'class' => 'h5') @html.div(:class => 'block') do durationClass.writeHtml(hPeriod[:duration]) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_transferOption.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_transferOption.rb index 7a8294a5b..aaba6738d 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_transferOption.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_transferOption.rb @@ -68,7 +68,7 @@ def writeHtml(hOption) # transfer options - transfer frequency {duration} unless hOption[:transferFrequency].empty? @html.div do - @html.div('Transfer Frequency', 'class' => 'h5') + @html.h5('Transfer Frequency', 'class' => 'h5') @html.div(:class => 'block') do durationClass.writeHtml(hOption[:transferFrequency]) end @@ -78,7 +78,7 @@ def writeHtml(hOption) # transfer options - distribution formats [] {format} hOption[:distributionFormats].each do |hFormat| @html.div do - @html.div('Distribution Format Option', 'class' => 'h5') + @html.h5('Distribution Format Option', 'class' => 'h5') @html.div(:class => 'block') do formatClass.writeHtml(hFormat) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_usage.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_usage.rb index 54d8f8a14..64fcc6195 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_usage.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_usage.rb @@ -37,7 +37,7 @@ def writeHtml(hUsage) # resource usage - temporal extent unless hUsage[:temporalExtents].empty? @html.div do - @html.div('Times and Periods of Usage', 'class' => 'h5') + @html.h5('Times and Periods of Usage', 'class' => 'h5') @html.div(:class => 'block') do hUsage[:temporalExtents].each do |hTemporal| temporalClass.writeHtml(hTemporal) @@ -49,7 +49,7 @@ def writeHtml(hUsage) # resource usage - limitation unless hUsage[:userLimitation].nil? && hUsage[:limitationResponses].empty? @html.div do - @html.div('User Defined Limitations', 'class' => 'h5') + @html.h5('User Defined Limitations', 'class' => 'h5') @html.div(:class => 'block') do # user limitation @@ -75,7 +75,7 @@ def writeHtml(hUsage) # resource usage - documented issue unless hUsage[:identifiedIssue].empty? @html.div do - @html.div('Cited Issue', 'class' => 'h5') + @html.h5('Cited Issue', 'class' => 'h5') @html.div(:class => 'block') do citationClass.writeHtml(hUsage[:identifiedIssue]) end @@ -85,7 +85,7 @@ def writeHtml(hUsage) # resource usage - additional documentation hUsage[:additionalDocumentation].each do |hCitation| @html.div do - @html.div('Additional Documentation', 'class' => 'h5') + @html.h5('Additional Documentation', 'class' => 'h5') @html.div(:class => 'block') do citationClass.writeHtml(hCitation) end @@ -99,7 +99,7 @@ def writeHtml(hUsage) @html.div(:class => 'block') do hUsage[:userContacts].each do |hContact| @html.div do - @html.div(hContact[:roleName], 'class' => 'h5') + @html.h5(hContact[:roleName], 'class' => 'h5') @html.div(:class => 'block') do responsibilityClass.writeHtml(hContact) end diff --git a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_vectorRepresentation.rb b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_vectorRepresentation.rb index 8cb60d275..57e830a0e 100644 --- a/lib/adiwg/mdtranslator/writers/simple_html/sections/html_vectorRepresentation.rb +++ b/lib/adiwg/mdtranslator/writers/simple_html/sections/html_vectorRepresentation.rb @@ -28,7 +28,7 @@ def writeHtml(hVector) # vector representation - scope hVector[:scope].each do |scope| @html.div do - @html.div('Scope ', 'class' => 'h5') + @html.h5('Scope ', 'class' => 'h5') @html.div(:class => 'block') do scopeClass.writeHtml(hVector[:scope]) end @@ -46,7 +46,7 @@ def writeHtml(hVector) # vector representation - vector object [] hVector[:vectorObject].each do |hObject| @html.div do - @html.div('Vector Object ', 'class' => 'h5') + @html.h5('Vector Object ', 'class' => 'h5') @html.div(:class => 'block') do objectClass.writeHtml(hObject) end diff --git a/test/helpers/mdJson_hash_functions.rb b/test/helpers/mdJson_hash_functions.rb index 071915334..bb1203d0d 100644 --- a/test/helpers/mdJson_hash_functions.rb +++ b/test/helpers/mdJson_hash_functions.rb @@ -62,6 +62,69 @@ def build_dataDictionary return hDictionary end + def build_dataQuality + hDataQuality = dataQuality + hDataQuality[:scope] = build_scope_full + hDataQuality[:standaloneQualityReport] = { + reportReference: build_citation('standalone quality report 1'), + abstract: "standalone quality report 1" + } + # NOTE: This object should be in the file mdJson_hash_objects.rb so at some point it should be moved + # refer to other build_ functions for examples and references on how build_dataQuality should be structured + hDataQuality[:report] = [ + { + type: 'DQ_AbsoluteExternalPositionalAccuracy', + standaloneQualityReportDetails: "standalone quality report details 1", + qualityMeasure: { + identifier: { + identifier: 'identifier', + namespace: 'namespace', + version: 'version', + description: 'description' + }, + name: ['name of measure'], + description: 'description' + }, + evaluationMethod: { + type: 'evaluationMethod', + dateTime: ['2019-06-11T08:35:00', '2019-06-11T09:00:00'], + methodDescription: 'evaluation method description', + evaluationProcedure: { title: 'EP Title' }, + referenceDocument: [ ], + evaluationMethodType: 'DQ_EvaluationMethodTypeCode', + deductiveSource: 'deductive source', + samplingScheme: 'sampling scheme', + lotDescription: 'lot description', + samplingRatio: 'sampling ratio' + }, + quantitativeResult: [ + { + dateTime: "2019-06-11T09:00:00", + scope: build_scope_full, + value: [9.99, 9.0], + valueUnits: "value units", + valueRecordType: "value record type" + } + ], + descriptiveResult: [{ + dateTime: "2019-06-11T09:00:00", + scope: build_scope_full, + statement: "statement" + }], + conformanceResult: [{ + dateTime: "2019-06-11T09:00:00", + scope: build_scope_full, + specification: build_citation('alternate metadata title one'), + explanation: "conformance result explanation", + pass: false + }], + # derivedElementReports: [], + } + ] + + return hDataQuality + end + def build_date(dateTime, type = 'none') hDate = date hDate[:date] = dateTime @@ -157,66 +220,6 @@ def build_funding(id = nil, amount = nil, description = nil) hFunding[:description] = description unless description.nil? return hFunding end - - def build_dataQuality - hDataQuality = dataQuality - hDataQuality[:scope] = build_scope_full - hDataQuality[:standaloneQualityReport] = { - abstract: "standalone quality report 1" - } - - hDataQuality[:report] = [ - { - conformanceResult: [{ - dateTime: "2019-06-11T09:00:00", - scope: build_scope_full, - specification: build_citation('alternate metadata title one'), - explanation: "conformance result explanation", - pass: false - }], - descriptiveResult: [{ - dateTime: "2019-06-11T09:00:00", - scope: build_scope_full, - statement: "statement" - }], - qualityMeasure: { - identifier: { - identifier: 'identifier', - description: 'description', - namespace: 'namespace', - version: 'version' - }, - name: ['name of measure'], - description: 'description' - }, - evaluationMethod: { - type: 'evaluation method type - enumerated', - dateTime: '2019-06-11T08:35:00', - methodDescription: 'evaluation method description', - evaluationProcedure: { title: 'EP Title' }, - referenceDocument: [ ], - evaluationMethodType: 'DQ_EvaluationMethodTypeCode', - deductiveSource: 'deductive source', - samplingScheme: 'sampling scheme', - lotDescription: 'lot description', - samplingRatio: 'sampling ratio' - }, - quantitativeResult: [ - { - dateTime: "2019-06-11T09:00:00", - scope: build_scope_full, - value: [9.99, 9.0], - valueUnits: "value units", - valueRecordType: "value record type" - } - ], - # derivedElementReports: [], - # relatedElementReports: [] - } - ] - - return hDataQuality - end def build_geoJson aGeoJson = [] diff --git a/test/helpers/mdJson_hash_objects.rb b/test/helpers/mdJson_hash_objects.rb index e948a2cc1..773c8d518 100644 --- a/test/helpers/mdJson_hash_objects.rb +++ b/test/helpers/mdJson_hash_objects.rb @@ -57,7 +57,7 @@ def base isOrganization: true, name: 'organization name', externalIdentifier: [ - { identifier: '0000-00002', namespace: 'ORCID' } + { identifier: '0000-00002', namespace: 'ROR' } ], phone: [ { @@ -148,6 +148,16 @@ def base status: [ 'status 1' ], + pointOfContact: [ + { + role: 'pointOfContact', + party: [ + { + contactId: 'CID001' + } + ] + } + ], extent: [ geographicExtent: [ { @@ -162,16 +172,6 @@ def base } ] ], - pointOfContact: [ - { - role: 'pointOfContact', - party: [ - { - contactId: 'CID001' - } - ] - } - ], keyword: [ { keyword: [ @@ -245,14 +245,14 @@ def additionalDocumentation # associated resource --------------------- def associatedResource { + associationType: 'association type', + initiativeType: 'initiative type', resourceType: [ { type: 'resource type', name: 'resource name' } ], - associationType: 'association type', - initiativeType: 'initiative type', resourceCitation: { title: 'citation title', date: [ @@ -766,7 +766,7 @@ def attribute { name: 'range element name 1', definition: 'range element definition', - rangeElements: [ 'range element record 1' ] + rangeElement: [ 'range element record 1' ] } ], boundMin: 100, @@ -1054,9 +1054,8 @@ def funding def dataQuality { scope: scope, - report: [{ - qualityMeasure: qualityMeasure - }] + standaloneQualityReport: {}, + report: [] } end diff --git a/test/readers/fgdc/tc_fgdc_lineage.rb b/test/readers/fgdc/tc_fgdc_lineage.rb index d8f0ac02c..eb3b8b656 100644 --- a/test/readers/fgdc/tc_fgdc_lineage.rb +++ b/test/readers/fgdc/tc_fgdc_lineage.rb @@ -35,16 +35,47 @@ def test_lineage_complete # lineage refute_nil hLineage - assert_equal 'method description one; method description two', hLineage[:statement] - assert_equal 3, hLineage[:lineageCitation].length - assert_equal 2, hLineage[:dataSources].length - assert_equal 2, hLineage[:processSteps].length - - # citation - hCitation = hLineage[:lineageCitation][0] - assert_equal 'method citation one', hCitation[:title] - + # statement to processStep description, change + assert_nil hLineage[:statement] + refute_empty hLineage[:processSteps] + + # 4 total, 2 from methodology and 2 from process step + assert_equal 4, hLineage[:processSteps].length + + # 2 tests for descriptions in methods + assert_equal 'method description one', hLineage[:processSteps][0][:description] + assert_equal 'method description two', hLineage[:processSteps][1][:description] + + # expected 2 citations in the first process step + assert_equal 2, hLineage[:processSteps][0][:references].length + + # expected 1 citation in the second process step + assert_equal 1, hLineage[:processSteps][1][:references].length + + + # process step descriptions + assert_equal 'my proc step 1 description', hLineage[:processSteps][2][:description] + assert_equal 'my proc step 2 description', hLineage[:processSteps][3][:description] + + # citations within the methodologies + hCitation1 = hLineage[:processSteps][0][:references][0] + refute_nil hCitation1 + assert_equal 'method citation one', hCitation1[:title] + + hCitation2 = hLineage[:processSteps][0][:references][1] + refute_nil hCitation2 + assert_equal 'method citation two', hCitation2[:title] + + hCitation3 = hLineage[:processSteps][1][:references][0] + refute_nil hCitation3 + assert_equal 1, hLineage[:processSteps][1][:references].length + assert_equal 'method citation three', hCitation3[:title] + + # lineageCitation + assert_equal 0, hLineage[:lineageCitation].length + # dataSource + assert_equal 2, hLineage[:dataSources].length hSource = hLineage[:dataSources][0] assert_equal 'source id', hSource[:sourceId] assert_equal 'my source 1 contribution', hSource[:description] diff --git a/test/readers/fgdc/tc_fgdc_process.rb b/test/readers/fgdc/tc_fgdc_process.rb index eedbe3500..075740184 100644 --- a/test/readers/fgdc/tc_fgdc_process.rb +++ b/test/readers/fgdc/tc_fgdc_process.rb @@ -24,17 +24,18 @@ def test_process_complete refute_nil hLineage aSteps = hLineage[:processSteps] - assert_equal 2, aSteps.length + assert_equal 4, aSteps.length - hProcess = aSteps[0] + # first process step that is not a methodology + hProcess = aSteps[2] refute_empty hProcess assert_nil hProcess[:stepId] assert_equal 'my proc step 1 description', hProcess[:description] assert_nil hProcess[:rationale] refute_empty hProcess[:timePeriod] assert_equal 1, hProcess[:processors].length - assert_equal 2, hProcess[:stepSources].length - assert_equal 1, hProcess[:stepProducts].length + assert_empty hProcess[:stepSources] + assert_empty hProcess[:stepProducts] assert_empty hProcess[:scope] hTimePeriod = hProcess[:timePeriod] @@ -47,12 +48,6 @@ def test_process_complete assert_empty hProcessor[:roleExtents] assert_equal 1, hProcessor[:parties].length - hSource = hProcess[:stepSources][0] - assert_equal 'my source 1 contribution', hSource[:description] - - hProduct = hProcess[:stepProducts][0] - assert_equal 'my source 2 contribution', hProduct[:description] - assert hResponse[:readerExecutionPass] assert_includes hResponse[:readerExecutionMessages], 'WARNING: FGDC reader: contact address is missing' assert_includes hResponse[:readerExecutionMessages], 'WARNING: FGDC reader: contact voice phone is missing' diff --git a/test/readers/fgdc/tc_fgdc_quality.rb b/test/readers/fgdc/tc_fgdc_quality.rb index f3eb2b26c..f1c6eab25 100644 --- a/test/readers/fgdc/tc_fgdc_quality.rb +++ b/test/readers/fgdc/tc_fgdc_quality.rb @@ -1,5 +1,5 @@ # MdTranslator - minitest of -# readers / fgdc / module_quality +# readers / fgdc / module_dataQuality # History: # Stan Smith 2017-08-31 original script @@ -11,7 +11,7 @@ class TestReaderFgdcQuality < TestReaderFGDCParent @@xDoc = TestReaderFGDCParent.get_XML('dataQuality.xml') - @@NameSpace = ADIWG::Mdtranslator::Readers::Fgdc::Quality + @@NameSpace = ADIWG::Mdtranslator::Readers::Fgdc::DataQuality def test_quality_complete @@ -27,9 +27,14 @@ def test_quality_complete # require 'pry'; binding.pry - horizpa = hDataQuality[:report].find{ |h| h.dig(:qualityMeasure, :name) == ['Horizontal Positional Accuracy Report'] } - assert_equal 'GPS Unit', horizpa.dig(:evaluationMethod, :methodDescription) - assert_equal 'Instrument parameters', horizpa.dig(:qualityMeasure, :description) + horizpa = hDataQuality[:report].find do |h| + h[:type] == 'DQ_AbsoluteExternalPositionalAccuracy' && + h.dig(:descriptiveResult, 0, :name) == 'Horizontal Positional Accuracy Report' + end + assert_equal 'GPS Unit Value: 1 Explanation: Instrument parameters', horizpa.dig(:descriptiveResult, 0, :statement) + # The following assertions have been disabled because the implementation for positional accuracy has changed and these are no longer valid. + # assert_equal 'Horizontal Positional Accuracy Explanation', horizpa.dig(:descriptiveResult, 1, :name) + # assert_equal 'Instrument parameters', horizpa.dig(:descriptiveResult, 1, :statement) assert hResponse[:readerExecutionPass] assert_includes hResponse[:readerExecutionMessages], 'WARNING: FGDC reader: lineage procedure date is missing' diff --git a/test/writers/fgdc/testData/spatialDomain.xml b/test/writers/fgdc/testData/spatialDomain.xml index eca626e14..a193b46e9 100755 --- a/test/writers/fgdc/testData/spatialDomain.xml +++ b/test/writers/fgdc/testData/spatialDomain.xml @@ -33,7 +33,7 @@ 24.0 250.0 - 250.0 + 1500.0 meters diff --git a/test/writers/iso19115-3/tc_19115_3_mdMetadata.rb b/test/writers/iso19115-3/tc_19115_3_mdMetadata.rb index 35eddfe0c..509dbd1aa 100755 --- a/test/writers/iso19115-3/tc_19115_3_mdMetadata.rb +++ b/test/writers/iso19115-3/tc_19115_3_mdMetadata.rb @@ -50,7 +50,7 @@ def test_mdMetadata_complete assert_equal 'xml', hResponseObj[:writerOutputFormat] assert hResponseObj[:writerShowTags] assert_nil hResponseObj[:writerCSSlink] - assert_equal '_001', hResponseObj[:writerMissingIdCount] + assert_equal '001', hResponseObj[:writerMissingIdCount] assert_equal translatorVersion, hResponseObj[:translatorVersion] xMetadata = Nokogiri::XML(hResponseObj[:writerOutput]) diff --git a/test/writers/iso19115-3/tc_19115_3_temporalExtent.rb b/test/writers/iso19115-3/tc_19115_3_temporalExtent.rb index 15f884e20..62675185c 100755 --- a/test/writers/iso19115-3/tc_19115_3_temporalExtent.rb +++ b/test/writers/iso19115-3/tc_19115_3_temporalExtent.rb @@ -16,7 +16,7 @@ class TestWriter191151TemporalExtent < TestWriter191151Parent # build mdJson test file in hash mdHash = TDClass.base - hTimeP = TDClass.build_timePeriod('TPID001',nil,'2017-05-02','2018-05-02T08:46') + hTimeP = TDClass.build_timePeriod('TPID001',nil,'2017-05-02T00:00','2018-05-02T08:46') hTimeI = TDClass.build_timeInstant('TIID001',nil,'2018-05-02T08:48:00-00:09') mdHash[:metadata][:resourceInfo][:extent][0][:temporalExtent] = [] mdHash[:metadata][:resourceInfo][:extent][0][:temporalExtent] << { timePeriod: hTimeP } diff --git a/test/writers/iso19115-3/tc_19115_3_timePeriod.rb b/test/writers/iso19115-3/tc_19115_3_timePeriod.rb index f723355b8..e401947d1 100755 --- a/test/writers/iso19115-3/tc_19115_3_timePeriod.rb +++ b/test/writers/iso19115-3/tc_19115_3_timePeriod.rb @@ -16,7 +16,7 @@ class TestWriter191151TimePeriod < TestWriter191151Parent # build mdJson test file in hash mdHash = TDClass.base - hTimeP = TDClass.build_timePeriod('TPID001',nil,'2017-05-02','2018-05-02T08:46') + hTimeP = TDClass.build_timePeriod('TPID001',nil,'2017-05-02T00:00','2018-05-02T08:46') mdHash[:metadata][:resourceInfo][:extent][0][:temporalExtent] = [] mdHash[:metadata][:resourceInfo][:extent][0][:temporalExtent] << { timePeriod: hTimeP } mdHash[:metadata][:resourceInfo][:extent][0].delete(:geographicExtent) diff --git a/test/writers/iso19115-3/testData/19115_3_associatedResource.xml b/test/writers/iso19115-3/testData/19115_3_associatedResource.xml index 39cc14eca..ac7d3e88d 100644 --- a/test/writers/iso19115-3/testData/19115_3_associatedResource.xml +++ b/test/writers/iso19115-3/testData/19115_3_associatedResource.xml @@ -44,7 +44,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -129,7 +129,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -214,7 +214,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 diff --git a/test/writers/iso19115-3/testData/19115_3_attribute.xml b/test/writers/iso19115-3/testData/19115_3_attribute.xml index 36edf72f9..4a0e04792 100644 --- a/test/writers/iso19115-3/testData/19115_3_attribute.xml +++ b/test/writers/iso19115-3/testData/19115_3_attribute.xml @@ -125,26 +125,13 @@ 0 - + min/max units 99.9 - - - range element name 1 - - - range element definition - - - - range element record 1 - - - 1.0 @@ -160,6 +147,21 @@ 9 + + + + range element name 1 + + + range element definition + + + + range element record 1 + + + + @@ -211,26 +213,13 @@ 0 - + min/max units 99.9 - - - range element name 1 - - - range element definition - - - - range element record 1 - - - 1.0 @@ -246,6 +235,21 @@ 9 + + + + range element name 1 + + + range element definition + + + + range element record 1 + + + + 999 @@ -253,7 +257,7 @@ 100 - + bound min/max units @@ -314,26 +318,13 @@ 0 - + min/max units 99.9 - - - range element name 1 - - - range element definition - - - - range element record 1 - - - 1.0 @@ -349,6 +340,21 @@ 9 + + + + range element name 1 + + + range element definition + + + + range element record 1 + + + + 999 @@ -356,7 +362,7 @@ 100 - + bound min/max units @@ -384,4 +390,4 @@ - + \ No newline at end of file diff --git a/test/writers/iso19115-3/testData/19115_3_attributeGroup.xml b/test/writers/iso19115-3/testData/19115_3_attributeGroup.xml index ce70ed324..4eba99b16 100644 --- a/test/writers/iso19115-3/testData/19115_3_attributeGroup.xml +++ b/test/writers/iso19115-3/testData/19115_3_attributeGroup.xml @@ -183,26 +183,13 @@ 0 - + min/max units 99.9 - - - range element name 1 - - - range element definition - - - - range element record 1 - - - 1.0 @@ -218,6 +205,21 @@ 9 + + + + range element name 1 + + + range element definition + + + + range element record 1 + + + + @@ -235,4 +237,4 @@ - + \ No newline at end of file diff --git a/test/writers/iso19115-3/testData/19115_3_citation.xml b/test/writers/iso19115-3/testData/19115_3_citation.xml index 632ab8050..81d480e2f 100644 --- a/test/writers/iso19115-3/testData/19115_3_citation.xml +++ b/test/writers/iso19115-3/testData/19115_3_citation.xml @@ -137,33 +137,20 @@ - - - - 0000-00002 - - - ORCID - - - - + + + + 0000-00002 + + + ROR + + + + - - - - - 0000-00002 - - - ORCID - - - - - @@ -240,7 +227,7 @@ - 2018-04-18T00:00:00 + 2018-04-18 @@ -365,7 +352,7 @@ 0000-00002 - ORCID + ROR @@ -373,19 +360,6 @@ - - - - - 0000-00002 - - - ORCID - - - - - @@ -511,7 +485,7 @@ 0000-00002 - ORCID + ROR @@ -519,19 +493,6 @@ - - - - - 0000-00002 - - - ORCID - - - - - @@ -561,17 +522,6 @@ - - - - - CID004 - - - - - - @@ -626,7 +576,7 @@ 0000-00002 - ORCID + ROR @@ -634,19 +584,6 @@ - - - - - 0000-00002 - - - ORCID - - - - - diff --git a/test/writers/iso19115-3/testData/19115_3_constraintCommon.xml b/test/writers/iso19115-3/testData/19115_3_constraintCommon.xml index 7f80b6f8f..6a5ac0169 100644 --- a/test/writers/iso19115-3/testData/19115_3_constraintCommon.xml +++ b/test/writers/iso19115-3/testData/19115_3_constraintCommon.xml @@ -145,17 +145,6 @@ - - - - - CID004 - - - - - - @@ -196,17 +185,6 @@ - - - - - CID004 - - - - - - diff --git a/test/writers/iso19115-3/testData/19115_3_contact.xml b/test/writers/iso19115-3/testData/19115_3_contact.xml index 167a01e26..60d4699de 100644 --- a/test/writers/iso19115-3/testData/19115_3_contact.xml +++ b/test/writers/iso19115-3/testData/19115_3_contact.xml @@ -73,17 +73,6 @@ - - - - - CID004 - - - - - - diff --git a/test/writers/iso19115-3/testData/19115_3_dataIdentification.xml b/test/writers/iso19115-3/testData/19115_3_dataIdentification.xml index ebc811308..d79b64dbf 100644 --- a/test/writers/iso19115-3/testData/19115_3_dataIdentification.xml +++ b/test/writers/iso19115-3/testData/19115_3_dataIdentification.xml @@ -44,7 +44,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -256,11 +256,11 @@ - + resource time period - 2017-12-01T00:00:00 + 2017-12-01 @@ -303,7 +303,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -375,7 +375,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -603,11 +603,11 @@ - + resource time period - 2017-12-01T00:00:00 + 2017-12-01 @@ -672,7 +672,7 @@ - 2018-02-01T00:00:00 + 2018-02-01 @@ -733,7 +733,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -765,8 +765,8 @@ time period identifier period name one period name two - 2018-05-02T00:00:00 - 2016-12-31T00:00:00 + 2018-05-02 + 2016-12-31 1.1 @@ -798,17 +798,6 @@ - - - - - CID004 - - - - - - @@ -889,7 +878,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -1008,7 +997,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -1280,11 +1269,11 @@ - + resource time period - 2017-12-01T00:00:00 + 2017-12-01 @@ -1399,7 +1388,7 @@ - 2018-02-01T00:00:00 + 2018-02-01 @@ -1451,7 +1440,7 @@ - 2018-02-01T00:00:00 + 2018-02-01 @@ -1512,7 +1501,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -1553,7 +1542,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -1594,7 +1583,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -1626,8 +1615,8 @@ time period identifier period name one period name two - 2018-05-02T00:00:00 - 2016-12-31T00:00:00 + 2018-05-02 + 2016-12-31 1.1 @@ -1659,17 +1648,6 @@ - - - - - CID004 - - - - - - @@ -1731,8 +1709,8 @@ time period identifier period name one period name two - 2018-05-02T00:00:00 - 2016-12-31T00:00:00 + 2018-05-02 + 2016-12-31 1.1 @@ -1764,17 +1742,6 @@ - - - - - CID004 - - - - - - @@ -1877,7 +1844,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -1961,7 +1928,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -2093,7 +2060,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -2303,11 +2270,11 @@ - + resource time period - 2017-12-01T00:00:00 + 2017-12-01 diff --git a/test/writers/iso19115-3/testData/19115_3_date.xml b/test/writers/iso19115-3/testData/19115_3_date.xml index 0d94773d4..dc811468a 100644 --- a/test/writers/iso19115-3/testData/19115_3_date.xml +++ b/test/writers/iso19115-3/testData/19115_3_date.xml @@ -36,7 +36,7 @@ - 2018-01-01T00:00:00 + 2018 @@ -47,7 +47,7 @@ - 2018-04-01T00:00:00 + 2018-04 @@ -58,7 +58,7 @@ - 2018-04-19T00:00:00 + 2018-04-19 diff --git a/test/writers/iso19115-3/testData/19115_3_distributor.xml b/test/writers/iso19115-3/testData/19115_3_distributor.xml index ff344e397..9267d0166 100644 --- a/test/writers/iso19115-3/testData/19115_3_distributor.xml +++ b/test/writers/iso19115-3/testData/19115_3_distributor.xml @@ -138,7 +138,7 @@ - 2018-02-01T00:00:00 + 2018-02-01 @@ -270,7 +270,7 @@ - 2018-02-01T00:00:00 + 2018-02-01 @@ -337,7 +337,7 @@ - 2018-02-01T00:00:00 + 2018-02-01 diff --git a/test/writers/iso19115-3/testData/19115_3_extent.xml b/test/writers/iso19115-3/testData/19115_3_extent.xml index 73074f164..fdea05454 100644 --- a/test/writers/iso19115-3/testData/19115_3_extent.xml +++ b/test/writers/iso19115-3/testData/19115_3_extent.xml @@ -189,7 +189,7 @@ period name one period name two 2018-04-20T16:46 - 2016-12-31T00:00:00 + 2016-12-31 1.1 diff --git a/test/writers/iso19115-3/testData/19115_3_feature.xml b/test/writers/iso19115-3/testData/19115_3_feature.xml index 8cb0e9eb1..b7a97a4c8 100644 --- a/test/writers/iso19115-3/testData/19115_3_feature.xml +++ b/test/writers/iso19115-3/testData/19115_3_feature.xml @@ -62,7 +62,7 @@ true - + @@ -104,7 +104,7 @@ true - + @@ -147,7 +147,7 @@ true - + @@ -215,18 +215,18 @@ true - + - + 100.0 10.0 - + @@ -270,19 +270,19 @@ true - + - + 100.0 10.0 101.0 11.0 - + @@ -327,12 +327,12 @@ true - + - + @@ -346,7 +346,7 @@ - + @@ -407,15 +407,15 @@ true - + - + 100.0 10.0 - + diff --git a/test/writers/iso19115-3/testData/19115_3_format.xml b/test/writers/iso19115-3/testData/19115_3_format.xml index b76ce7886..a4a9be4d9 100644 --- a/test/writers/iso19115-3/testData/19115_3_format.xml +++ b/test/writers/iso19115-3/testData/19115_3_format.xml @@ -44,7 +44,7 @@ - 2018-02-01T00:00:00 + 2018-02-01 @@ -97,7 +97,7 @@ - 2018-02-01T00:00:00 + 2018-02-01 diff --git a/test/writers/iso19115-3/testData/19115_3_geographicElement.xml b/test/writers/iso19115-3/testData/19115_3_geographicElement.xml index dbcd7b73f..c855c6cae 100644 --- a/test/writers/iso19115-3/testData/19115_3_geographicElement.xml +++ b/test/writers/iso19115-3/testData/19115_3_geographicElement.xml @@ -39,7 +39,7 @@ true - + @@ -55,7 +55,7 @@ true - + @@ -72,7 +72,7 @@ true - + @@ -114,18 +114,18 @@ true - + - + 100.0 10.0 - + @@ -143,19 +143,19 @@ true - + - + 100.0 10.0 101.0 11.0 - + @@ -174,12 +174,12 @@ true - + - + @@ -193,7 +193,7 @@ - + @@ -228,15 +228,15 @@ true - + - + 100.0 10.0 - + @@ -271,7 +271,7 @@ true - + diff --git a/test/writers/iso19115-3/testData/19115_3_geographicExtent.xml b/test/writers/iso19115-3/testData/19115_3_geographicExtent.xml index cd44cc487..d51965b77 100644 --- a/test/writers/iso19115-3/testData/19115_3_geographicExtent.xml +++ b/test/writers/iso19115-3/testData/19115_3_geographicExtent.xml @@ -78,7 +78,7 @@ true - + @@ -167,7 +167,7 @@ false - + diff --git a/test/writers/iso19115-3/testData/19115_3_geometryCollection.xml b/test/writers/iso19115-3/testData/19115_3_geometryCollection.xml index c4b8f39de..8e1fa482a 100644 --- a/test/writers/iso19115-3/testData/19115_3_geometryCollection.xml +++ b/test/writers/iso19115-3/testData/19115_3_geometryCollection.xml @@ -62,15 +62,15 @@ true - + - + 100.0 10.0 - + @@ -96,7 +96,7 @@ true - + diff --git a/test/writers/iso19115-3/testData/19115_3_georectified.xml b/test/writers/iso19115-3/testData/19115_3_georectified.xml index 8489ad6c0..e3e160d1d 100644 --- a/test/writers/iso19115-3/testData/19115_3_georectified.xml +++ b/test/writers/iso19115-3/testData/19115_3_georectified.xml @@ -77,7 +77,7 @@ check point description - + @@ -85,7 +85,7 @@ - + @@ -93,7 +93,7 @@ - + @@ -154,7 +154,7 @@ - + @@ -162,7 +162,7 @@ - + @@ -170,7 +170,7 @@ - + @@ -227,7 +227,7 @@ - + @@ -235,7 +235,7 @@ - + @@ -293,7 +293,7 @@ - + @@ -301,7 +301,7 @@ - + @@ -309,7 +309,7 @@ - + @@ -317,7 +317,7 @@ - + diff --git a/test/writers/iso19115-3/testData/19115_3_identifier.xml b/test/writers/iso19115-3/testData/19115_3_identifier.xml index 8d462d431..65902a0ea 100644 --- a/test/writers/iso19115-3/testData/19115_3_identifier.xml +++ b/test/writers/iso19115-3/testData/19115_3_identifier.xml @@ -44,7 +44,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 diff --git a/test/writers/iso19115-3/testData/19115_3_keyword.xml b/test/writers/iso19115-3/testData/19115_3_keyword.xml index 67c626a18..a10bd7e62 100644 --- a/test/writers/iso19115-3/testData/19115_3_keyword.xml +++ b/test/writers/iso19115-3/testData/19115_3_keyword.xml @@ -53,7 +53,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -95,7 +95,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 diff --git a/test/writers/iso19115-3/testData/19115_3_leProcessStep.xml b/test/writers/iso19115-3/testData/19115_3_leProcessStep.xml index cd164b3ec..2121b3830 100644 --- a/test/writers/iso19115-3/testData/19115_3_leProcessStep.xml +++ b/test/writers/iso19115-3/testData/19115_3_leProcessStep.xml @@ -47,8 +47,8 @@ time period identifier period name one period name two - 2018-06-22T00:00:00 - 2016-12-31T00:00:00 + 2018-06-22 + 2016-12-31 1.1 @@ -202,7 +202,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -270,7 +270,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -386,7 +386,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -454,7 +454,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -537,7 +537,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -680,7 +680,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -748,7 +748,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -864,7 +864,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -932,7 +932,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -1018,8 +1018,8 @@ time period identifier period name one period name two - 2018-06-22T00:00:00 - 2016-12-31T00:00:00 + 2018-06-22 + 2016-12-31 1.1 @@ -1126,7 +1126,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -1194,7 +1194,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -1277,7 +1277,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -1407,7 +1407,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -1475,7 +1475,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 diff --git a/test/writers/iso19115-3/testData/19115_3_leSource.xml b/test/writers/iso19115-3/testData/19115_3_leSource.xml index 0882f9d7f..6ff9e63c3 100644 --- a/test/writers/iso19115-3/testData/19115_3_leSource.xml +++ b/test/writers/iso19115-3/testData/19115_3_leSource.xml @@ -207,7 +207,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -297,7 +297,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 diff --git a/test/writers/iso19115-3/testData/19115_3_liProcessStep.xml b/test/writers/iso19115-3/testData/19115_3_liProcessStep.xml index c155f0468..d1cb4cf56 100644 --- a/test/writers/iso19115-3/testData/19115_3_liProcessStep.xml +++ b/test/writers/iso19115-3/testData/19115_3_liProcessStep.xml @@ -47,8 +47,8 @@ time period identifier period name one period name two - 2018-06-22T00:00:00 - 2016-12-31T00:00:00 + 2018-06-22 + 2016-12-31 1.1 @@ -155,7 +155,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -231,8 +231,8 @@ time period identifier period name one period name two - 2018-06-22T00:00:00 - 2016-12-31T00:00:00 + 2018-06-22 + 2016-12-31 1.1 @@ -386,7 +386,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -492,7 +492,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -583,8 +583,8 @@ time period identifier period name one period name two - 2018-06-22T00:00:00 - 2016-12-31T00:00:00 + 2018-06-22 + 2016-12-31 1.1 @@ -738,7 +738,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -844,7 +844,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 diff --git a/test/writers/iso19115-3/testData/19115_3_lineage.xml b/test/writers/iso19115-3/testData/19115_3_lineage.xml index 1e9d6419f..4a279d22e 100644 --- a/test/writers/iso19115-3/testData/19115_3_lineage.xml +++ b/test/writers/iso19115-3/testData/19115_3_lineage.xml @@ -56,7 +56,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -149,7 +149,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -249,7 +249,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -342,7 +342,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -448,7 +448,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -516,7 +516,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 diff --git a/test/writers/iso19115-3/testData/19115_3_maintenance.xml b/test/writers/iso19115-3/testData/19115_3_maintenance.xml index 2a331cf77..657923203 100644 --- a/test/writers/iso19115-3/testData/19115_3_maintenance.xml +++ b/test/writers/iso19115-3/testData/19115_3_maintenance.xml @@ -41,7 +41,7 @@ - 2018-05-25T00:00:00 + 2018-05-25 @@ -99,7 +99,7 @@ - 2018-05-25T00:00:00 + 2018-05-25 @@ -109,7 +109,7 @@ - 2019-04-01T00:00:00 + 2019-04 @@ -193,17 +193,6 @@ - - - - - CID004 - - - - - - diff --git a/test/writers/iso19115-3/testData/19115_3_mdBand.xml b/test/writers/iso19115-3/testData/19115_3_mdBand.xml index 4288d4afd..25c03b71e 100644 --- a/test/writers/iso19115-3/testData/19115_3_mdBand.xml +++ b/test/writers/iso19115-3/testData/19115_3_mdBand.xml @@ -81,26 +81,13 @@ 0 - + min/max units 99.9 - - - range element name 1 - - - range element definition - - - - range element record 1 - - - 1.0 @@ -116,6 +103,21 @@ 9 + + + + range element name 1 + + + range element definition + + + + range element record 1 + + + + 999 @@ -123,7 +125,7 @@ 100 - + bound min/max units @@ -184,26 +186,13 @@ 0 - + min/max units 99.9 - - - range element name 1 - - - range element definition - - - - range element record 1 - - - 1.0 @@ -219,6 +208,21 @@ 9 + + + + range element name 1 + + + range element definition + + + + range element record 1 + + + + @@ -277,26 +281,13 @@ 0 - + min/max units 99.9 - - - range element name 1 - - - range element definition - - - - range element record 1 - - - 1.0 @@ -312,6 +303,21 @@ 9 + + + + range element name 1 + + + range element definition + + + + range element record 1 + + + + diff --git a/test/writers/iso19115-3/testData/19115_3_mdMetadata.xml b/test/writers/iso19115-3/testData/19115_3_mdMetadata.xml index 8ec039a28..a2efa99d5 100644 --- a/test/writers/iso19115-3/testData/19115_3_mdMetadata.xml +++ b/test/writers/iso19115-3/testData/19115_3_mdMetadata.xml @@ -1,4 +1,4 @@ - + @@ -105,7 +105,7 @@ - 2018-01-26T00:00:00 + 2018-01-26 @@ -166,7 +166,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -378,11 +378,11 @@ - + resource time period - 2017-12-01T00:00:00 + 2017-12-01 @@ -425,7 +425,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 diff --git a/test/writers/iso19115-3/testData/19115_3_miBand.xml b/test/writers/iso19115-3/testData/19115_3_miBand.xml index 5584cf052..db4a419f7 100644 --- a/test/writers/iso19115-3/testData/19115_3_miBand.xml +++ b/test/writers/iso19115-3/testData/19115_3_miBand.xml @@ -81,26 +81,13 @@ 0 - + min/max units 99.9 - - - range element name 1 - - - range element definition - - - - range element record 1 - - - 1.0 @@ -116,6 +103,21 @@ 9 + + + + range element name 1 + + + range element definition + + + + range element record 1 + + + + 999 @@ -123,7 +125,7 @@ 100 - + bound min/max units @@ -199,26 +201,13 @@ 0 - + min/max units 99.9 - - - range element name 1 - - - range element definition - - - - range element record 1 - - - 1.0 @@ -234,6 +223,21 @@ 9 + + + + range element name 1 + + + range element definition + + + + range element record 1 + + + + 999 @@ -241,7 +245,7 @@ 100 - + bound min/max units diff --git a/test/writers/iso19115-3/testData/19115_3_organization.xml b/test/writers/iso19115-3/testData/19115_3_organization.xml index 2f1a3baaa..632ac6135 100644 --- a/test/writers/iso19115-3/testData/19115_3_organization.xml +++ b/test/writers/iso19115-3/testData/19115_3_organization.xml @@ -196,17 +196,6 @@ - - - - - CID006 - - - - - - @@ -447,17 +436,6 @@ - - - - - CID006 - - - - - - @@ -480,17 +458,6 @@ - - - - - CID004 - - - - - - diff --git a/test/writers/iso19115-3/testData/19115_3_processing.xml b/test/writers/iso19115-3/testData/19115_3_processing.xml index 598c2c969..3515b24e8 100644 --- a/test/writers/iso19115-3/testData/19115_3_processing.xml +++ b/test/writers/iso19115-3/testData/19115_3_processing.xml @@ -98,7 +98,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -263,7 +263,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 @@ -384,7 +384,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 diff --git a/test/writers/iso19115-3/testData/19115_3_referenceSystem.xml b/test/writers/iso19115-3/testData/19115_3_referenceSystem.xml index 8ae151d47..9f65321ab 100644 --- a/test/writers/iso19115-3/testData/19115_3_referenceSystem.xml +++ b/test/writers/iso19115-3/testData/19115_3_referenceSystem.xml @@ -46,7 +46,7 @@ - 2017-11-22T00:00:00 + 2017-11-22 diff --git a/test/writers/iso19115-3/testData/19115_3_releasability.xml b/test/writers/iso19115-3/testData/19115_3_releasability.xml index 5709be500..ccc44a8ff 100644 --- a/test/writers/iso19115-3/testData/19115_3_releasability.xml +++ b/test/writers/iso19115-3/testData/19115_3_releasability.xml @@ -60,17 +60,6 @@ - - - - - CID004 - - - - - - @@ -114,17 +103,6 @@ - - - - - CID004 - - - - - - diff --git a/test/writers/iso19115-3/testData/19115_3_responsibility.xml b/test/writers/iso19115-3/testData/19115_3_responsibility.xml index e7056a2e2..e204abe0e 100644 --- a/test/writers/iso19115-3/testData/19115_3_responsibility.xml +++ b/test/writers/iso19115-3/testData/19115_3_responsibility.xml @@ -326,7 +326,7 @@ 0000-00002 - ORCID + ROR @@ -334,19 +334,6 @@ - - - - - 0000-00002 - - - ORCID - - - - - diff --git a/test/writers/iso19115-3/testData/19115_3_sampleDimension.xml b/test/writers/iso19115-3/testData/19115_3_sampleDimension.xml index 8f8a9d64f..b4ebda043 100644 --- a/test/writers/iso19115-3/testData/19115_3_sampleDimension.xml +++ b/test/writers/iso19115-3/testData/19115_3_sampleDimension.xml @@ -81,26 +81,13 @@ 0 - + min/max units 99.9 - - - range element name 1 - - - range element definition - - - - range element record 1 - - - 1.0 @@ -116,6 +103,21 @@ 9 + + + + range element name 1 + + + range element definition + + + + range element record 1 + + + + @@ -164,19 +166,6 @@ - - - range element name 1 - - - range element definition - - - - range element record 1 - - - @@ -184,6 +173,21 @@ 9 + + + + range element name 1 + + + range element definition + + + + range element record 1 + + + + diff --git a/test/writers/iso19115-3/testData/19115_3_spatialRepresentation.xml b/test/writers/iso19115-3/testData/19115_3_spatialRepresentation.xml index 6830cf9e3..eb66a1af2 100644 --- a/test/writers/iso19115-3/testData/19115_3_spatialRepresentation.xml +++ b/test/writers/iso19115-3/testData/19115_3_spatialRepresentation.xml @@ -145,7 +145,7 @@ check point description - + @@ -153,7 +153,7 @@ - + @@ -161,7 +161,7 @@ - + diff --git a/test/writers/iso19115-3/testData/19115_3_spatialRepresentation_scope.xml b/test/writers/iso19115-3/testData/19115_3_spatialRepresentation_scope.xml index e0e9c1067..f73294d03 100644 --- a/test/writers/iso19115-3/testData/19115_3_spatialRepresentation_scope.xml +++ b/test/writers/iso19115-3/testData/19115_3_spatialRepresentation_scope.xml @@ -190,7 +190,7 @@ check point description - + @@ -198,7 +198,7 @@ - + @@ -206,7 +206,7 @@ - + diff --git a/test/writers/iso19115-3/testData/19115_3_temporalExtent.xml b/test/writers/iso19115-3/testData/19115_3_temporalExtent.xml index 60a34741a..f06a45bdc 100644 --- a/test/writers/iso19115-3/testData/19115_3_temporalExtent.xml +++ b/test/writers/iso19115-3/testData/19115_3_temporalExtent.xml @@ -41,7 +41,7 @@ time period identifier period name one period name two - 2017-05-02T00:00:00 + 2017-05-02T00:00 2018-05-02T08:46 1.1 diff --git a/test/writers/iso19115-3/testData/19115_3_timeInstant.xml b/test/writers/iso19115-3/testData/19115_3_timeInstant.xml index ce1cb6a54..315736a48 100644 --- a/test/writers/iso19115-3/testData/19115_3_timeInstant.xml +++ b/test/writers/iso19115-3/testData/19115_3_timeInstant.xml @@ -50,7 +50,7 @@ - + diff --git a/test/writers/iso19115-3/testData/19115_3_timePeriod.xml b/test/writers/iso19115-3/testData/19115_3_timePeriod.xml index 615b3c645..fd7d934a3 100644 --- a/test/writers/iso19115-3/testData/19115_3_timePeriod.xml +++ b/test/writers/iso19115-3/testData/19115_3_timePeriod.xml @@ -41,7 +41,7 @@ time period identifier period name one period name two - 2017-05-02T00:00:00 + 2017-05-02T00:00 2018-05-02T08:46 1.1 @@ -52,11 +52,11 @@ - + - 2017-05-02T00:00:00 + 2017-05-02T00:00 P1Y2M3DT4H5M6S @@ -67,7 +67,7 @@ - + diff --git a/test/writers/iso19115-3/testData/19115_3_transferOptions.xml b/test/writers/iso19115-3/testData/19115_3_transferOptions.xml index f960dc3b9..c5610afbf 100644 --- a/test/writers/iso19115-3/testData/19115_3_transferOptions.xml +++ b/test/writers/iso19115-3/testData/19115_3_transferOptions.xml @@ -81,7 +81,7 @@ - 2018-02-01T00:00:00 + 2018-02-01 @@ -199,7 +199,7 @@ - 2018-02-01T00:00:00 + 2018-02-01 @@ -251,7 +251,7 @@ - 2018-02-01T00:00:00 + 2018-02-01 diff --git a/test/writers/iso19115-3/testData/19115_3_usage.xml b/test/writers/iso19115-3/testData/19115_3_usage.xml index fb7150b71..cbfd35184 100644 --- a/test/writers/iso19115-3/testData/19115_3_usage.xml +++ b/test/writers/iso19115-3/testData/19115_3_usage.xml @@ -33,7 +33,7 @@ xsi:schemaLocation="http://standards.iso.org/iso/19115/-3/mdt/2.0 http://standards.iso.org/iso/19115/-3/mdt/2.0/mdt.xsd"> - + usage one @@ -44,8 +44,8 @@ time period identifier period name one period name two - 2018-05-02T00:00:00 - 2016-12-31T00:00:00 + 2018-05-02 + 2016-12-31 1.1 @@ -77,17 +77,6 @@ - - - - - CID004 - - - - - - @@ -150,8 +139,8 @@ time period identifier period name one period name two - 2018-06-24T00:00:00 - 2016-12-31T00:00:00 + 2018-06-24 + 2016-12-31 1.1 @@ -161,8 +150,8 @@ time period identifier period name one period name two - 2019-05-15T00:00:00 - 2016-12-31T00:00:00 + 2019-05-15 + 2016-12-31 1.1 diff --git a/test/writers/mdJson/tc_mdjson_metadata.rb b/test/writers/mdJson/tc_mdjson_metadata.rb index 8b66b2adb..4c0d4fd7d 100644 --- a/test/writers/mdJson/tc_mdjson_metadata.rb +++ b/test/writers/mdJson/tc_mdjson_metadata.rb @@ -17,6 +17,11 @@ class TestWriterMdJsonMetadata < TestWriterMdJsonParent # build mdJson test file in hash mdHash = TDClass.base + # data quality [] + mdHash[:metadata][:dataQuality] = [] + mdHash[:metadata][:dataQuality] << TDClass.build_dataQuality + mdHash[:metadata][:dataQuality] << TDClass.build_dataQuality + # lineage [] mdHash[:metadata][:resourceLineage] = [] mdHash[:metadata][:resourceLineage] << TDClass.build_lineage @@ -42,12 +47,6 @@ class TestWriterMdJsonMetadata < TestWriterMdJsonParent mdHash[:metadata][:funding] << TDClass.build_funding mdHash[:metadata][:funding] << TDClass.build_funding - # data quality [] - mdHash[:metadata][:dataQuality] = [] - mdHash[:metadata][:dataQuality] << TDClass.build_dataQuality - mdHash[:metadata][:dataQuality] << TDClass.build_dataQuality - - TDClass.removeEmptyObjects(mdHash) @@mdHash = mdHash diff --git a/test/writers/sbJson/tc_sbjson_citation.rb b/test/writers/sbJson/tc_sbjson_citation.rb index 30d09d3a5..1e8e352e2 100644 --- a/test/writers/sbJson/tc_sbjson_citation.rb +++ b/test/writers/sbJson/tc_sbjson_citation.rb @@ -19,7 +19,7 @@ def test_citation file: @@jsonIn, reader: 'mdJson', validate: 'normal', writer: 'sbJson', showAllTags: false) - expect = 'Person 001(Principal Investigator), Person 002(Principal Investigator), Organization 001(funder), Person 003(funder), Person 004(funder), Person 001(funder), 2017-05(creation), 2017-05-16(Publication), 2017-05-16(revision), myCitationTitle, http://ISO.uri/adiwg/0, http://ISO.uri/adiwg/1' + expect = 'Person 001, myCitationTitle' hJsonOut = JSON.parse(metadata[:writerOutput]) got = hJsonOut['citation'] @@ -28,5 +28,3 @@ def test_citation end end - - diff --git a/test/writers/sbJson/testData/citation.json b/test/writers/sbJson/testData/citation.json index bc2d3640f..c9368cc88 100644 --- a/test/writers/sbJson/testData/citation.json +++ b/test/writers/sbJson/testData/citation.json @@ -1,141 +1,143 @@ { - "schema": { - "name": "mdJson", - "version": "2.0.0" - }, - "contact": [ - { - "contactId": "CID001", - "isOrganization": false, - "name": "Person 001" - }, - { - "contactId": "CID002", - "isOrganization": false, - "name": "Person 002" - }, - { - "contactId": "CID003", - "isOrganization": false, - "name": "Person 003" - }, - { - "contactId": "CID004", - "isOrganization": false, - "name": "Person 004" - }, - { - "contactId": "CID005", - "isOrganization": true, - "name": "Organization 001" - } - ], - "metadata": { - "metadataInfo": { - "metadataContact": [ - { - "role": "metadataContact", - "party": [ - { - "contactId": "CID001" - } - ] - } - ] - }, - "resourceInfo": { - "resourceType": [ + "schema": { + "name": "mdJson", + "version": "2.0.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Person 001" + }, + { + "contactId": "CID002", + "isOrganization": false, + "name": "Person 002" + }, + { + "contactId": "CID003", + "isOrganization": false, + "name": "Person 003" + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Person 004" + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "Organization 001" + } + ], + "metadata": { + "metadataInfo": { + "metadataContact": [ + { + "role": "metadataContact", + "party": [ { - "type": "type", - "name": "name" + "contactId": "CID001" } - ], - "citation": { - "title": "myCitationTitle", - "responsibleParty": [ - { - "role": "principalInvestigator", - "party": [ - { - "contactId": "CID001" - }, - { - "contactId": "CID002" - } - ] - }, - { - "role": "funder", - "party": [ - { - "contactId": "CID005", - "organizationMembers": [ - "CID003", - "CID004", - "CID001" - ] - } - ] - }, - { - "role": "principalInvestigator", - "party": [ - { - "contactId": "CID001" - } - ] - } - ], - "date": [ - { - "date": "2020", - "dateType": "expiry" - }, - { - "date": "2017-05", - "dateType": "creation" - }, - { - "date": "2017-05-16", - "dateType": "publication" - }, - { - "date": "2017-05-16T16:10:00-09:00", - "dateType": "revision" - } - ], - "onlineResource": [ - { - "uri": "http://ISO.uri/adiwg/0", - "protocol": "protocol", - "name": "name", - "description": "description", - "function": "function" - }, - { - "uri": "http://ISO.uri/adiwg/1" - } + ] + } + ] + }, + "resourceInfo": { + "resourceType": [ + { + "type": "type", + "name": "name" + } + ], + "citation": { + "title": "myCitationTitle", + "responsibleParty": [ + { + "role": "principalInvestigator", + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID002" + } + ] + }, + { + "role": "funder", + "party": [ + { + "contactId": "CID005", + "organizationMembers": ["CID003", "CID004", "CID001"] + } ] - }, - "abstract": "myBody", - "status": [ - "status" - ], - "pointOfContact": [ + }, + { + "role": "principalInvestigator", + "party": [ + { + "contactId": "CID001" + } + ] + }, + { + "role": "author", + "party": [ + { + "contactId": "CID001" + } + ] + } + ], + "date": [ + { + "date": "2020", + "dateType": "expiry" + }, + { + "date": "2017-05", + "dateType": "creation" + }, + { + "date": "2017-05-16", + "dateType": "publication" + }, + { + "date": "2017-05-16T16:10:00-09:00", + "dateType": "revision" + } + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ] + }, + "abstract": "myBody", + "status": ["status"], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [ { - "role": "pointOfContact", - "party": [ - { - "contactId": "CID001" - } - ] + "contactId": "CID001" } - ], - "defaultResourceLocale": { - "language": "eng", - "country": "USA", - "characterSet": "UTF-8" - } + ] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" } - } + } + } } diff --git a/test/writers/simple_html/tc_simple_html_document.rb b/test/writers/simple_html/tc_simple_html_document.rb new file mode 100644 index 000000000..ad66c0747 --- /dev/null +++ b/test/writers/simple_html/tc_simple_html_document.rb @@ -0,0 +1,24 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' + +class TestSimpleHtmlDocument < Minitest::Test + + # get input JSON for test + fname = File.join(File.dirname(__FILE__), 'testData', 'metadataGeo.json') + file = File.open(fname, 'r') + @@mdJson = file.read + file.close + + def test_complete_document + + metadata = ADIWG::Mdtranslator.translate( + file: @@mdJson, reader: 'mdJson', validate: 'none', writer: 'simple_html', showAllTags: false) + + got = metadata[:writerOutput] + + refute_empty got + + end + +end diff --git a/test/writers/simple_html/testData/metadataGeo.json b/test/writers/simple_html/testData/metadataGeo.json new file mode 100644 index 000000000..7d94ceb90 --- /dev/null +++ b/test/writers/simple_html/testData/metadataGeo.json @@ -0,0 +1,3552 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.4.5" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": ["CID002", "CID003"], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [ + { + "type": "use", + "useLimitation": ["useLimitation0", "useLimitation1"] + }, + { + "type": "legal", + "legal": { + "useConstraint": ["useConstraint0", "useConstraint1"], + "accessConstraint": ["accessConstraint0", "accessConstraint1"], + "otherConstraint": ["otherConstraint0", "otherConstraint1"] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [ + { + "uri": "http://ISO.uri/adiwg/0" + } + ] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": ["voice", "sms", "message"] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": ["voice", "message"] + } + ], + "address": [ + { + "addressType": ["mailing", "physical"], + "description": "work location", + "deliveryPoint": ["address line 1", "address line 2"], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": ["mailing"], + "description": "telework location", + "deliveryPoint": ["address line 3"], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": ["e.mail@address.com1", "e.mail@address.com2"], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "name": "name", + "description": "description", + "function": "function", + "applicationProfile": "application profile", + "protocol": "protocol", + "protocolRequest": "protocol request" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": ["hoursOfService1", "hoursOfService2"], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": ["CID005"], + "logoGraphic": [ + { + "fileName": "fileName" + } + ], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": ["voice"] + } + ], + "address": [ + { + "addressType": ["addressType"] + } + ], + "electronicMailAddress": ["e.mail@address.com2"], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": ["hoursOfService"], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal" + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": ["CID003"] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": ["CID002"], + "contactType": "individual" + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": ["alternateTitle0", "alternateTitle1"] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": ["alternateTitle0", "alternateTitle1"], + "date": [ + { + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [ + { + "description": "Polygon in Northern Alaska", + "containsData": true, + "geographicElement": [ + { + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, 67.663378], + [-161.440345, 67.630173], + [-161.294611, 67.656257], + [-161.228063, 67.625736], + [-161.247712, 67.585909], + [-161.334662, 67.591324], + [-161.566245, 67.491263], + [-161.812338, 67.455299], + [-161.825019, 67.40123], + [-162.128301, 67.414364], + [-162.167825, 67.363047], + [-162.383403, 67.293329], + [-162.633432, 67.272237], + [-162.645587, 67.356665], + [-162.369023, 67.455264], + [-162.287324, 67.551235], + [-162.171139, 67.559356], + [-161.99344, 67.646806], + [-161.857964, 67.620329], + [-161.769431, 67.629407], + [-161.74223, 67.663378] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": ["Agashashok River", "Camp Mosquito"], + "identifier": [ + { + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": ["string 1", "string 2"] + } + } + ] + } + ] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [ + { + "contactId": "CID003", + "organizationMembers": ["CID004", "CID001"] + } + ] + } + ], + "presentationForm": ["presentationForm0", "presentationForm1"], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [ + { + "contactId": "CID002" + } + ] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataConstraint": [ + { + "type": "use", + "useLimitation": ["useLimitation0", "useLimitation1"] + }, + { + "type": "legal", + "legal": { + "useConstraint": ["useConstraint0", "useConstraint1"], + "accessConstraint": ["accessConstraint0", "accessConstraint1"], + "otherConstraint": ["otherConstraint0", "otherConstraint1"] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [ + { + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [ + { + "scopeCode": "dataset", + "scopeExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [ + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [ + { + "type": "Point", + "coordinates": [100.0, 0.0] + }, + { + "type": "LineString", + "coordinates": [ + [100.0, 0.0], + [101.0, 1.0] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, 67.663378], + [-161.440345, 67.630173], + [-161.294611, 67.656257], + [-161.228063, 67.625736], + [-161.247712, 67.585909], + [-161.334662, 67.591324], + [-161.566245, 67.491263], + [-161.812338, 67.455299], + [-161.825019, 67.40123], + [-162.128301, 67.414364], + [-162.167825, 67.363047], + [-162.383403, 67.293329], + [-162.633432, 67.272237], + [-162.645587, 67.356665], + [-162.369023, 67.455264], + [-162.287324, 67.551235], + [-162.171139, 67.559356], + [-161.99344, 67.646806], + [-161.857964, 67.620329], + [-161.769431, 67.629407], + [-161.74223, 67.663378] + ] + ] + } + ] + } + ] + } + ], + "scopeDescription": [ + { + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": ["note00", "note01"], + "contact": [ + { + "role": "processor", + "party": [ + { + "contactId": "CID004" + } + ] + }, + { + "role": "contributor", + "party": [ + { + "contactId": "CID006" + } + ] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "International migration patterns of Red-throated Loons (Gavia stellata) from four breeding populations in Alaska", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "date type" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "dateTime type" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [ + { + "containsData": true, + "geographicElement": [ + { + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, 67.663378], + [-161.440345, 67.630173], + [-161.294611, 67.656257], + [-161.228063, 67.625736], + [-161.247712, 67.585909], + [-161.334662, 67.591324], + [-161.566245, 67.491263], + [-161.812338, 67.455299], + [-161.825019, 67.40123], + [-162.128301, 67.414364], + [-162.167825, 67.363047], + [-162.383403, 67.293329], + [-162.633432, 67.272237], + [-162.645587, 67.356665], + [-162.369023, 67.455264], + [-162.287324, 67.551235], + [-162.171139, 67.559356], + [-161.99344, 67.646806], + [-161.857964, 67.620329], + [-161.769431, 67.629407], + [-161.74223, 67.663378] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": ["Agashashok River", "Camp Mosquito"], + "identifier": [ + { + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": ["string 1", "string 2"] + } + } + ] + } + ] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [ + { + "contactId": "CID003", + "organizationMembers": ["CID004", "CID001"] + } + ] + } + ], + "presentationForm": ["presentationForm0", "presentationForm1"], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": ["instantName 00", "instantName 01"] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": ["periodName 00", "periodName 01"], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": ["alternateTitle0", "alternateTitle1"], + "date": [ + { + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [ + { + "contactId": "CID003", + "organizationMembers": ["CID004", "CID001"] + } + ] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": ["instantName 20", "instantName 21"] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [ + { + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [ + { + "contactId": "CID006" + } + ] + }, + { + "role": "coPrincipalInvestigator", + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": ["incomplete", "suspended"], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [ + { + "contactId": "CID004" + } + ] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "otherResourceLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "credit": [ + "Lim, Sonny B. - Guitar", + "Peterson, Jeff - Slack Key Guitar", + "Kamakawiwo'ole, Israel - Vocal" + ], + "timePeriod": { + "startDateTime": "2016-11-01" + }, + "temporalResolution": [ + { + "years": 1, + "months": 8, + "days": 13 + }, + { + "seconds": 5 + } + ], + "spatialReferenceSystem": [ + { + "referenceSystemType": "referenceSystemType0", + "referenceSystemIdentifier": { + "identifier": "spatial reference system identifier", + "namespace": "namespace", + "version": "version", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + "referenceSystemWKT": "POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10),(20 30, 35 35, 30 20, 20 30))", + "referenceSystemParameterSet": { + "projection": { + "projectionIdentifier": { + "identifier": "transverseMercator", + "name": "Transverse Mercator", + "description": "Ut local planar enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. " + }, + "gridIdentifier": { + "identifier": "spcs", + "name": "Alaska State Plane Coordinate System", + "description": "Ut local planar enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. " + }, + "gridZone": "9", + "standardParallel1": 9.0, + "standardParallel2": 99.0, + "longitudeOfCentralMeridian": -9.0, + "latitudeOfProjectionOrigin": 9.0, + "falseEasting": 99999.0, + "falseNorthing": 999999.0, + "falseEastingNorthingUnits": "feet", + "scaleFactorAtEquator": 99.9, + "heightOfProspectivePointAboveSurface": 999.0, + "longitudeOfProjectionCenter": -99.0, + "latitudeOfProjectionCenter": 9.0, + "scaleFactorAtCenterLine": 99.9, + "scaleFactorAtCentralMeridian": 9.9, + "straightVerticalLongitudeFromPole": 999.9, + "scaleFactorAtProjectionOrigin": 99.9, + "azimuthAngle": 9.9, + "azimuthMeasurePointLongitude": -99.0, + "obliqueLinePoint": [ + { + "obliqueLineLatitude": 9.99999, + "obliqueLineLongitude": -9.99999 + }, + { + "obliqueLineLatitude": 19.99999, + "obliqueLineLongitude": -19.99999 + } + ], + "landsatNumber": 9, + "landsatPath": 9999, + "local": { + "fixedToEarth": true, + "description": "Ut local planar enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident", + "georeference": "Ut local planar georeference enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident" + } + }, + "geodetic": { + "datumIdentifier": { + "identifier": "datum identifier" + }, + "datumName": "geodetic datum name", + "ellipsoidIdentifier": { + "identifier": "ellipsoid identifier" + }, + "ellipsoidName": "WGS84", + "semiMajorAxis": 9999999.0, + "axisUnits": "feet", + "denominatorOfFlatteningRatio": 999.9 + }, + "verticalDatum": { + "datumIdentifier": { + "identifier": "altitude datum identifier" + }, + "datumName": "vertical datum name", + "encodingMethod": "attribute values", + "isDepthSystem": false, + "verticalResolution": 9.9, + "unitOfMeasure": "meters" + } + } + }, + { + "referenceSystemType": "geodeticGeocentric" + }, + { + "referenceSystemIdentifier": { + "identifier": "NGS84", + "namespace": "epsg", + "description": "WGS84 (World Geodetic System of 1984) uses WGS84 ellipsoid where as NAD83 (North American 1983 Datum) uses the Geodetic Reference System (GRS80) ellipsoid. 2. WGS84 has 0.21mm longer ellipsoid than NAD83.." + } + }, + { + "referenceSystemWKT": "POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10),(20 30, 35 35, 30 20, 20 30))" + }, + { + "referenceSystemParameterSet": { + "projection": { + "projectionIdentifier": { + "identifier": "transverseMercator", + "name": "Transverse Mercator" + }, + "scaleFactorAtCentralMeridian": 9.9, + "longitudeOfCentralMeridian": -9.0, + "latitudeOfProjectionOrigin": 9.0, + "falseEasting": 99999.0, + "falseNorthing": 999999.0 + } + } + }, + { + "referenceSystemParameterSet": { + "projection": { + "projectionIdentifier": { + "identifier": "obliqueMercator", + "name": "Oblique Mercator" + }, + "gridIdentifier": { + "identifier": "spcs", + "name": "Alaska State Plane Coordinate System" + }, + "gridZone": "1", + "scaleFactorAtCentralLine": 9.9, + "obliqueLinePoint": [ + { + "obliqueLineLatitude": 9.99999, + "obliqueLineLongitude": -9.99999 + }, + { + "obliqueLineLatitude": 19.99999, + "obliqueLineLongitude": -19.99999 + } + ], + "latitudeOfProjectionOrigin": 9.0, + "falseEasting": 99999.0, + "falseNorthing": 999999.0 + } + } + }, + { + "referenceSystemParameterSet": { + "projection": { + "projectionIdentifier": { + "identifier": "other", + "name": "custom coordinate projection system", + "description": "My projection is... Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + } + }, + { + "referenceSystemParameterSet": { + "projection": { + "projectionIdentifier": { + "identifier": "other", + "name": "custom coordinate projection system", + "description": "My projection is... Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + "gridIdentifier": { + "identifier": "other", + "name": "custom grid system", + "description": "My grid is... Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + } + } + ], + "spatialRepresentationType": ["vector", "stereoModel"], + "spatialRepresentation": [ + { + "gridRepresentation": { + "numberOfDimensions": 9, + "dimension": [ + { + "dimensionType": "column", + "dimensionSize": 9, + "resolution": { + "type": "distance", + "value": 9.9, + "unitOfMeasure": "feet" + }, + "dimensionTitle": "COLUMN TITLE", + "dimensionDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + }, + { + "dimensionType": "row", + "dimensionSize": 9 + } + ], + "cellGeometry": "voxel", + "transformParamsAvailability": true + } + }, + { + "vectorRepresentation": { + "topologyLevel": "fullTopology3D", + "vectorObject": [ + { + "objectType": "object Type 0", + "objectCount": 9 + }, + { + "objectType": "object Type 1", + "objectCount": 9 + } + ] + } + }, + { + "georectifiedRepresentation": { + "gridRepresentation": { + "numberOfDimensions": 9, + "dimension": [ + { + "dimensionType": "row", + "dimensionSize": 90 + }, + { + "dimensionType": "column", + "dimensionSize": 91 + } + ], + "cellGeometry": "cellGeometry", + "transformationParameterAvailable": true + }, + "checkPointAvailable": true, + "checkPointDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "cornerPoints": [ + [0.0, 0.0], + [0.0, 1.0], + [1.0, 1.0], + [1.0, 0.0] + ], + "centerPoint": [0.5, 0.5], + "pointInPixel": "upperRight", + "transformationDimensionDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "transformationDimensionMapping": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + }, + { + "georeferenceableRepresentation": { + "gridRepresentation": { + "numberOfDimensions": 9, + "dimension": [ + { + "dimensionType": "row", + "dimensionSize": 90 + }, + { + "dimensionType": "column", + "dimensionSize": 91 + } + ], + "cellGeometry": "cellGeometry", + "transformationParameterAvailable": true + }, + "controlPointAvailable": true, + "orientationParameterAvailable": true, + "orientationParameterDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "georeferencedParameter": "Georeferenced Parameter 00", + "parameterCitation": [ + { + "title": "title0" + }, + { + "title": "title1" + } + ] + } + } + ], + "spatialResolution": [ + { + "scaleFactor": 63360 + }, + { + "measure": { + "type": "distance", + "value": 99.9, + "unitOfMeasure": "unitOfMeasure" + } + }, + { + "coordinateResolution": { + "abscissaResolutionX": 9.9, + "ordinateResolutionY": 99.9, + "unitOfMeasure": "coord UOM" + } + }, + { + "bearingDistanceResolution": { + "distanceResolution": 9.9, + "distanceUnitOfMeasure": "distance UOM", + "bearingResolution": 19.9, + "bearingUnitOfMeasure": "bearing UOM", + "bearingReferenceDirection": "north", + "bearingReferenceMeridian": "assumed" + } + }, + { + "geographicResolution": { + "latitudeResolution": 19.9, + "longitudeResolution": 119.9, + "unitOfMeasure": "geographic UOM" + } + }, + { + "levelOfDetail": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "scaleFactor": 250000 + }, + { + "coordinateResolution": { + "abscissaResolutionX": 100.0, + "ordinateResolutionY": 500.0, + "unitOfMeasure": "coord UOM" + } + } + ], + "keyword": [ + { + "keyword": [ + { + "keyword": "Barrow" + }, + { + "keyword": "Prudhoe Bay" + }, + { + "keyword": "Kaparuk" + } + ], + "keywordType": "Place Names", + "thesaurus": { + "title": "USGS Geographic Names Information System" + } + }, + { + "keyword": [ + { + "keyword": "Brown Bear", + "keywordId": "TSN12365741" + }, + { + "keyword": "Polar Bear", + "keywordId": "TSN125415741" + }, + { + "keyword": "Black Bear", + "keywordId": "TSN123689426" + }, + { + "keyword": "Cinnamon Bear", + "keywordId": "TSN123842165" + }, + { + "keyword": "Teddy Bear" + } + ], + "keywordType": "Taxonomy" + }, + { + "keyword": [ + { + "keyword": "butter" + }, + { + "keyword": "sugar" + }, + { + "keyword": "eggs" + } + ] + }, + { + "keyword": [ + { + "keyword": "inlandWaters", + "keywordId": "012" + }, + { + "keyword": "location", + "keywordId": "013" + }, + { + "keyword": "climatologyMeteorologyAtmosphere", + "keywordId": "004" + } + ], + "keywordType": "isoTopicCategory" + } + ], + "taxonomy": [ + { + "taxonomicSystem": [ + { + "citation": { + "title": "ITIS - Integrated Taxonomic Information System", + "alternateTitle": ["Citation for ITIS"] + }, + "modifications": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "citation": { + "title": "Some OTHER Taxonomic System" + } + } + ], + "generalScope": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identificationReference": [ + { + "title": "Non-Authoritative reference one", + "date": [ + { + "date": "2015-02-14", + "dateType": "revision" + } + ], + "edition": "3rd Edition" + }, + { + "title": "Non-Authoritative reference two", + "date": [ + { + "date": "1927-10-23", + "dateType": "publication" + } + ] + } + ], + "observer": [ + { + "role": "coPrincipalInvestigator", + "party": [ + { + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "editor", + "party": [ + { + "contactId": "CID001" + } + ] + } + ], + "identificationProcedure": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identificationCompleteness": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "voucher": [ + { + "specimen": "bear claw", + "repository": { + "role": "custodian", + "party": [ + { + "contactId": "CID002" + } + ] + } + }, + { + "specimen": "moose tooth", + "repository": { + "role": "custodian", + "party": [ + { + "contactId": "CID002" + } + ] + } + } + ], + "taxonomicClassification": [ + { + "taxonomicSystemId": "taxon id", + "taxonomicLevel": "taxon rank", + "taxonomicName": "taxon name", + "commonName": ["common one", "common two"], + "subClassification": [ + { + "taxonomicSystemId": "taxon id", + "taxonomicLevel": "level two", + "taxonomicName": "name two", + "commonName": ["common one", "common two"], + "subClassification": [ + { + "taxonomicSystemId": "taxon id", + "taxonomicLevel": "level three", + "taxonomicName": "name three", + "commonName": ["common one", "common two"], + "subClassification": [ + { + "taxonomicSystemId": "taxon id", + "taxonomicLevel": "level four 1", + "taxonomicName": "name four 1", + "commonName": ["common one", "common two"], + "subClassification": [ + { + "taxonomicSystemId": "taxon id", + "taxonomicLevel": "level five 1", + "taxonomicName": "name five 1", + "commonName": ["common five 1A", "common five 1B"] + } + ] + }, + { + "taxonomicSystemId": "taxon id", + "taxonomicLevel": "level four 2", + "taxonomicName": "name four 2", + "commonName": ["common four 2A"], + "subClassification": [ + { + "taxonomicSystemId": "taxon id", + "taxonomicLevel": "level five 2", + "taxonomicName": "name five 2", + "commonName": ["common one", "common two"] + } + ] + } + ] + } + ] + } + ] + }, + { + "taxonomicSystemId": "taxon id", + "taxonomicLevel": "taxon rank", + "taxonomicName": "taxon name", + "commonName": ["common one", "common two"], + "subClassification": [ + { + "taxonomicSystemId": "taxon id", + "taxonomicLevel": "level two", + "taxonomicName": "name two", + "commonName": ["common one", "common two"], + "subClassification": [ + { + "taxonomicSystemId": "taxon id", + "taxonomicLevel": "level three", + "taxonomicName": "name three", + "commonName": ["common one", "common two"], + "subClassification": [ + { + "taxonomicSystemId": "taxon id", + "taxonomicLevel": "level four 1", + "taxonomicName": "name four 1", + "commonName": ["common one", "common two"], + "subClassification": [ + { + "taxonomicSystemId": "taxon id", + "taxonomicLevel": "level five 1", + "taxonomicName": "name five 1", + "commonName": ["common five 1A", "common five 1B"] + } + ] + }, + { + "taxonomicSystemId": "taxon id", + "taxonomicLevel": "level four 2", + "taxonomicName": "name four 2", + "commonName": ["common four 2A"], + "subClassification": [ + { + "taxonomicSystemId": "taxon id", + "taxonomicLevel": "level five 2", + "taxonomicName": "name five 2", + "commonName": ["common one", "common two"] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "taxonomicSystem": [ + { + "citation": { + "title": "NCBI - National Center for Biotechnology Information", + "alternateTitle": ["Citation for NCBI"] + } + } + ], + "generalScope": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identificationReference": [ + { + "title": "Non-Authoritative reference three", + "date": [ + { + "date": "1984-01-15", + "dateType": "publication" + } + ] + } + ], + "observer": [ + { + "role": "coPrincipalInvestigator", + "party": [ + { + "contactId": "CID006" + } + ] + } + ], + "identificationProcedure": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identificationCompleteness": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "voucher": [ + { + "specimen": "bear claw", + "repository": { + "role": "custodian", + "party": [ + { + "contactId": "CID002" + } + ] + } + } + ], + "taxonomicClassification": { + "taxonomicRank": "taxonomicRank0", + "latinName": "latinName", + "commonName": ["commonName0", "commonName1"], + "subClassification": [ + { + "taxonomicSystemId": "taxonomicSystemId00", + "taxonomicRank": "taxonomicRank00", + "latinName": "latinName", + "commonName": ["commonName0", "commonName1"], + "subClassification": [] + } + ] + } + } + ], + "graphicOverview": [ + { + "fileName": "fileName 0", + "fileDescription": "fileDescription 0", + "fileType": "fileType 0", + "fileConstraint": [ + { + "type": "use", + "useLimitation": ["useLimitation0", "useLimitation1"] + }, + { + "type": "legal", + "legal": { + "useConstraint": ["useConstraint0", "useConstraint1"], + "accessConstraint": ["accessConstraint0", "accessConstraint1"], + "otherConstraint": ["otherConstraint0", "otherConstraint1"] + } + } + ], + "fileUri": [ + { + "uri": "http://ISO.uri/adiwg/0" + } + ] + }, + { + "fileName": "fileName 1", + "fileDescription": "fileDescription 1", + "fileType": "fileType 1", + "fileUri": [ + { + "uri": "http://ISO.uri/adiwg/1" + } + ] + } + ], + "constraint": [ + { + "type": "use", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [ + { + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "reference": [ + { + "title": "title0" + }, + { + "title": "title1" + } + ], + "releasability": { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "addressee": [ + { + "role": "client", + "party": [ + { + "contactId": "CID001" + } + ] + }, + { + "role": "stakeholder", + "party": [ + { + "contactId": "CID002" + }, + { + "contactId": "CID003" + } + ] + } + ], + "disseminationConstraint": ["restricted", "unrestricted"] + }, + "responsibleParty": [ + { + "role": "coAuthor", + "party": [ + { + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "rightsHolder", + "party": [ + { + "contactId": "CID005" + } + ] + } + ] + }, + { + "type": "legal", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [ + { + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "legal": { + "useConstraint": ["threatenedOrEndangered", "otherRestrictions"], + "accessConstraint": ["otherRestrictions", "in-confidence"], + "otherConstraint": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure." + ] + } + }, + { + "type": "security", + "security": { + "classification": "secret", + "classificationSystem": "Classification System Name", + "userNote": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "handlingDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ], + "coverageDescription": [ + { + "coverageName": "My First Coverage", + "coverageDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "processingLevelCode": { + "identifier": "processing level code" + }, + "attributeGroup": [ + { + "attributeContentType": [ + "thematicClassification", + "physicalMeasurement" + ], + "attribute": [ + { + "sequenceIdentifier": "sequenceIdentifier 1", + "sequenceIdentifierType": "sequenceIdentifierType", + "attributeDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "attributeIdentifier": [ + { + "identifier": "identifier 1" + }, + { + "identifier": "identifier 2" + } + ], + "minValue": 9.9, + "maxValue": 9.9, + "units": "units", + "scaleFactor": 999, + "offset": 999, + "meanValue": 9.9, + "numberOfValues": 999, + "standardDeviation": 9.9, + "bitsPerValue": 999, + "boundMin": 9.9, + "boundMax": 9.9, + "boundUnits": "boundUnits", + "peakResponse": 9.9, + "toneGradations": 999, + "bandBoundaryDefinition": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "nominalSpatialResolution": 9.9, + "transferFunctionType": "transferFunctionType", + "transmittedPolarization": "transmittedPolarization", + "detectedPolarization": "detectedPolarization" + }, + { + "sequenceIdentifier": "sequenceIdentifier 2", + "sequenceIdentifierType": "sequenceIdentifierType", + "attributeDescription": "attributeDescription", + "attributeIdentifier": [ + { + "identifier": "identifier" + } + ], + "minValue": 9.9, + "maxValue": 9.9, + "units": "units", + "scaleFactor": 999, + "offset": 999, + "meanValue": 9.9, + "numberOfValues": 999, + "standardDeviation": 9.9, + "bitsPerValue": 999 + } + ] + }, + { + "attributeContentType": ["modelResult"] + } + ], + "imageDescription": { + "illuminationElevationAngle": 9.9, + "illuminationAzimuthAngle": 9.9, + "imagingCondition": "imagingCondition", + "imageQualityCode": { + "identifier": "identifier" + }, + "cloudCoverPercent": 9.9, + "compressionQuantity": 9, + "triangulationIndicator": true, + "radiometricCalibrationAvailable": true, + "cameraCalibrationAvailable": true, + "filmDistortionAvailable": true, + "lensDistortionAvailable": true + } + }, + { + "coverageName": "My Second Coverage", + "coverageDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "processingLevelCode": { + "identifier": "identifier" + }, + "attributeGroup": [ + { + "attributeContentType": ["attributeContentType"] + }, + { + "attributeContentType": ["attributeContentType"] + } + ], + "imageDescription": { + "illuminationElevationAngle": 60.0 + } + } + ], + "resourceFormat": [ + { + "formatSpecification": { + "title": "specification 1" + }, + "amendmentNumber": "amendmentNumber", + "compressionMethod": "compressionMethod" + }, + { + "formatSpecification": { + "title": "specification 2" + }, + "amendmentNumber": "amendmentNumber", + "compressionMethod": "compressionMethod" + } + ], + "resourceMaintenance": [ + { + "frequency": "semi-annually", + "date": [ + { + "date": "2016-10-12", + "dateType": "dateType" + }, + { + "date": "2016-10-12", + "dateType": "dateType" + } + ], + "scope": [ + { + "scopeCode": "scopeCode" + }, + { + "scopeCode": "scopeCode" + } + ], + "note": ["note0", "note1"], + "contact": [ + { + "role": "custodian", + "party": [ + { + "contactId": "CID005" + } + ] + } + ] + }, + { + "frequency": "frequency1" + } + ], + "environmentDescription": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "supplementalInfo": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "extent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [ + { + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0, + "minimumAltitude": 250.0, + "maximumAltitude": 1500.0, + "unitsOfAltitude": "meters" + }, + "geographicElement": [ + { + "type": "Point", + "coordinates": [100.0, 0.0] + }, + { + "type": "LineString", + "coordinates": [ + [100.0, 0.0], + [101.0, 1.0] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, 67.663378], + [-161.440345, 67.630173], + [-161.294611, 67.656257], + [-161.228063, 67.625736], + [-161.247712, 67.585909], + [-161.334662, 67.591324], + [-161.566245, 67.491263], + [-161.812338, 67.455299], + [-161.825019, 67.40123], + [-162.128301, 67.414364], + [-162.167825, 67.363047], + [-162.383403, 67.293329], + [-162.633432, 67.272237], + [-162.645587, 67.356665], + [-162.369023, 67.455264], + [-162.287324, 67.551235], + [-162.171139, 67.559356], + [-161.99344, 67.646806], + [-161.857964, 67.620329], + [-161.769431, 67.629407], + [-161.74223, 67.663378] + ] + ] + } + ] + }, + { + "description": "Polygon spans prime meridian", + "containsData": true, + "geographicElement": [ + { + "type": "Polygon", + "coordinates": [ + [ + [-10.0, 50.0], + [90.0, 50.0], + [90.0, 25.0], + [-10.0, 25.0], + [-10.0, 50.0] + ] + ] + } + ] + }, + { + "containsData": true, + "geographicElement": [ + { + "type": "Polygon", + "coordinates": [ + [ + [140, 65], + [-170, 65], + [-170, 55], + [140, 55], + [140, 65] + ] + ] + } + ] + }, + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [ + { + "type": "Polygon", + "coordinates": [ + [ + [-162, 65], + [-161, 65], + [-161, 60], + [-162, 60], + [-162, 65] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [100, 55], + [102, 55], + [102, 50], + [100, 50], + [100, 55] + ] + ] + } + ] + } + ], + "temporalExtent": [ + { + "timeInstant": { + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt," + }, + "instantName": ["instantName 20", "instantName 21"], + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timeInstant": { + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "instantName": ["instantName 50"], + "geologicAge": { + "ageTimeScale": "geologic age time scale", + "ageEstimate": "geologic age estimate", + "ageUncertainty": "geologic age uncertainty", + "ageExplanation": "geologic age explanation", + "ageReference": [ + { + "title": "geologic age reference title 1" + }, + { + "title": "geologic age reference title 2" + } + ] + } + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-14T11:10:15.2-10:00", + "endDateTime": "2016-12-31", + "id": "TimePeriod101", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "TimePeriod Identifier", + "namespace": "namespace" + }, + "periodName": ["periodName0", "periodName1"], + "timeInterval": { + "interval": 9, + "units": "year" + }, + "duration": { + "months": 9 + } + } + }, + { + "timePeriod": { + "id": "TimePeriod101", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "startGeologicAge": { + "ageTimeScale": "geologic age time scale", + "ageEstimate": "start geologic age", + "ageUncertainty": "geologic age uncertainty", + "ageExplanation": "geologic age explanation", + "ageReference": [ + { + "title": "geologic age reference title 1" + }, + { + "title": "geologic age reference title 2" + } + ] + }, + "endGeologicAge": { + "ageTimeScale": "geologic age time scale", + "ageEstimate": "end geologic age" + }, + "identifier": { + "identifier": "TimePeriod Identifier", + "namespace": "namespace" + }, + "periodName": ["periodName0", "periodName1"] + } + } + ], + "verticalExtent": [ + { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "minValue": 9.9, + "maxValue": 9.9, + "crsId": { + "referenceSystemType": "referenceSystemType0", + "referenceSystemIdentifier": { + "identifier": "identifier0" + } + } + }, + { + "minValue": 99.99, + "maxValue": 99.99, + "crsId": { + "referenceSystemType": "referenceSystemType1", + "referenceSystemIdentifier": { + "identifier": "identifier1" + } + } + } + ] + }, + { + "description": "Extent 1m: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [ + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [ + { + "type": "MultiPoint", + "coordinates": [ + [100.0, 0.0], + [100.0, 10.0], + [100.0, 20.0] + ] + }, + { + "type": "MultiLineString", + "coordinates": [ + [ + [100.0, 0.0], + [101.0, 1.0] + ], + [ + [110.0, 0.0], + [111.0, 1.0] + ], + [ + [120.0, 0.0], + [121.0, 1.0] + ] + ] + }, + { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-161.74223, 67.663378], + [-161.440345, 67.630173], + [-161.294611, 67.656257], + [-161.228063, 67.625736], + [-161.247712, 67.585909], + [-161.334662, 67.591324], + [-161.566245, 67.491263], + [-161.812338, 67.455299], + [-161.825019, 67.40123], + [-162.128301, 67.414364], + [-162.167825, 67.363047], + [-162.383403, 67.293329], + [-162.633432, 67.272237], + [-162.645587, 67.356665], + [-162.369023, 67.455264], + [-162.287324, 67.551235], + [-162.171139, 67.559356], + [-161.99344, 67.646806], + [-161.857964, 67.620329], + [-161.769431, 67.629407], + [-161.74223, 67.663378] + ] + ], + [ + [ + [-150, 65], + [-151, 66], + [-152, 67], + [-153, 68] + ] + ] + ] + } + ] + } + ], + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ], + "verticalExtent": [ + { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "minValue": 9.9, + "maxValue": 9.9, + "crsId": { + "referenceSystemType": "referenceSystemType0", + "referenceSystemIdentifier": { + "identifier": "identifier0" + } + } + }, + { + "minValue": 99.99, + "maxValue": 99.99, + "crsId": { + "referenceSystemType": "referenceSystemType1", + "referenceSystemIdentifier": { + "identifier": "identifier1" + } + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [ + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [ + { + "type": "Polygon", + "coordinates": [ + [ + [-30, 25], + [-20, 25], + [-20, 20], + [-30, 20], + [-30, 25] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [10, 40], + [15, 35], + [15, 30], + [10, 30], + [10, 40] + ] + ] + } + ] + }, + { + "containsData": true, + "geographicElement": [ + { + "type": "GeometryCollection", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometries": [ + { + "type": "Point", + "coordinates": [100.0, 0.0] + }, + { + "type": "LineString", + "coordinates": [ + [101.0, 0.0], + [102.0, 1.0] + ] + } + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [10, 40], + [15, 35], + [15, 30], + [10, 30], + [10, 40] + ] + ] + } + ] + }, + { + "containsData": true, + "geographicElement": [ + { + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, 67.663378], + [-161.440345, 67.630173], + [-161.294611, 67.656257], + [-161.228063, 67.625736], + [-161.247712, 67.585909], + [-161.334662, 67.591324], + [-161.566245, 67.491263], + [-161.812338, 67.455299], + [-161.825019, 67.40123], + [-162.128301, 67.414364], + [-162.167825, 67.363047], + [-162.383403, 67.293329], + [-162.633432, 67.272237], + [-162.645587, 67.356665], + [-162.369023, 67.455264], + [-162.287324, 67.551235], + [-162.171139, 67.559356], + [-161.99344, 67.646806], + [-161.857964, 67.620329], + [-161.769431, 67.629407], + [-161.74223, 67.663378] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": ["Agashashok River", "Camp Mosquito"], + "identifier": [ + { + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": ["string 1", "string 2"] + } + } + ] + }, + { + "containsData": true, + "geographicElement": [ + { + "type": "FeatureCollection", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "features": [ + { + "type": "Feature", + "id": "ALCC-BH55", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "Point", + "coordinates": [102.0, 0.5] + }, + "properties": { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "featureName": ["fake name"] + } + }, + { + "type": "Feature", + "id": "ALCC-BH56", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "LineString", + "coordinates": [ + [102.0, 0.0], + [103.0, 1.0], + [104.0, 0.0], + [105.0, 1.0] + ] + }, + "properties": { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + }, + { + "type": "Feature", + "id": "ALCC-Co81", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "GeometryCollection", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometries": [ + { + "type": "Point", + "coordinates": [100.0, 0.0] + }, + { + "type": "LineString", + "coordinates": [ + [101.0, 0.0], + [102.0, 1.0] + ] + } + ] + }, + "properties": { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ] + } + ] + } + ] + }, + { + "description": "Extent 3: Other world coordinates.", + "geographicExtent": [ + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [ + { + "type": "Polygon", + "coordinates": [ + [ + [-265, 65], + [-260, 65], + [-260, 63], + [-265, 63], + [-265, 65] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [200, 55], + [202, 55], + [202, 50], + [200, 50], + [200, 55] + ] + ] + }, + { + "type": "MultiPoint", + "coordinates": [ + [-150, 61], + [150, 61] + ] + } + ] + }, + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [ + { + "type": "MultiPoint", + "coordinates": [ + [-150, 61], + [-122, 47], + [-112, 33], + [-105, 39], + [-97, 32], + [-82, 41], + [-81, 39], + [-76, 38], + [-66, 18], + [-118, 34], + [11, 43], + [8, 46], + [98, 8], + [178, -19], + [-157, 21], + [-147, 65], + [-145, 60], + [-148, 70], + [-132, 56] + ] + } + ] + }, + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [ + { + "type": "MultiPoint", + "coordinates": [ + [-150, 61], + [-122, 47], + [-112, 33], + [-105, 39], + [-97, 32], + [-82, 41], + [-81, 39], + [-76, 38], + [-66, 18], + [-118, 34], + [11, 43], + [8, 46], + [98, 8], + [-147, 65], + [-145, 60], + [-148, 70], + [-132, 56] + ] + } + ] + }, + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [ + { + "type": "Polygon", + "coordinates": [ + [ + [-100, 30], + [-95, 40], + [-100, 50], + [0, 45], + [100, 50], + [95, 40], + [100, 30], + [0, 35], + [-100, 30] + ] + ] + } + ] + }, + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [ + { + "type": "Polygon", + "coordinates": [ + [ + [-100, 30], + [-95, 40], + [-100, 50], + [0, 45], + [200, 50], + [195, 40], + [200, 30], + [0, 35], + [-100, 30] + ] + ] + } + ] + }, + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [ + { + "type": "Polygon", + "coordinates": [ + [ + [40, 30], + [45, 40], + [40, 50], + [180, 45], + [250, 50], + [245, 40], + [250, 30], + [180, 35], + [40, 30] + ] + ] + } + ] + }, + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [ + { + "type": "Polygon", + "coordinates": [ + [ + [-250, 30], + [-245, 40], + [-250, 50], + [-180, 45], + [-50, 50], + [-55, 40], + [-50, 30], + [-180, 35], + [-250, 30] + ] + ] + } + ] + }, + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [ + { + "type": "Polygon", + "coordinates": [ + [ + [-200, 40], + [-200, 55], + [-170, 55], + [-170, 40], + [-200, 40] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [220, -40], + [220, -55], + [150, -55], + [150, -40], + [220, -40] + ] + ] + } + ] + } + ] + } + ] + }, + "resourceLineage": [ + { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "scope": { + "scopeCode": "scopeCode" + }, + "citation": [ + { + "title": "Lineage Title 1" + }, + { + "title": "Lineage Title 2" + } + ], + "source": [ + { + "sourceId": "Source ID 15", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "sourceCitation": { + "title": "Source Citation Title" + }, + "metadataCitation": [ + { + "title": "First Source Metadata Citation" + }, + { + "title": "Next Source Metadata Citation" + } + ], + "spatialResolution": { + "scaleFactor": 99999 + }, + "referenceSystem": { + "referenceSystemType": "referenceSystemType", + "referenceSystemIdentifier": { + "identifier": "identifier" + } + }, + "sourceProcessStep": [ + { + "description": "description" + }, + { + "description": "description" + } + ], + "scope": { + "scopeCode": "scopeCode" + }, + "processedLevel": { + "identifier": "identifier" + }, + "resolution": { + "groundResolution": { + "value": 999.9, + "unitOfMeasure": "units" + } + } + }, + { + "description": "description" + } + ], + "processStep": [ + { + "stepId": "stepId 001", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "rationale": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "timePeriod": { + "startDateTime": "2016-10-14T11:10:15.2-10:00", + "endDateTime": "2016-12-31", + "id": "TimePeriod001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "TimePeriod Identifier", + "namespace": "namespace" + }, + "periodName": ["periodName0", "periodName1"], + "timeInterval": { + "interval": 7, + "units": "year" + }, + "duration": { + "months": 9 + } + }, + "processor": [ + { + "role": "processor", + "party": [ + { + "contactId": "CID006" + } + ] + }, + { + "role": "reviewer", + "party": [ + { + "contactId": "CID004" + } + ] + } + ], + "reference": [ + { + "title": "Process Step Reference" + }, + { + "title": "Another Process Step Reference" + } + ], + "stepSource": [ + { + "description": "My step source description", + "sourceCitation": { + "title": "title" + } + }, + { + "description": "My other step source description" + } + ], + "stepProduct": [ + { + "description": "My step intermediate product description", + "sourceCitation": { + "title": "title" + } + }, + { + "description": "My other step intermediate product description" + } + ], + "scope": { + "scopeCode": "scopeCode" + }, + "output": [ + { + "description": "description one", + "resolution": { + "scanningResolution": { + "value": 999.9, + "unitOfMeasure": "units" + } + } + }, + { + "description": "description two" + } + ], + "processingInformation": { + "identifier": { + "identifier": "processing info identifier" + }, + "softwareReference": { + "title": "software reference title" + }, + "procedureDescription": "procedure description", + "documentation": [ + { + "title": "documentation title one" + }, + { + "title": "documentation title two" + } + ], + "runtimeParameters": "runtime parameters", + "algorithm": [ + { + "citation": { + "title": "algorithm one citation title" + }, + "description": "algorithm one" + }, + { + "citation": { + "title": "algorithm two citation title" + }, + "description": "algorithm tow" + } + ] + }, + "report": [ + { + "type": "Confidence", + "qualityMeasure": { + "name": ["example name", "test"], + "description": "example description", + "identifier": { + "identifier": "example identifier", + "namespace": "example namespace", + "description": "example description" + } + }, + "conformanceResult": [ + { + "dateTime": "2017-10-13", + "specification": { + "title": "example specification title", + "date": [ + { + "date": "2017-10-13", + "dateType": "publication" + } + ], + "responsibleParty": [ + { + "role": "originator", + "party": [ + { + "contactId": "CID004" + } + ] + } + ] + }, + "explanation": "example explanation", + "pass": true + } + ], + "coverageResult": [ + { + "spatialRepresentationType": "grid", + "spatialRepresentation": { + "gridRepresentation": { + "numberOfDimensions": 2, + "dimension": [ + { + "dimensionType": "type", + "dimensionSize": 1 + } + ], + "cellGeometry": "area" + } + }, + "resourceFormat": { + "formatSpecification": { + "title": "title" + }, + "amendmentNumber": "amendmentNumber", + "compressionMethod": "compressionMethod", + "technicalPrerequisite": "technicalPrerequisite" + }, + "resultFile": { + "fileName": "filename.xml", + "fileDescription": "FGDC CSDGM Metadata", + "fileType": "FGDC CSDGM", + "fileFormat": { + "formatSpecification": { + "title": "FGDC CSDGM", + "identifier": [ + { + "identifier": "FGDC CSDGM" + } + ], + "otherCitationDetails": [ + "Federal Geographic Data Committee Content Standard for Digital\n Geospatial Metadata" + ] + } + } + }, + "resultContentDescription": { + "coverageName": "name", + "coverageDescription": "description", + "processingLevelCode": { + "identifier": "identifier", + "namespace": "namespace", + "version": "version", + "description": "description", + "authority": { + "title": "title" + } + }, + "attributeGroup": [ + { + "attributeContentType": ["attributeContentType"] + } + ], + "imageDescription": { + "illuminationElevationAngle": 9.9, + "illuminationAzimuthAngle": 9.9, + "imagingCondition": "imagingCondition", + "imageQualityCode": { + "identifier": "identifier" + } + } + } + } + ], + "descriptiveResult": [ + { + "dateTime": "2017-10-13", + "scope": { + "scopeCode": "scopeCode" + }, + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + ], + "evaluationMethod": { + "type": "evaluationMethod", + "dateTime": ["2019-06-11T08:35:00"], + "methodDescription": "evaluation method description", + "evaluationProcedure": { + "title": "title" + }, + "referenceDocument": [], + "evaluationMethodType": "DQ_EvaluationMethodTypeCode", + "deductiveSource": "deductive source", + "samplingScheme": "sampling scheme", + "lotDescription": "lot description", + "samplingRatio": "sampling ratio" + }, + "quantitativeResult": [ + { + "dateTime": "2017-10-13", + "scope": { + "scopeCode": "scopeCode" + }, + "valueRecordType": "valueType", + "valueUnit": "valueUnit", + "value": [1.2] + } + ] + } + ] + }, + { + "stepId": "stepId 002", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + } + ] + }, + { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + ], + "resourceDistribution": [ + { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "liabilityStatement": "Accuracy of this data is absolutely guaranteed.", + "distributor": [ + { + "contact": { + "role": "distributor", + "party": [ + { + "contactId": "CID002" + } + ] + }, + "orderProcess": [ + { + "fees": "10.00USD", + "plannedAvailability": "2016-10-21T00:00:00", + "orderingInstructions": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "turnaround": "turnaround" + }, + { + "fees": "2.00USD" + } + ], + "transferOption": [ + { + "unitsOfDistribution": "units of distribution", + "transferSize": 9.9, + "onlineOption": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "offlineOption": [ + { + "mediumSpecification": { + "title": "My Medium Specification Title" + }, + "density": 9.9, + "units": "units", + "numberOfVolumes": 9, + "mediumFormat": ["mediumFormat0", "mediumFormat1"], + "note": "note", + "identifier": { + "identifier": "Medium Identifier" + } + }, + { + "mediumSpecification": { + "title": "dium specification title 1" + } + } + ], + "transferFrequency": { + "months": 9 + }, + "distributionFormat": [ + { + "formatSpecification": { + "title": "CSV" + }, + "amendmentNumber": "2.0.8-beta", + "compressionMethod": "7ZipUp", + "technicalPrerequisite": "Must have ArcGIS 10.x or higher installed." + }, + { + "formatSpecification": { + "title": "format specification title 1" + } + } + ] + }, + { + "onlineOption": [ + { + "uri": "http://ISO.uri/adiwg/3" + } + ], + "transferSize": 10.9 + } + ] + }, + { + "contact": { + "role": "distributor", + "party": [ + { + "contactId": "CID003" + } + ] + } + } + ] + } + ], + "associatedResource": [ + { + "resourceType": [ + { + "type": "modelHardcopy", + "name": "Hardcopy of Model" + }, + { + "type": "videoDigital", + "name": "Video of the Making" + } + ], + "associationType": "partOfSeamlessDatabase", + "initiativeType": "investigation", + "resourceCitation": { + "title": "Resource Citation Title" + }, + "metadataCitation": { + "title": "Metadata Citation Title" + } + }, + { + "resourceType": [ + { + "type": "type0", + "name": "name0" + }, + { + "type": "type1", + "name": "name1" + } + ], + "associationType": "associationType", + "initiativeType": "initiativeType", + "resourceCitation": { + "title": "title" + }, + "metadataCitation": { + "title": "title" + } + } + ], + "additionalDocumentation": [ + { + "resourceType": [ + { + "type": "webService", + "name": "ADIwg API" + }, + { + "type": "databaseDigital", + "name": "DMV Data" + } + ], + "citation": [ + { + "title": "A Good Additional Document" + }, + { + "title": "A More Better Additional Document" + } + ] + }, + { + "resourceType": [ + { + "type": "multimediaHardcopy", + "name": "Multi-Media Hard-Copy" + }, + { + "type": "physicalObject", + "name": "Lab Specimen" + } + ], + "citation": [ + { + "title": "A Much Mo Betha Additional Document" + } + ] + } + ], + "funding": [ + { + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "allocation": [ + { + "sourceAllocationID": "A999999X1", + "amount": 9999.99, + "currency": "USD", + "sourceId": "CID005", + "recipientId": "CID006", + "responsibleParty": [ + { + "role": "use", + "party": [ + { + "contactId": "CID001" + } + ] + }, + { + "role": "audit", + "party": [ + { + "contactId": "CID002" + } + ] + } + ], + "matching": true, + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/8" + }, + { + "uri": "http://ISO.uri/adiwg/9" + } + ], + "comment": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "sourceAllocationID": "A999999X2", + "amount": 999.99, + "currency": "CAD" + } + ], + "timePeriod": { + "startDateTime": "2016-10-14T11:10:15.2-10:00", + "endDateTime": "2016-12-31", + "id": "TimePeriod001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "TimePeriod Identifier", + "namespace": "namespace" + }, + "periodName": ["periodName0", "periodName1"], + "timeInterval": { + "interval": 5, + "units": "year" + }, + "duration": { + "months": 9 + } + } + }, + { + "allocation": [ + { + "amount": 9999.99, + "currency": "EUR" + } + ], + "timePeriod": { + "startDateTime": "2016-10-14" + } + } + ] + }, + "dataDictionary": [ + { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "subject": ["subject0", "subject1"], + "citation": { + "title": "title" + }, + "recommendedUse": ["use0", "use1"], + "locale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "responsibleParty": { + "role": "author", + "party": [ + { + "contactId": "CID001" + } + ] + }, + "dictionaryFunctionalLanguage": "SQL", + "dictionaryIncludedWithResource": true, + "domain": [ + { + "domainId": "domainId0", + "commonName": "country", + "codeName": "country", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "domainItem": [ + { + "name": "Canada", + "value": "CAN", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "reference": { + "title": "author defined" + } + }, + { + "name": "United States of America", + "value": "USA", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "reference": { + "title": "GCMD version 8.3" + } + }, + { + "name": "United States of Mexico", + "value": "MEX", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + } + ] + }, + { + "domainId": "domainId1", + "commonName": "administrative area", + "codeName": "province", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "domainItem": [ + { + "name": "Alberta, CA", + "value": "Alberta", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + }, + { + "name": "California, USA", + "value": "California", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + }, + { + "name": "Jalisco, MEX", + "value": "Jalisco", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + } + ] + }, + { + "domainId": "domainId2", + "commonName": "time zones", + "codeName": "timezone", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "domainReference": { + "title": "World Time Zone Reference", + "onlineResource": [ + { + "uri": "https://www.worldtimezone.com" + } + ] + } + }, + { + "domainId": "domainId3", + "commonName": "ID type", + "codeName": "type", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + ], + "entity": [ + { + "entityId": "entityId0", + "commonName": "country", + "codeName": "country", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "entityReference": [ + { + "title": "entity reference title 1" + }, + { + "title": "entity reference title 2" + } + ], + "primaryKeyAttributeCodeName": [ + "primaryAttribute0", + "primaryAttribute1" + ], + "index": [ + { + "codeName": "codeName0", + "allowDuplicates": false, + "attributeCodeName": [ + "attributeCodeName00", + "attributeCodeName01" + ] + }, + { + "codeName": "codeName1", + "allowDuplicates": true, + "attributeCodeName": ["attributeCodeName1"] + } + ], + "attribute": [ + { + "commonName": "Common Name for Attribute", + "codeName": "codeName", + "alias": ["alias0", "alias1"], + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "dataType": "dataType", + "allowNull": true, + "mustBeUnique": false, + "units": "units", + "domainId": "domainId", + "minValue": "minValue", + "maxValue": "maxValue" + }, + { + "commonName": "Employee ID", + "codeName": "empId", + "alias": ["employeeId", "employeeNumber"], + "definition": "Numeric code to uniquely identify an employee of Acme Oil", + "dataType": "numeric", + "allowNull": false, + "mustBeUnique": true, + "units": "meters", + "domainId": "dom042", + "minValue": "1000000", + "maxValue": "5000000" + } + ], + "foreignKey": [ + { + "localAttributeCodeName": [ + "localAttributeCodeName0", + "localAttributeCodeName1" + ], + "referencedEntityCodeName": "referencedEntityCodeName", + "referencedAttributeCodeName": [ + "referencedAttributeCodeName0", + "referencedAttributeCodeName1" + ] + }, + { + "localAttributeCodeName": ["employeeID"], + "referencedEntityCodeName": "EMPLOYEE", + "referencedAttributeCodeName": ["employeeID"] + } + ], + "fieldSeparatorCharacter": "tab", + "numberOfHeaderLines": 4, + "quoteCharacter": "double" + }, + { + "entityId": "entityId1", + "commonName": "administrative area", + "codeName": "province", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "primaryKeyAttributeCodeName": ["primaryAttribute"], + "attribute": [ + { + "commonName": "commonName", + "codeName": "codeName", + "alias": ["alias0", "alias1"], + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "attributeReference": { + "title": "attribute reference title" + }, + "dataType": "dataType", + "allowNull": true, + "mustBeUnique": false, + "units": "units", + "unitsResolution": 9.9, + "isCaseSensitive": true, + "fieldWidth": 4, + "missingValue": "-", + "domainId": "domainId", + "minValue": "minValue", + "maxValue": "maxValue", + "valueRange": [ + { + "minRangeValue": "0", + "maxRangeValue": "9" + }, + { + "minRangeValue": "20", + "maxRangeValue": "40" + } + ], + "timePeriod": [ + { + "startDateTime": "2016-10-14", + "endDateTime": "2016-12-31" + }, + { + "startDateTime": "2017-05-22", + "endDateTime": "2017-06-15" + } + ] + }, + { + "commonName": "Employee ID", + "codeName": "empId", + "alias": ["employeeId", "employeeNumber"], + "definition": "Numeric code to uniquely identify an employee of Acme Oil", + "dataType": "numeric", + "allowNull": false, + "mustBeUnique": true, + "units": "meters", + "domainId": "dom042", + "minValue": "1000000", + "maxValue": "5000000" + } + ] + } + ] + }, + { + "citation": { + "title": "My Dictionary Title" + }, + "subject": ["birds", "loons"], + "recommendedUse": ["Reconstruct database"], + "locale": [ + { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + } + ], + "responsibleParty": { + "role": "author", + "party": [ + { + "contactId": "CID006" + } + ] + }, + "dictionaryFunctionalLanguage": "MSSQL", + "dictionaryIncludedWithResource": false + } + ], + "metadataRepository": [ + { + "repository": "data.gov", + "citation": { + "title": "My Repository Citation Title", + "alternateTitle": ["alternateTitle0", "alternateTitle1"], + "identifier": [ + { + "identifier": "identifier 0" + }, + { + "identifier": "identifier 1" + } + ] + }, + "metadataStandard": "FGDC" + }, + { + "repository": "dataOne", + "metadataStandard": "iso19115_2" + } + ] +} diff --git a/test/writers/simple_html/testData/metadataLargeGeo.json b/test/writers/simple_html/testData/metadataLargeGeo.json new file mode 100644 index 000000000..e60fa1ce0 --- /dev/null +++ b/test/writers/simple_html/testData/metadataLargeGeo.json @@ -0,0 +1,21201 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.0.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [ + { + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [ + { + "uri": "http://ISO.uri/adiwg/0" + } + ] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + } + ], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + } + ], + "address": [ + { + "addressType": [ + "addressType" + ] + } + ], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal" + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual" + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [ + { + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [ + { + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + } + ] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [ + { + "contactId": "CID002" + } + ] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [ + { + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [ + { + "scopeCode": "dataset", + "scopeDescription": [ + { + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [ + { + "role": "processor", + "party": [ + { + "contactId": "CID004" + } + ] + }, + { + "role": "contributor", + "party": [ + { + "contactId": "CID006" + } + ] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "date type" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "dateTime type" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [ + { + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + } + ] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [ + { + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [ + { + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + } + ] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [ + { + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [ + { + "contactId": "CID006" + } + ] + }, + { + "role": "coPrincipalInvestigator", + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [ + { + "contactId": "CID004" + } + ] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "otherResourceLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "credit": [ + "Lim, Sonny B. - Guitar", + "Peterson, Jeff - Slack Key Guitar", + "Kamakawiwo'ole, Israel - Vocal" + ], + "timePeriod": { + "startDateTime": "2016-11-01" + }, + "temporalResolution": [ + { + "years": 1, + "months": 8, + "days": 13 + }, + { + "seconds": 5 + } + ], + "spatialReferenceSystem": [ + { + "referenceSystemType": "referenceSystemType0", + "referenceSystemIdentifier": { + "identifier": "spatial reference system identifier", + "namespace": "namespace", + "version": "version", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [ + { + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [ + { + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + } + ] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + } + }, + { + "referenceSystemType": "referenceSystemType1" + }, + { + "referenceSystemIdentifier": { + "identifier": "identifier2" + } + } + ], + "spatialRepresentationType": [ + "vector", + "stereoModel" + ], + "spatialRepresentation": [ + { + "gridRepresentation": { + "numberOfDimensions": 9, + "dimension": [ + { + "dimensionType": "column", + "dimensionSize": 9, + "resolution": { + "type": "distance", + "value": 9.9, + "unitOfMeasure": "feet" + }, + "dimensionTitle": "COLUMN TITLE", + "dimensionDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + }, + { + "dimensionType": "row", + "dimensionSize": 9 + } + ], + "cellGeometry": "voxel", + "transformParamsAvailability": true + } + }, + { + "vectorRepresentation": { + "topologyLevel": "fullTopology3D", + "vectorObject": [ + { + "objectType": "object Type 0", + "objectCount": 9 + }, + { + "objectType": "object Type 1", + "objectCount": 9 + } + ] + } + }, + { + "georectifiedRepresentation": { + "gridRepresentation": { + "numberOfDimensions": 9, + "dimension": [ + { + "dimensionType": "row", + "dimensionSize": 90 + }, + { + "dimensionType": "column", + "dimensionSize": 91 + } + ], + "cellGeometry": "cellGeometry", + "transformationParameterAvailable": true + }, + "checkPointAvailable": true, + "checkPointDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "cornerPoints": [ + [ + 0.0, + 0.0 + ], + [ + 0.0, + 1.0 + ], + [ + 1.0, + 1.0 + ], + [ + 1.0, + 0.0 + ] + ], + "centerPoint": [ + 0.5, + 0.5 + ], + "pointInPixel": "upperRight", + "transformationDimensionDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "transformationDimensionMapping": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + }, + { + "georeferenceableRepresentation": { + "gridRepresentation": { + "numberOfDimensions": 9, + "dimension": [ + { + "dimensionType": "row", + "dimensionSize": 90 + }, + { + "dimensionType": "column", + "dimensionSize": 91 + } + ], + "cellGeometry": "cellGeometry", + "transformationParameterAvailable": true + }, + "controlPointAvailable": true, + "orientationParameterAvailable": true, + "orientationParameterDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "georeferencedParameter": "Georeferenced Parameter 00", + "parameterCitation": [ + { + "title": "title0" + }, + { + "title": "title1" + } + ] + } + } + ], + "spatialResolution": [ + { + "scaleFactor": 99999 + }, + { + "measure": { + "type": "distance", + "value": 99.9, + "unitOfMeasure": "unitOfMeasure" + } + }, + { + "levelOfDetail": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + ], + "keyword": [ + { + "keyword": [ + { + "keyword": "Barrow" + }, + { + "keyword": "Prudhoe Bay" + }, + { + "keyword": "Kaparuk" + } + ], + "keywordType": "Place Names", + "thesaurus": { + "title": "USGS Geographic Names Information System" + } + }, + { + "keyword": [ + { + "keyword": "Brown Bear", + "keywordId": "TSN12365741" + }, + { + "keyword": "Polar Bear", + "keywordId": "TSN125415741" + }, + { + "keyword": "Black Bear", + "keywordId": "TSN123689426" + }, + { + "keyword": "Cinnamon Bear", + "keywordId": "TSN123842165" + }, + { + "keyword": "Teddy Bear" + } + ], + "keywordType": "Taxonomy" + }, + { + "keyword": [ + { + "keyword": "butter" + }, + { + "keyword": "sugar" + }, + { + "keyword": "eggs" + } + ] + }, + { + "keyword": [ + { + "keyword": "inlandWaters", + "keywordId": "012" + }, + { + "keyword": "location", + "keywordId": "013" + }, + { + "keyword": "climatologyMeteorologyAtmosphere", + "keywordId": "004" + } + ], + "keywordType": "isoTopicCategory" + } + ], + "taxonomy": { + "taxonomicSystem": [ + { + "citation": { + "title": "ITIS - Integrated Taxonomic Information System", + "alternateTitle": [ + "Citation for ITIS" + ] + }, + "modifications": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "citation": { + "title": "Some OTHER Taxonomic System" + } + } + ], + "generalScope": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identificationReference": [ + { + "identifier": "identifier0", + "namespace": "namespace0", + "version": "version0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "title0" + } + }, + { + "identifier": "identifier1", + "namespace": "namespace1", + "version": "version1", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "title1" + } + } + ], + "observer": [ + { + "role": "coPrincipalInvestigator", + "party": [ + { + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "editor", + "party": [ + { + "contactId": "CID001" + } + ] + } + ], + "identificationProcedure": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identificationCompleteness": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "voucher": [ + { + "specimen": "bear claw", + "repository": { + "role": "custodian", + "party": [ + { + "contactId": "CID002" + } + ] + } + }, + { + "specimen": "moose tooth", + "repository": { + "role": "custodian", + "party": [ + { + "contactId": "CID002" + } + ] + } + } + ], + "taxonomicClassification": { + "taxonomicRank": "taxonomicRank0", + "latinName": "latinName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [ + { + "taxonomicSystemId": "taxonomicSystemId00", + "taxonomicRank": "taxonomicRank00", + "latinName": "latinName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [ + { + "taxonomicRank": "taxonomicRank000", + "latinName": "latinName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [ + { + "taxonomicSystemId": "taxonomicSystemId0000.1", + "taxonomicRank": "taxonomicRank0000.1", + "latinName": "latinName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [] + }, + { + "taxonomicSystemId": "taxonomicSystemId0000.2", + "taxonomicRank": "taxonomicRank0000.2", + "latinName": "latinName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [] + } + ] + } + ] + }, + { + "taxonomicRank": "taxonomicRank01", + "latinName": "latinName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [ + { + "taxonomicRank": "taxonomicRank010", + "latinName": "latinName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [] + } + ] + } + ] + } + }, + "graphicOverview": [ + { + "fileName": "fileName 0", + "fileDescription": "fileDescription 0", + "fileType": "fileType 0", + "fileConstraint": [ + { + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + } + ], + "fileUri": [ + { + "uri": "http://ISO.uri/adiwg/0" + } + ] + }, + { + "fileName": "fileName 1", + "fileDescription": "fileDescription 1", + "fileType": "fileType 1", + "fileUri": [ + { + "uri": "http://ISO.uri/adiwg/1" + } + ] + } + ], + "constraint": [ + { + "type": "use", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [ + { + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "reference": [ + { + "title": "title0" + }, + { + "title": "title1" + } + ], + "releasability": { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "addressee": [ + { + "role": "client", + "party": [ + { + "contactId": "CID001" + } + ] + }, + { + "role": "stakeholder", + "party": [ + { + "contactId": "CID002" + }, + { + "contactId": "CID003" + } + ] + } + ], + "disseminationConstraint": [ + "restricted", + "unrestricted" + ] + }, + "responsibleParty": [ + { + "role": "coAuthor", + "party": [ + { + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "rightsHolder", + "party": [ + { + "contactId": "CID005" + } + ] + } + ] + }, + { + "type": "legal", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [ + { + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "legal": { + "useConstraint": [ + "threatenedOrEndangered", + "otherRestrictions" + ], + "accessConstraint": [ + "otherRestrictions", + "in-confidence" + ], + "otherConstraint": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure." + ] + } + }, + { + "type": "security", + "security": { + "classification": "secret", + "classificationSystem": "Classification System Name", + "userNote": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "handlingDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ], + "coverageDescription": [ + { + "coverageName": "My First Coverage", + "coverageDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "processingLevelCode": { + "identifier": "processing level code" + }, + "attributeGroup": [ + { + "attributeContentType": [ + "thematicClassification", + "physicalMeasurement" + ], + "attribute": [ + { + "sequenceIdentifier": "sequenceIdentifier 1", + "sequenceIdentifierType": "sequenceIdentifierType", + "attributeDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "attributeIdentifier": [ + { + "identifier": "identifier 1" + }, + { + "identifier": "identifier 2" + } + ], + "minValue": 9.9, + "maxValue": 9.9, + "units": "units", + "scaleFactor": 999, + "offset": 999, + "meanValue": 9.9, + "numberOfValues": 999, + "standardDeviation": 9.9, + "bitsPerValue": 999, + "boundMin": 9.9, + "boundMax": 9.9, + "boundUnits": "boundUnits", + "peakResponse": 9.9, + "toneGradations": 999, + "bandBoundaryDefinition": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "nominalSpatialResolution": 9.9, + "transferFunctionType": "transferFunctionType", + "transmittedPolarization": "transmittedPolarization", + "detectedPolarization": "detectedPolarization" + }, + { + "sequenceIdentifier": "sequenceIdentifier 2", + "sequenceIdentifierType": "sequenceIdentifierType", + "attributeDescription": "attributeDescription", + "attributeIdentifier": [ + { + "identifier": "identifier" + } + ], + "minValue": 9.9, + "maxValue": 9.9, + "units": "units", + "scaleFactor": 999, + "offset": 999, + "meanValue": 9.9, + "numberOfValues": 999, + "standardDeviation": 9.9, + "bitsPerValue": 999 + } + ] + }, + { + "attributeContentType": [ + "modelResult" + ] + } + ], + "imageDescription": { + "illuminationElevationAngle": 9.9, + "illuminationAzimuthAngle": 9.9, + "imagingCondition": "imagingCondition", + "imageQualityCode": { + "identifier": "identifier" + }, + "cloudCoverPercent": 9.9, + "compressionQuantity": 9, + "triangulationIndicator": true, + "radiometricCalibrationAvailable": true, + "cameraCalibrationAvailable": true, + "filmDistortionAvailable": true, + "lensDistortionAvailable": true + } + }, + { + "coverageName": "My Second Coverage", + "coverageDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "processingLevelCode": { + "identifier": "identifier" + }, + "attributeGroup": [ + { + "attributeContentType": [ + "attributeContentType" + ] + }, + { + "attributeContentType": [ + "attributeContentType" + ] + } + ], + "imageDescription": { + "illuminationElevationAngle": 60.0 + } + } + ], + "resourceFormat": [ + { + "formatSpecification": { + "title": "specification 1" + }, + "amendmentNumber": "amendmentNumber", + "compressionMethod": "compressionMethod" + }, + { + "formatSpecification": { + "title": "specification 2" + }, + "amendmentNumber": "amendmentNumber", + "compressionMethod": "compressionMethod" + } + ], + "resourceMaintenance": [ + { + "frequency": "semi-annually", + "date": [ + { + "date": "2016-10-12", + "dateType": "dateType" + }, + { + "date": "2016-10-12", + "dateType": "dateType" + } + ], + "scope": [ + { + "scopeCode": "scopeCode" + }, + { + "scopeCode": "scopeCode" + } + ], + "note": [ + "note0", + "note1" + ], + "contact": [ + { + "role": "custodian", + "party": [ + { + "contactId": "CID005" + } + ] + } + ] + }, + { + "frequency": "frequency1" + } + ], + "environmentDescription": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "supplementalInfo": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "extent": [ + { + "description": "Extent Large: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [ + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [ + { + "id": "2005798", + "type": "Feature", + "bbox": [ + -179.99999999994, + 7.206110972617194, + -12.157639504892504, + 83.6235961786649 + ], + "crs": { + "type": "name", + "properties": { + "name": "urn:ogc:def:crs:OGC:1.3:CRS84" + } + }, + "geometry": { + "coordinates": [ + [ + [ + [ + -114.15077971834302, + 28.019506455618625 + ], + [ + -114.061317442823, + 28.517568572768074 + ], + [ + -114.16771699183201, + 28.671871190984973 + ], + [ + -114.94598390505803, + 29.373888007668697 + ], + [ + -115.69667052169702, + 29.774232892008758 + ], + [ + -116.055488584268, + 30.796524037415015 + ], + [ + -116.67562867499299, + 31.560760475155238 + ], + [ + -116.608131420397, + 31.84451100538663 + ], + [ + -117.06584167374702, + 32.36166383599583 + ], + [ + -117.40943909097302, + 33.24415588739998 + ], + [ + -118.53000642667702, + 34.0479125790683 + ], + [ + -119.12917328837503, + 34.11388397782553 + ], + [ + -119.541671779835, + 34.41415404956392 + ], + [ + -120.55832673113702, + 34.561935451937885 + ], + [ + -120.61819459130301, + 35.139438640892465 + ], + [ + -121.86763002302101, + 36.31533815797081 + ], + [ + -121.94325253774201, + 36.59457398258209 + ], + [ + -121.79916379638301, + 36.884017922190274 + ], + [ + -122.388343798519, + 37.220268276139855 + ], + [ + -122.48430631382202, + 37.78992461805765 + ], + [ + -122.023185730611, + 37.45790865522564 + ], + [ + -122.393409741312, + 37.95915984622404 + ], + [ + -122.01583860971603, + 38.066101067717725 + ], + [ + -122.47832486905001, + 38.11957170727394 + ], + [ + -122.45667266240801, + 37.83346555570554 + ], + [ + -122.81696316837301, + 38.02027128869355 + ], + [ + -123.107223505964, + 38.462772362801026 + ], + [ + -123.70152280571901, + 38.9304123180597 + ], + [ + -123.77236176641901, + 39.70971296663839 + ], + [ + -124.331184370552, + 40.27245715049358 + ], + [ + -124.039993262052, + 41.42777253696964 + ], + [ + -124.524436933766, + 42.86610410458482 + ], + [ + -124.131378152221, + 43.920829798624816 + ], + [ + -123.89241790380102, + 45.57260129835821 + ], + [ + -123.951950077987, + 46.18110657986323 + ], + [ + -123.26347351771702, + 46.1448554902191 + ], + [ + -123.16357421137901, + 46.19519041017541 + ], + [ + -124.000000017013, + 46.32360838966543 + ], + [ + -124.04998778488802, + 46.625129706981625 + ], + [ + -123.94124603967602, + 46.39297865218142 + ], + [ + -123.895233148732, + 46.68736269555391 + ], + [ + -124.097503657085, + 46.861381535359406 + ], + [ + -123.801246663411, + 46.97679136623243 + ], + [ + -124.15306089672202, + 47.09110258320635 + ], + [ + -124.655685427117, + 47.99693679487154 + ], + [ + -124.71430970498001, + 48.39707563508805 + ], + [ + -123.93472292242001, + 48.17582699944814 + ], + [ + -122.77749632689, + 48.11048128109844 + ], + [ + -122.630279529204, + 47.91582489824594 + ], + [ + -123.01722716650302, + 47.569717384209035 + ], + [ + -123.147926324095, + 47.37165453194212 + ], + [ + -123.006668096596, + 47.36846539989743 + ], + [ + -122.87610624413402, + 47.41499328591295 + ], + [ + -123.09749604535102, + 47.40082550529654 + ], + [ + -122.51409910713801, + 47.922073347623346 + ], + [ + -122.46003724309901, + 47.76374053861714 + ], + [ + -122.68083190176701, + 47.639228812301845 + ], + [ + -122.53652190497301, + 47.593181638289245 + ], + [ + -122.54776761576802, + 47.28804780743525 + ], + [ + -122.797500583874, + 47.395271302463925 + ], + [ + -122.98006437770701, + 47.18047716032493 + ], + [ + -122.63971711062601, + 47.15193175214085 + ], + [ + -122.31353762416201, + 47.37179563990032 + ], + [ + -122.41832730941, + 47.672218343317546 + ], + [ + -122.29109955739702, + 47.95818707451823 + ], + [ + -122.374404878993, + 48.213428496285374 + ], + [ + -122.528465268603, + 48.182907115737855 + ], + [ + -122.500000007896, + 48.74485397336814 + ], + [ + -122.867561347725, + 49.07912443688917 + ], + [ + -123.08653260809102, + 48.97207258767806 + ], + [ + -123.20736694232102, + 49.12540819288466 + ], + [ + -123.17888641268401, + 49.24541091782168 + ], + [ + -122.918060307843, + 49.29082872383608 + ], + [ + -122.855133072726, + 49.43811414527735 + ], + [ + -123.178947430784, + 49.345882434503466 + ], + [ + -123.20162202191402, + 49.61571501837988 + ], + [ + -123.516532922997, + 49.385475172633555 + ], + [ + -123.9616775386, + 49.51193999672699 + ], + [ + -124.03055573824798, + 49.71651841821358 + ], + [ + -123.63890077634001, + 49.63499449095969 + ], + [ + -123.84827421795, + 49.81056978208179 + ], + [ + -123.748962390886, + 50.08506394139678 + ], + [ + -123.987213123831, + 50.210929877733 + ], + [ + -123.982215862413, + 49.80374145908608 + ], + [ + -124.432777433336, + 49.76763533784657 + ], + [ + -124.74194335639301, + 49.95832825225177 + ], + [ + -124.81809233228803, + 50.06391906655237 + ], + [ + -124.703338604445, + 49.99554445349226 + ], + [ + -124.356521632552, + 50.4959296945096 + ], + [ + -125.07528685183301, + 50.32096861769302 + ], + [ + -124.806938177452, + 50.919578537976996 + ], + [ + -125.11672972329801, + 50.477348328921096 + ], + [ + -125.488327015777, + 50.456382763168506 + ], + [ + -125.467987072814, + 50.71124269216671 + ], + [ + -125.70368195977703, + 50.4295043763998 + ], + [ + -126.27694701240503, + 50.5163116414347 + ], + [ + -126.270210245369, + 50.6273536941248 + ], + [ + -125.62013245054301, + 50.752082815428196 + ], + [ + -125.507858281651, + 50.941482537913004 + ], + [ + -125.61081696294002, + 51.08776856468921 + ], + [ + -125.73110962468603, + 50.73554990640549 + ], + [ + -126.04989624108502, + 50.70680617499049 + ], + [ + -126.50570680910201, + 50.8478126668136 + ], + [ + -126.17929840392901, + 50.948043798684616 + ], + [ + -127.17314912224501, + 50.9222145314351 + ], + [ + -127.06492617493299, + 50.83374024498481 + ], + [ + -127.474685650872, + 51.00119016074442 + ], + [ + -126.82173159301401, + 51.06588363651083 + ], + [ + -126.68930814111499, + 51.112632777961025 + ], + [ + -126.65763853705201, + 51.19033434472593 + ], + [ + -127.19957733487, + 51.05679700999832 + ], + [ + -127.78999331365499, + 51.165542615656406 + ], + [ + -127.132568340315, + 51.328464515898624 + ], + [ + -127.78333283364901, + 51.34999468633971 + ], + [ + -127.551666236061, + 51.46832272658724 + ], + [ + -127.496391269959, + 51.61429980241543 + ], + [ + -126.65930175563999, + 51.65013119815693 + ], + [ + -126.62000275714603, + 51.679992672847035 + ], + [ + -126.660278333338, + 51.79222109256794 + ], + [ + -126.69805147599303, + 51.66457364665271 + ], + [ + -127.17637634018602, + 51.697631859042936 + ], + [ + -127.34725191235499, + 51.85794450085893 + ], + [ + -127.659156793313, + 51.45749665207561 + ], + [ + -127.87610627452602, + 51.668601993646725 + ], + [ + -127.86477661342602, + 51.900894156405144 + ], + [ + -127.580291734103, + 52.12915802978814 + ], + [ + -127.07073971909598, + 52.22379687293005 + ], + [ + -126.67540742272301, + 51.99089429869392 + ], + [ + -127.22805786450799, + 52.45304873249454 + ], + [ + -126.92277526242202, + 52.72262952307716 + ], + [ + -127.019584655948, + 52.836658466516084 + ], + [ + -126.98200989414299, + 52.71846387095277 + ], + [ + -127.61499023287702, + 52.29332731516185 + ], + [ + -127.873046899575, + 52.22332002137345 + ], + [ + -128.05528261308402, + 52.47457123966166 + ], + [ + -128.393890374547, + 52.291381823039146 + ], + [ + -128.13165284441402, + 52.8763809041212 + ], + [ + -128.43861387639902, + 52.820827467312164 + ], + [ + -128.53973389045402, + 53.131935137282674 + ], + [ + -128.853881863619, + 53.27971648203808 + ], + [ + -128.96957396802702, + 53.553184511656404 + ], + [ + -128.523620617716, + 53.39665983202389 + ], + [ + -128.131927512293, + 53.44887542317441 + ], + [ + -127.87092590118802, + 53.23717499667389 + ], + [ + -128.126922587601, + 53.481101968652204 + ], + [ + -128.814849869731, + 53.62123870766663 + ], + [ + -128.606170674666, + 54.02978513916202 + ], + [ + -129.217498806758, + 53.64027405022631 + ], + [ + -129.27279664744503, + 53.379158008576695 + ], + [ + -130.047653173192, + 53.88499448798343 + ], + [ + -130.01896665705002, + 54.14740752438152 + ], + [ + -129.474288958949, + 54.23936462489473 + ], + [ + -130.191680896452, + 54.19332125371003 + ], + [ + -130.481109624749, + 54.364715566159326 + ], + [ + -130.35598754457402, + 54.52518464248174 + ], + [ + -130.242523205824, + 54.43109893792635 + ], + [ + -130.029037466917, + 54.323047636431625 + ], + [ + -129.960128787027, + 54.31964491222653 + ], + [ + -130.27587890306, + 54.59418487833074 + ], + [ + -130.167907691423, + 54.85408781791767 + ], + [ + -129.62374879122203, + 55.000133517501865 + ], + [ + -129.975555418877, + 55.06694032838066 + ], + [ + -129.6630096462, + 55.4122123726774 + ], + [ + -130.078811642631, + 54.992561338344565 + ], + [ + -130.160629251903, + 55.080478683380484 + ], + [ + -129.946380642695, + 55.285408002157894 + ], + [ + -130.128311150465, + 55.735961909807095 + ], + [ + -129.9661102318, + 55.92249297491571 + ], + [ + -130.17443847195403, + 55.75721741236889 + ], + [ + -129.993652327254, + 55.281036363528486 + ], + [ + -130.709259009968, + 54.76787569543077 + ], + [ + -130.910552998241, + 54.79193877964955 + ], + [ + -131.007797239363, + 55.00020219887625 + ], + [ + -130.474151602278, + 55.325931568815875 + ], + [ + -131.058761584936, + 55.12748716616148 + ], + [ + -130.861267082567, + 55.31006242609688 + ], + [ + -130.886398300444, + 55.70790862210931 + ], + [ + -131.207214359269, + 56.01140977223523 + ], + [ + -131.802642810783, + 55.88179776244001 + ], + [ + -131.954986569361, + 55.501106237793074 + ], + [ + -132.143066422512, + 55.56749727283429 + ], + [ + -132.245269781538, + 55.7238769264436 + ], + [ + -131.900848360674, + 56.226932501606335 + ], + [ + -132.905273417826, + 57.03305051885345 + ], + [ + -133.508361801629, + 57.19360348786149 + ], + [ + -133.441314721177, + 57.3554115052752 + ], + [ + -133.640563940474, + 57.69638059231703 + ], + [ + -133.006423969741, + 57.51395035840479 + ], + [ + -133.51779171977702, + 57.745826745325644 + ], + [ + -133.544342026221, + 57.908149700192034 + ], + [ + -133.131103539046, + 57.85332871106144 + ], + [ + -133.557647717303, + 57.92360306707345 + ], + [ + -133.700607306904, + 57.79152296442872 + ], + [ + -134.05972291193999, + 58.07888030395625 + ], + [ + -133.92848208186302, + 58.49138259824345 + ], + [ + -133.774032593827, + 58.51499556593737 + ], + [ + -133.924713133818, + 58.51221466169337 + ], + [ + -134.18055724617, + 58.19707109669185 + ], + [ + -134.757644659287, + 58.38196942345365 + ], + [ + -135.359649640502, + 59.261524193725805 + ], + [ + -135.347839382637, + 59.464157123090054 + ], + [ + -135.488311750012, + 59.22387694771811 + ], + [ + -135.085540776784, + 58.233047460837845 + ], + [ + -135.321243269403, + 58.24971773260983 + ], + [ + -135.470901482525, + 58.47144696501546 + ], + [ + -135.910354590165, + 58.38110353109125 + ], + [ + -136.014434817557, + 58.79442216574271 + ], + [ + -135.76594543175503, + 58.895961758463905 + ], + [ + -136.236511202044, + 58.75172804869957 + ], + [ + -137.064300555309, + 59.061866746627416 + ], + [ + -136.98661806030202, + 58.88788224750911 + ], + [ + -136.189163230455, + 58.61485672875995 + ], + [ + -136.028335593568, + 58.38527298604346 + ], + [ + -136.455413838653, + 58.397575364395166 + ], + [ + -136.65890505472402, + 58.21651841226135 + ], + [ + -138.599533072411, + 59.123218516288894 + ], + [ + -138.43922423342303, + 59.1846427701528 + ], + [ + -139.710540790492, + 59.49582672715352 + ], + [ + -139.481246926966, + 59.98505781333505 + ], + [ + -139.147552476617, + 59.839790368218566 + ], + [ + -139.499999995991, + 60.03305053708876 + ], + [ + -140.403350845876, + 59.69804382306137 + ], + [ + -141.37664797144998, + 59.866386423833646 + ], + [ + -141.256958000289, + 59.99596783815088 + ], + [ + -141.38485718188002, + 60.137908961329465 + ], + [ + -141.730957032642, + 59.95332719117136 + ], + [ + -142.884460429298, + 60.09777069026815 + ], + [ + -143.90057370811599, + 59.99110413665387 + ], + [ + -144.931533802783, + 60.2973556531645 + ], + [ + -144.611389173536, + 60.715545652586826 + ], + [ + -145.28846739133098, + 60.350688929971604 + ], + [ + -145.675292992429, + 60.47082521482971 + ], + [ + -145.717773459693, + 60.64499662869531 + ], + [ + -146.64402770418002, + 60.6940841635203 + ], + [ + -146.125259420805, + 60.84540559522985 + ], + [ + -146.755432120263, + 60.952491785128146 + ], + [ + -146.296813970588, + 61.129295332005455 + ], + [ + -147.36694336427402, + 60.887771631948624 + ], + [ + -147.55096433257202, + 61.15318296757886 + ], + [ + -147.66806031423602, + 60.853050258589406 + ], + [ + -148.050277694722, + 60.94735335813317 + ], + [ + -147.715683011323, + 61.275405910136364 + ], + [ + -148.404174782904, + 61.054435745203754 + ], + [ + -148.20428467188802, + 60.99357603840984 + ], + [ + -148.69236753455303, + 60.78812025845871 + ], + [ + -148.66027829420602, + 60.67124558984753 + ], + [ + -148.229721095504, + 60.76582716009833 + ], + [ + -148.204574608697, + 60.6174888739286 + ], + [ + -148.481094349992, + 60.578117391232915 + ], + [ + -148.687149075319, + 60.451587688592795 + ], + [ + -148.085479722465, + 60.60013196126762 + ], + [ + -147.93785095177, + 60.451377841641516 + ], + [ + -148.36608888647402, + 60.247215253611095 + ], + [ + -148.09887696950702, + 60.20596696016736 + ], + [ + -148.438522326769, + 59.94845962922796 + ], + [ + -149.232772813259, + 59.90290451808296 + ], + [ + -149.419738783581, + 60.116241428139375 + ], + [ + -149.62805175480602, + 59.821937532243375 + ], + [ + -149.73428346082602, + 59.95467759836436 + ], + [ + -149.806320197041, + 59.684711454566624 + ], + [ + -150.90750123527496, + 59.24332426328763 + ], + [ + -151.72332764137698, + 59.16082001312612 + ], + [ + -151.97624207825302, + 59.27582547664493 + ], + [ + -150.997894278816, + 59.78082654393007 + ], + [ + -151.46922303464302, + 59.63673019691486 + ], + [ + -151.87831113862296, + 59.759994480480266 + ], + [ + -151.302642814074, + 60.3883285703239 + ], + [ + -151.40673825277602, + 60.728111290334645 + ], + [ + -150.404174795061, + 61.03680036183536 + ], + [ + -149.22805788299402, + 60.89193728407313 + ], + [ + -150.06201173533202, + 61.157768255987264 + ], + [ + -149.25204468018302, + 61.49249269647966 + ], + [ + -149.42279055287702, + 61.508327498511484 + ], + [ + -151.58361814430205, + 60.97693636211594 + ], + [ + -152.42178345555402, + 60.293258682414596 + ], + [ + -153.078887954226, + 60.2981872624582 + ], + [ + -152.58749392331498, + 60.046382905583584 + ], + [ + -153.225830084032, + 59.86513137542817 + ], + [ + -153.012008659145, + 59.81652069215987 + ], + [ + -153.04264833068402, + 59.70943830508926 + ], + [ + -154.08276367561905, + 59.37443545150831 + ], + [ + -154.256958021689, + 59.132766725428425 + ], + [ + -153.261184685835, + 58.8595733636894 + ], + [ + -153.905288699164, + 58.583049761947564 + ], + [ + -154.235671981268, + 58.13068772492484 + ], + [ + -155.033401478993, + 58.01461026730153 + ], + [ + -155.311126716696, + 57.73443600850691 + ], + [ + -155.60693359384499, + 57.78930280442663 + ], + [ + -155.734436013737, + 57.55138395463349 + ], + [ + -156.48999024993802, + 57.33110809386409 + ], + [ + -156.341659569424, + 57.17082979273549 + ], + [ + -156.552291862266, + 56.97887802709696 + ], + [ + -156.94082643112196, + 56.962493889306366 + ], + [ + -157.20666506631105, + 56.77054598411428 + ], + [ + -157.42793271608903, + 56.85749435710737 + ], + [ + -157.58332824396402, + 56.70735168677337 + ], + [ + -157.470123304163, + 56.62026975385904 + ], + [ + -157.787231433044, + 56.67832948465136 + ], + [ + -158.1156768863, + 56.56058120278496 + ], + [ + -157.882629401278, + 56.467491147685536 + ], + [ + -158.428482057927, + 56.44012830370453 + ], + [ + -158.63742065194, + 56.25874327124653 + ], + [ + -158.12644960598502, + 56.23519898492702 + ], + [ + -158.48944092633602, + 56.043052698885624 + ], + [ + -159.361450194864, + 55.87436294603172 + ], + [ + -159.69998166929705, + 55.56694033141978 + ], + [ + -159.624023410977, + 55.812072742186686 + ], + [ + -159.84263611077802, + 55.850269323953206 + ], + [ + -160.507781976889, + 55.4780426058578 + ], + [ + -161.24888610132, + 55.347907995335476 + ], + [ + -161.509902981354, + 55.36839296432228 + ], + [ + -161.48373411006, + 55.4834633063878 + ], + [ + -161.14527892265698, + 55.53026960549178 + ], + [ + -161.562500007655, + 55.622764575662 + ], + [ + -161.959442110171, + 55.125823947573984 + ], + [ + -162.445037865848, + 55.03642655348867 + ], + [ + -162.63638308045498, + 55.297355680390886 + ], + [ + -162.566940333737, + 54.957977270115656 + ], + [ + -162.873886096792, + 54.93096543866308 + ], + [ + -163.17944336675802, + 55.13957595235277 + ], + [ + -163.05308530993602, + 54.93266294031906 + ], + [ + -163.35290526514902, + 54.80971527097617 + ], + [ + -163.326248191434, + 55.117076867487484 + ], + [ + -162.626922624448, + 55.354438775866285 + ], + [ + -161.80763241842197, + 55.88373945173472 + ], + [ + -161.068328875328, + 55.93498993128901 + ], + [ + -160.67958071431102, + 55.6958236963645 + ], + [ + -160.745544449794, + 55.871376055282624 + ], + [ + -160.25007632271897, + 55.77151869528781 + ], + [ + -160.57402038025097, + 55.9937401057983 + ], + [ + -160.346954340001, + 56.28555297664094 + ], + [ + -159.035003646175, + 56.804992689594066 + ], + [ + -158.639038063739, + 56.762912729237975 + ], + [ + -158.68278504551, + 57.01263048603189 + ], + [ + -158.285278338305, + 57.32416534032349 + ], + [ + -157.785278335266, + 57.5498542959671 + ], + [ + -157.581665025376, + 57.47470857518399 + ], + [ + -157.39791872495803, + 57.4927711428731 + ], + [ + -157.70693967961003, + 57.66499326178853 + ], + [ + -157.551391577676, + 58.38777161675255 + ], + [ + -157.07249450313898, + 58.73943707883119 + ], + [ + -156.78181458688204, + 59.15124132374589 + ], + [ + -157.11193847003702, + 58.87443544846911 + ], + [ + -158.19096377266, + 58.60680009239059 + ], + [ + -158.526733414606, + 58.849227885943506 + ], + [ + -158.47154234119003, + 58.97512816296701 + ], + [ + -157.99276736047202, + 58.90499116970388 + ], + [ + -158.44862367765901, + 59.09871672402869 + ], + [ + -158.91139221052802, + 58.76707459069147 + ], + [ + -158.71089174565302, + 58.492771148951675 + ], + [ + -158.89752197237704, + 58.39554597958708 + ], + [ + -159.62089541227002, + 58.944087984520195 + ], + [ + -159.91430662315298, + 58.77040863352209 + ], + [ + -160.32276916196298, + 59.058326717291806 + ], + [ + -161.36111452104103, + 58.66332244362389 + ], + [ + -162.07839963365404, + 58.61985018735048 + ], + [ + -161.655853264532, + 58.80290604405158 + ], + [ + -161.79278566019002, + 59.017211926150715 + ], + [ + -161.568405165397, + 59.106658929853005 + ], + [ + -161.994018572744, + 59.14707567162152 + ], + [ + -161.95582579380502, + 59.38068770371351 + ], + [ + -161.70964051830998, + 59.49693680715446 + ], + [ + -162.38418576471005, + 60.33249666280749 + ], + [ + -162.221923827944, + 60.581665026223995 + ], + [ + -161.87942502461698, + 60.70221708691983 + ], + [ + -162.27972410216802, + 60.59915924401552 + ], + [ + -162.463897702144, + 60.368049645460296 + ], + [ + -162.510696395592, + 60.00082779443866 + ], + [ + -163.659454324124, + 59.794994382165065 + ], + [ + -164.138198824602, + 59.84762955198105 + ], + [ + -164.21421815864, + 59.95005796926868 + ], + [ + -164.09422303935904, + 59.97776796533136 + ], + [ + -165.13839721153005, + 60.440959937312 + ], + [ + -164.97964476623903, + 60.54040906950622 + ], + [ + -165.422439579984, + 60.55214690078803 + ], + [ + -164.710144065515, + 60.90901947123624 + ], + [ + -164.270919818965, + 60.78290560205223 + ], + [ + -164.252563454021, + 60.642742185624925 + ], + [ + -163.951385485958, + 60.780548079301305 + ], + [ + -163.786819438886, + 60.57770155777671 + ], + [ + -163.42715455571, + 60.702701544131926 + ], + [ + -163.673049952015, + 60.99068450644835 + ], + [ + -164.159179659284, + 60.86804964849966 + ], + [ + -164.89472963850102, + 60.952632893086246 + ], + [ + -165.15029908297305, + 60.928047208140335 + ], + [ + -164.82208249080801, + 61.10305023129975 + ], + [ + -165.286331187964, + 61.21405028002837 + ], + [ + -164.719360333884, + 61.6253356694252 + ], + [ + -165.19764711218102, + 61.40651704073847 + ], + [ + -165.386688216482, + 61.06860352582016 + ], + [ + -165.87359617821804, + 61.33263017118867 + ], + [ + -165.79306029476402, + 61.51971437488369 + ], + [ + -166.19735718145, + 61.5902672016031 + ], + [ + -166.14770509955503, + 61.7137756151882 + ], + [ + -165.82695005883, + 61.68124006114369 + ], + [ + -166.014678957071, + 61.8092422647963 + ], + [ + -165.75613403033304, + 61.841377254314196 + ], + [ + -165.70153809946504, + 62.11596677241695 + ], + [ + -165.267242432959, + 62.43471524530069 + ], + [ + -164.689178442144, + 62.61415864608257 + ], + [ + -164.493362427292, + 62.746730811595164 + ], + [ + -164.878601096832, + 62.735549921727696 + ], + [ + -164.754180926477, + 62.98249051948679 + ], + [ + -164.15223696336204, + 63.259582528744936 + ], + [ + -163.067092910836, + 63.058879880192116 + ], + [ + -162.30598447180301, + 63.54062273752053 + ], + [ + -161.15167234043798, + 63.51249696562054 + ], + [ + -160.78125000650698, + 63.87457272637317 + ], + [ + -161.18902590442804, + 64.41415405905933 + ], + [ + -161.529174790659, + 64.41886904694263 + ], + [ + -161.01716614890503, + 64.51047513492772 + ], + [ + -160.78279113127502, + 64.71915432999208 + ], + [ + -161.174575792658, + 64.93803403439766 + ], + [ + -161.425704974745, + 64.77082824865806 + ], + [ + -162.10777284830402, + 64.71623992344536 + ], + [ + -162.79028317511296, + 64.33610534021282 + ], + [ + -163.17001344861, + 64.65525818045076 + ], + [ + -163.35263059727, + 64.59068299567593 + ], + [ + -163.04055787332103, + 64.51831817913674 + ], + [ + -163.138748154282, + 64.41268922132105 + ], + [ + -163.82192991067, + 64.58915708221885 + ], + [ + -165.02862547617502, + 64.44386290207039 + ], + [ + -166.121368385271, + 64.57470702806737 + ], + [ + -166.489639298193, + 64.73657986640903 + ], + [ + -166.422241205213, + 64.91914366024247 + ], + [ + -166.6966705436, + 64.99588777868527 + ], + [ + -166.919738774715, + 65.13136294226099 + ], + [ + -166.959793095472, + 65.17990874698278 + ], + [ + -166.05416867314, + 65.25002286566041 + ], + [ + -167.462356550149, + 65.42012024098011 + ], + [ + -168.126373264501, + 65.66998290855996 + ], + [ + -166.259887712487, + 66.18012240284028 + ], + [ + -165.51129149875703, + 66.15713500031647 + ], + [ + -165.88737486041, + 66.23651125177079 + ], + [ + -164.36193848529504, + 66.59387968791447 + ], + [ + -163.642364473687, + 66.56671902761073 + ], + [ + -164.06222535497102, + 66.18942262151329 + ], + [ + -163.656402612447, + 66.07054138506057 + ], + [ + -161.840545662407, + 66.00846097054848 + ], + [ + -161.52334591994702, + 66.26860049211828 + ], + [ + -161.015563948418, + 66.18386841868067 + ], + [ + -161.15863036290904, + 66.34664915334629 + ], + [ + -161.87222287212603, + 66.37109373033412 + ], + [ + -161.93000793503901, + 66.55123137766063 + ], + [ + -162.63375855309903, + 66.86581419842007 + ], + [ + -162.32957456491198, + 66.95574951978087 + ], + [ + -161.594299311193, + 66.44719695705811 + ], + [ + -161.18612670919202, + 66.53858945288275 + ], + [ + -160.63833616607704, + 66.36526491724062 + ], + [ + -160.23500058816, + 66.39804840413291 + ], + [ + -160.20930482321302, + 66.52137756624485 + ], + [ + -160.24026491180203, + 66.64414978694253 + ], + [ + -160.87110898321902, + 66.66554259463454 + ], + [ + -161.497283931161, + 66.5333175812037 + ], + [ + -161.89779665849102, + 66.72831725569154 + ], + [ + -161.721099878885, + 66.95067597133247 + ], + [ + -161.498535176739, + 66.9604644500454 + ], + [ + -161.81610108542, + 67.04721069697995 + ], + [ + -163.727203372014, + 67.11220551803888 + ], + [ + -164.124145532149, + 67.60998536107635 + ], + [ + -166.37915038409002, + 68.3105316357803 + ], + [ + -166.23242184644405, + 68.87233732783365 + ], + [ + -163.99331667508204, + 68.99165346950018 + ], + [ + -163.156951887548, + 69.35220337441412 + ], + [ + -162.98275754147903, + 69.72526550463124 + ], + [ + -161.94223022353302, + 70.30720521076208 + ], + [ + -161.812744168004, + 70.2528304777098 + ], + [ + -162.114212015256, + 70.15429684749499 + ], + [ + -160.16390989178404, + 70.58970639682964 + ], + [ + -159.93197628958998, + 70.58414458834143 + ], + [ + -160.006134024192, + 70.41998290862333 + ], + [ + -159.836120599176, + 70.26832579093409 + ], + [ + -159.86305234077102, + 70.4376220948195 + ], + [ + -159.305648825207, + 70.53067780923183 + ], + [ + -160.036254897832, + 70.62997436736575 + ], + [ + -159.672363286813, + 70.79608914486195 + ], + [ + -159.17097473306504, + 70.87747956981336 + ], + [ + -159.445419282763, + 70.77818301167927 + ], + [ + -159.22387696510503, + 70.70443725008757 + ], + [ + -157.97943113153, + 70.83749387281217 + ], + [ + -156.596725484927, + 71.35144040103322 + ], + [ + -155.592498751005, + 71.16831972340403 + ], + [ + -156.177291845582, + 70.91776275166066 + ], + [ + -155.91070555140402, + 70.82263184565097 + ], + [ + -155.09443663443304, + 71.1501312014492 + ], + [ + -154.61415100918703, + 71.0213775359793 + ], + [ + -154.61262509573, + 70.82762144379505 + ], + [ + -154.20361327877998, + 70.77651979309177 + ], + [ + -153.222503646857, + 70.92858888379088 + ], + [ + -152.37915041423003, + 70.86164857060949 + ], + [ + -152.217224105825, + 70.81304169016887 + ], + [ + -152.492691040011, + 70.64609530337884 + ], + [ + -152.07736203469003, + 70.57839200465953 + ], + [ + -152.61946106984303, + 70.55838774767562 + ], + [ + -151.73664854377003, + 70.55859373418055 + ], + [ + -151.73831176235802, + 70.44581603631923 + ], + [ + -151.27334594407202, + 70.3944397177365 + ], + [ + -149.54306028241902, + 70.51165773560173 + ], + [ + -145.024871848349, + 69.98706818717008 + ], + [ + -142.888198839483, + 70.07540891369919 + ], + [ + -141.382080080463, + 69.63970948517402 + ], + [ + -139.143066407442, + 69.51081845695523 + ], + [ + -137.41915895226, + 68.98887636808388 + ], + [ + -135.160003659506, + 68.65721130254275 + ], + [ + -135.617553733141, + 68.88658139548018 + ], + [ + -134.810287492378, + 68.92442321950956 + ], + [ + -134.28277587412504, + 68.68136594272126 + ], + [ + -134.225128173961, + 68.69752502224955 + ], + [ + -134.619155869931, + 68.98803709551575 + ], + [ + -134.55860903215, + 69.08526612532667 + ], + [ + -133.073059077184, + 69.43498229245502 + ], + [ + -132.89389040190002, + 69.65386960251624 + ], + [ + -132.37277220143, + 69.64694211790534 + ], + [ + -132.535964966724, + 69.74039459401622 + ], + [ + -132.146972675687, + 69.68525693304484 + ], + [ + -131.417007437162, + 69.95401763805408 + ], + [ + -131.19068911352102, + 69.82485199957455 + ], + [ + -130.892242440085, + 70.09915163848656 + ], + [ + -129.969299306226, + 70.0705490150301 + ], + [ + -129.682647679345, + 70.26548006576189 + ], + [ + -129.40747068196802, + 70.10317992786197 + ], + [ + -130.923889169564, + 69.56526181376336 + ], + [ + -131.053070076973, + 69.63720705163716 + ], + [ + -132.001815800669, + 69.52928925244512 + ], + [ + -132.11663820988701, + 69.35720824148792 + ], + [ + -132.76403806491302, + 69.25165557070241 + ], + [ + -133.49192811184005, + 68.82415768933268 + ], + [ + -133.321380619995, + 68.74636842705436 + ], + [ + -133.04583739878, + 68.69094849254792 + ], + [ + -132.91833497888803, + 68.69026185165863 + ], + [ + -133.354156501232, + 68.83221438332065 + ], + [ + -132.47825624845902, + 68.80463408673296 + ], + [ + -132.772811880031, + 68.85968779740038 + ], + [ + -132.868103023375, + 69.06401062276508 + ], + [ + -131.870132459723, + 69.28137968264332 + ], + [ + -131.727081314162, + 69.3999862512165 + ], + [ + -131.964508043469, + 69.3999176274607 + ], + [ + -131.64570615814, + 69.4727630407654 + ], + [ + -131.239562998566, + 69.49123383625532 + ], + [ + -131.414733864716, + 69.2991561739697 + ], + [ + -131.13458253812502, + 69.36463164941291 + ], + [ + -131.130966164141, + 69.61442563561835 + ], + [ + -130.900695780535, + 69.34679413998612 + ], + [ + -130.364288310964, + 69.68012236649615 + ], + [ + -128.894042951647, + 69.97039797301676 + ], + [ + -129.151382439596, + 69.70081332198794 + ], + [ + -128.925018309165, + 69.68081667065954 + ], + [ + -128.317352300228, + 69.95332339150939 + ], + [ + -128.34304812279402, + 70.1169280721945 + ], + [ + -127.58500672198602, + 70.2294311597949 + ], + [ + -128.197769153957, + 70.39720915587873 + ], + [ + -128.00180056504502, + 70.58956909169925 + ], + [ + -127.18096162859501, + 70.27638242730352 + ], + [ + -126.26166534896001, + 69.53241730877092 + ], + [ + -125.420837424456, + 69.31259917018188 + ], + [ + -125.08944702679402, + 69.44970701448592 + ], + [ + -125.617011999872, + 69.42066954343423 + ], + [ + -125.26027679217302, + 69.52497102626053 + ], + [ + -125.363533015927, + 69.68927767438325 + ], + [ + -125.07250214476102, + 69.74317169543266 + ], + [ + -125.27639772818601, + 69.80824280352164 + ], + [ + -124.764450046914, + 69.97082521495636 + ], + [ + -125.19755554356102, + 70.00267026766538 + ], + [ + -124.56222534535102, + 70.01207731122776 + ], + [ + -124.423606856519, + 70.05636596548376 + ], + [ + -124.74568937223401, + 70.12428285636358 + ], + [ + -124.43611147616701, + 70.1510925041392 + ], + [ + -124.35861203546101, + 70.06860352290758 + ], + [ + -124.496734600978, + 69.72380066689306 + ], + [ + -124.040832534619, + 69.70138547471346 + ], + [ + -124.446662882799, + 69.3672027643244 + ], + [ + -123.47194672627602, + 69.3824844277695 + ], + [ + -123.165969820027, + 69.49832155820053 + ], + [ + -122.96104430407699, + 69.83200073962007 + ], + [ + -121.683883664985, + 69.79359436852087 + ], + [ + -117.87053679959901, + 68.98553466197886 + ], + [ + -115.96000672334802, + 68.80470276810746 + ], + [ + -116.31971741331301, + 68.95630647335194 + ], + [ + -115.593063343034, + 68.97164915489748 + ], + [ + -114.06652069074599, + 68.46970365973571 + ], + [ + -114.021041866631, + 68.24401090126432 + ], + [ + -115.23229218268499, + 68.18171689459147 + ], + [ + -115.21250151786201, + 68.02290343120107 + ], + [ + -115.53582761588001, + 67.92095186547007 + ], + [ + -115.108612065664, + 67.79762270335794 + ], + [ + -112.39584349030899, + 67.67915343991524 + ], + [ + -111.01208497897701, + 67.76416018123203 + ], + [ + -110.07736967314801, + 68.00555418181416 + ], + [ + -109.73151395240502, + 67.71859740681303 + ], + [ + -109.06277464451401, + 67.71207428955634 + ], + [ + -108.82806394090399, + 67.3515091157124 + ], + [ + -108.66277310942701, + 67.62844849329186 + ], + [ + -108.49262998493701, + 67.3572693050499 + ], + [ + -108.38409422623, + 67.44435118034569 + ], + [ + -108.020561233395, + 67.29470823615341 + ], + [ + -107.87790679191401, + 67.05054473981066 + ], + [ + -108.621246345277, + 67.15193175847179 + ], + [ + -107.25415804809802, + 66.35151671528963 + ], + [ + -107.74665829856302, + 66.92275998876515 + ], + [ + -107.643478419458, + 67.07498931679848 + ], + [ + -107.48735810718, + 66.92102048314744 + ], + [ + -107.66792299644601, + 66.93853757552417 + ], + [ + -107.567359923805, + 66.83568571912487 + ], + [ + -107.42041013072401, + 66.80664824807315 + ], + [ + -107.414024376217, + 66.97206877902457 + ], + [ + -107.15527346297301, + 66.89971923141516 + ], + [ + -107.648620591662, + 67.3599853307473 + ], + [ + -107.578407311369, + 67.48626710053962 + ], + [ + -107.99645994804301, + 67.69581604841284 + ], + [ + -107.65833284096401, + 67.94046019913998 + ], + [ + -107.88791658368, + 68.08499145136898 + ], + [ + -106.848609915835, + 68.1166534497767 + ], + [ + -106.42639162703702, + 68.35081481762752 + ], + [ + -105.72666929835201, + 68.4219207829335 + ], + [ + -105.65180204827601, + 68.63610076838563 + ], + [ + -106.543876649507, + 68.51193239132421 + ], + [ + -106.56443784790501, + 68.2905349844519 + ], + [ + -106.78755949146502, + 68.4105377093888 + ], + [ + -107.88346860040201, + 68.265060417321 + ], + [ + -107.624023440615, + 68.16443632657919 + ], + [ + -108.394310004502, + 68.11401365349089 + ], + [ + -108.39903259804, + 68.29206084029038 + ], + [ + -108.81597135188498, + 68.2660980131198 + ], + [ + -108.31416321947201, + 68.61137391786275 + ], + [ + -106.208061200771, + 68.94094846525816 + ], + [ + -105.48020174932202, + 68.72380066081455 + ], + [ + -105.525421116869, + 68.4073486349628 + ], + [ + -104.88474275994902, + 68.33970641196252 + ], + [ + -104.500488273763, + 68.03338621407737 + ], + [ + -103.421661351989, + 68.16665648658099 + ], + [ + -103.36763002580899, + 68.00832367757496 + ], + [ + -102.25110624841001, + 67.72526549247432 + ], + [ + -100.39555359579698, + 67.84748837741326 + ], + [ + -98.9869384768486, + 67.71832273893365 + ], + [ + -98.52888487424408, + 67.77748108362495 + ], + [ + -98.72194671988368, + 67.95123291882537 + ], + [ + -98.61555483414868, + 68.0747070493419 + ], + [ + -98.094451902608, + 67.76609801008044 + ], + [ + -97.509735095061, + 67.59915162329055 + ], + [ + -97.119781495256, + 67.78858948929017 + ], + [ + -97.6830596883217, + 68.01860047394626 + ], + [ + -98.1112442105806, + 67.83887479962944 + ], + [ + -98.58354188083129, + 68.14609528818278 + ], + [ + -98.3297271532875, + 68.17213440238349 + ], + [ + -98.7102126914296, + 68.3619995103227 + ], + [ + -98.09666445695439, + 68.31776426851148 + ], + [ + -97.8444442666236, + 68.54137422973014 + ], + [ + -97.2591705176622, + 68.46665955371422 + ], + [ + -96.93916319354501, + 68.23970033835388 + ], + [ + -96.4073638869675, + 68.31345364798251 + ], + [ + -96.80305480152478, + 68.05525967615375 + ], + [ + -96.7083435317991, + 68.00860595110997 + ], + [ + -95.98028564188189, + 68.25471493957507 + ], + [ + -96.454864490235, + 67.47456360994512 + ], + [ + -96.19110104664391, + 67.42053983180229 + ], + [ + -96.24951173234568, + 67.2490845012526 + ], + [ + -96.1222152989585, + 67.21498869306379 + ], + [ + -95.57138825547692, + 67.37845612623721 + ], + [ + -95.32736206426459, + 67.02207181582887 + ], + [ + -96.11054995187911, + 66.95082093973716 + ], + [ + -96.4555511311242, + 67.06414797335717 + ], + [ + -95.8836212167596, + 66.76887510541833 + ], + [ + -96.0890960684681, + 66.91349030795153 + ], + [ + -95.22472380002571, + 66.97796633111106 + ], + [ + -95.3493042077155, + 67.151100149178 + ], + [ + -95.16804507190449, + 67.28296660204389 + ], + [ + -95.3345870913403, + 67.34609988128452 + ], + [ + -95.32472226797871, + 67.52928924028822 + ], + [ + -95.7063903703241, + 67.72949216269924 + ], + [ + -95.4703445284511, + 68.05942532827815 + ], + [ + -94.7165298554867, + 68.05879209983368 + ], + [ + -93.5533294784588, + 68.5863800051163 + ], + [ + -93.66694639126939, + 68.97221375958608 + ], + [ + -93.92555239372659, + 68.97470092419317 + ], + [ + -94.075424199009, + 68.84554289136928 + ], + [ + -93.81687166661519, + 68.88616942247036 + ], + [ + -94.09333038981029, + 68.75888059473873 + ], + [ + -94.6249999969128, + 68.76138302827563 + ], + [ + -94.5990981878425, + 68.96186067618456 + ], + [ + -94.07264709759271, + 69.13581849788982 + ], + [ + -94.32298281390129, + 69.15290068505288 + ], + [ + -94.28791809128829, + 69.3163757238819 + ], + [ + -93.53326414575591, + 69.43177794909923 + ], + [ + -93.84874725718359, + 69.16963958058071 + ], + [ + -93.3675689469251, + 69.37393186808592 + ], + [ + -93.44040681219302, + 69.47790527058822 + ], + [ + -94.2791748140296, + 69.44026182740822 + ], + [ + -94.5919494477969, + 69.63720705163716 + ], + [ + -95.9681930528629, + 69.77999113497437 + ], + [ + -96.57028198438209, + 70.22942349652071 + ], + [ + -95.81666563464839, + 70.70970917938516 + ], + [ + -96.20278932592731, + 70.62164306311706 + ], + [ + -96.6079101586324, + 70.79123685184847 + ], + [ + -96.43096924900601, + 71.0804138444701 + ], + [ + -96.50041960137989, + 71.2788696556077 + ], + [ + -96.0370864638223, + 71.41790005983026 + ], + [ + -95.5431899993745, + 71.29039763993822 + ], + [ + -95.5477752877829, + 71.48776244283253 + ], + [ + -95.9004211303877, + 71.60623170627545 + ], + [ + -95.28819276524611, + 71.7600555139033 + ], + [ + -95.2161102222419, + 71.94414522119389 + ], + [ + -94.5302886695687, + 71.99443053153318 + ], + [ + -94.39076234203202, + 71.93365477504352 + ], + [ + -94.41715241114241, + 71.66234588732667 + ], + [ + -93.73430634073479, + 71.7677688586374 + ], + [ + -93.8095855638206, + 71.64859774299416 + ], + [ + -92.98353577379189, + 71.34685517024343 + ], + [ + -92.85444642234239, + 71.15138244702679 + ], + [ + -92.98249817799321, + 70.82554625219757 + ], + [ + -92.20360564197802, + 70.60845186019887 + ], + [ + -92.24402618657419, + 70.49429321728515 + ], + [ + -91.51348113204989, + 70.15630341533658 + ], + [ + -92.2683410640872, + 70.20887756705231 + ], + [ + -92.4412536843381, + 70.0733261164463 + ], + [ + -91.94318390449169, + 70.01804354468888 + ], + [ + -92.7769470392546, + 69.71429446171513 + ], + [ + -91.8022918432137, + 69.5041503712939 + ], + [ + -91.19541169439981, + 69.65456390667975 + ], + [ + -91.0973587185693, + 69.63088992088544 + ], + [ + -91.360824562077, + 69.54553222465881 + ], + [ + -90.31340023976131, + 69.44811247727283 + ], + [ + -90.8100661999699, + 69.2551345819375 + ], + [ + -91.2147217048389, + 69.2902679283066 + ], + [ + -90.43638611023812, + 68.87442018270515 + ], + [ + -90.55776978022757, + 68.47470092115393 + ], + [ + -90.2631988797263, + 68.2358169597643 + ], + [ + -89.9122161980905, + 68.46720888947301 + ], + [ + -89.71194459430511, + 69.0104064809064 + ], + [ + -89.3144454927558, + 69.24929810556996 + ], + [ + -88.9688873144778, + 69.24136350540132 + ], + [ + -88.0452728086584, + 68.81859588084455 + ], + [ + -87.8005523709013, + 68.31192018648842 + ], + [ + -87.93527221221339, + 68.19720460216021 + ], + [ + -88.221939108024, + 68.3655395396583 + ], + [ + -88.3891677683489, + 68.28873446073389 + ], + [ + -88.3712463662365, + 67.96282958453035 + ], + [ + -88.1322250420979, + 67.65998839788062 + ], + [ + -87.3591613767947, + 67.25352476363788 + ], + [ + -87.51042173278529, + 67.11463166454566 + ], + [ + -86.96694181019849, + 67.24907683797859 + ], + [ + -87.08715057925902, + 67.34686280920369 + ], + [ + -86.8744354315451, + 67.40498350047778 + ], + [ + -86.52938078223659, + 67.3502578701347 + ], + [ + -86.5233383193642, + 67.67664334310402 + ], + [ + -85.9139633426689, + 68.09193420490958 + ], + [ + -85.636459360401, + 68.73963926567424 + ], + [ + -84.77139284541379, + 68.74220277492994 + ], + [ + -85.1848144445083, + 68.85974120984507 + ], + [ + -84.74554444878818, + 69.03970335090767 + ], + [ + -85.47555543648342, + 69.27415465556757 + ], + [ + -85.55499264841951, + 69.85970307240856 + ], + [ + -82.2590331789751, + 69.63721465729273 + ], + [ + -82.48854063466152, + 69.49768827213754 + ], + [ + -83.22805788515329, + 69.53858947111812 + ], + [ + -82.2288894883688, + 69.39408875674862 + ], + [ + -82.2730560488055, + 69.23748779008599 + ], + [ + -81.3357010043093, + 69.1849823197448 + ], + [ + -81.7166595335615, + 68.94914246437665 + ], + [ + -81.3541717421805, + 68.85748290632814 + ], + [ + -81.2590332305153, + 68.64179227634854 + ], + [ + -81.964447009544, + 68.42220305646833 + ], + [ + -82.38832857454811, + 68.4676284681385 + ], + [ + -82.4261016595843, + 68.276657083026 + ], + [ + -82.0997237922705, + 67.90484619838674 + ], + [ + -81.2422179903389, + 67.47012328994133 + ], + [ + -81.5022201491597, + 67.00096128167176 + ], + [ + -81.9297180305294, + 66.97859189628129 + ], + [ + -82.5810775511744, + 66.57647702608273 + ], + [ + -83.4022216933634, + 66.34748842591422 + ], + [ + -83.67680360581049, + 66.52276611695305 + ], + [ + -83.975067167326, + 66.58220673517934 + ], + [ + -84.0113982892094, + 66.66360470816763 + ], + [ + -84.29096985741909, + 66.72525788074034 + ], + [ + -84.43611146350712, + 66.98136899769759 + ], + [ + -84.8443069400932, + 67.03054808848235 + ], + [ + -84.64569855489529, + 66.97922518234448 + ], + [ + -85.2270813196117, + 66.87469483842763 + ], + [ + -84.60221863534781, + 66.93580628089714 + ], + [ + -84.4379425250846, + 66.71960451629234 + ], + [ + -84.14875792680739, + 66.68358614818494 + ], + [ + -83.7678985591705, + 66.16864011006167 + ], + [ + -84.51465604804912, + 66.40332033343041 + ], + [ + -84.6309051514901, + 66.33164976343599 + ], + [ + -84.3736038070554, + 66.16345979434259 + ], + [ + -85.22125244889969, + 66.2633208995466 + ], + [ + -85.48583223285482, + 66.58165739942051 + ], + [ + -86.75792692915451, + 66.52845762491593 + ], + [ + -86.6450042628886, + 66.3197098060957 + ], + [ + -85.8972625906561, + 66.168022150547 + ], + [ + -86.5302886785605, + 65.69552609944684 + ], + [ + -87.3958435112061, + 65.32138062426051 + ], + [ + -88.07028199033469, + 65.35609433434531 + ], + [ + -88.8293075744964, + 65.64276123015604 + ], + [ + -88.5133362030289, + 65.64443971767324 + ], + [ + -89.66819000687819, + 65.93720243118234 + ], + [ + -89.9955520575458, + 65.94591522820019 + ], + [ + -89.7933349616379, + 65.82249451012837 + ], + [ + -90.04861452691992, + 65.88832094048095 + ], + [ + -91.42916869489629, + 65.95109560153807 + ], + [ + -89.9600067381671, + 65.78887941394235 + ], + [ + -89.0574951032307, + 65.33068844858903 + ], + [ + -86.9351272377305, + 65.14290619552139 + ], + [ + -87.98735810388922, + 64.188446031658 + ], + [ + -88.7366638330939, + 63.9683227449488 + ], + [ + -89.2852783222293, + 64.13929747873279 + ], + [ + -89.03555295977979, + 63.946586588002916 + ], + [ + -89.7269439842153, + 64.04748534662419 + ], + [ + -89.80326080309979, + 64.22248842740201 + ], + [ + -90.11784362385919, + 64.12594603848041 + ], + [ + -89.82604216150003, + 63.924159987339756 + ], + [ + -89.94514465338719, + 63.91110228672447 + ], + [ + -89.9549255264446, + 63.97186277428428 + ], + [ + -90.27208712538949, + 64.00158688622541 + ], + [ + -89.96743775174761, + 63.814228072269266 + ], + [ + -90.2363891743321, + 63.60721589862034 + ], + [ + -90.93666078115659, + 63.565410606143644 + ], + [ + -93.66250612888419, + 64.0851287898042 + ], + [ + -93.77055356993249, + 63.95777128069799 + ], + [ + -93.52652737872012, + 63.84109879576398 + ], + [ + -93.334861747063, + 63.80902102151848 + ], + [ + -93.38999940803448, + 63.97165678777939 + ], + [ + -92.10374447915541, + 63.697978968828345 + ], + [ + -92.48083495636651, + 63.527214024377024 + ], + [ + -91.76972200610061, + 63.71457669877933 + ], + [ + -90.94554136354569, + 63.44026945421185 + ], + [ + -90.7419433802038, + 63.36082457900144 + ], + [ + -90.6274871948253, + 63.059432961160205 + ], + [ + -91.36151886624039, + 62.78805158924118 + ], + [ + -92.41152951477861, + 62.8344383096797 + ], + [ + -91.88479615099381, + 62.602909074840795 + ], + [ + -92.71000672607319, + 62.465827965568344 + ], + [ + -92.56916807724001, + 62.192836787506515 + ], + [ + -93.1222228863791, + 62.334991445227054 + ], + [ + -92.89820100976931, + 62.260967270546764 + ], + [ + -92.9683380030324, + 62.07721710968232 + ], + [ + -93.30444333095869, + 61.8847160082851 + ], + [ + -93.6161041395158, + 61.93998717155921 + ], + [ + -93.2555694459129, + 61.742492669189886 + ], + [ + -93.9850006176084, + 61.45513152683461 + ], + [ + -93.9363861315123, + 61.29582974578566 + ], + [ + -94.80387879300619, + 60.00597002426137 + ], + [ + -94.81916806210701, + 59.63638304483314 + ], + [ + -94.68055723654979, + 59.35721590159624 + ], + [ + -94.78971861804541, + 59.092216481357305 + ], + [ + -94.252227803505, + 58.64999387795679 + ], + [ + -94.36332701384903, + 58.21887968022143 + ], + [ + -94.1438903680289, + 58.76361084838597 + ], + [ + -93.1538924904426, + 58.739021302993564 + ], + [ + -92.4486084108887, + 57.43777084465072 + ], + [ + -92.51445005255239, + 57.023605331775954 + ], + [ + -90.82472229824471, + 57.25652311732309 + ], + [ + -88.81500243113099, + 56.82444000516347 + ], + [ + -87.97916410477079, + 56.43957522273652 + ], + [ + -87.5486145117241, + 56.049995394807816 + ], + [ + -85.56305694806319, + 55.554435711772314 + ], + [ + -85.2256927689036, + 55.3647155722378 + ], + [ + -85.4199676589871, + 54.99908831604766 + ], + [ + -85.0019531082101, + 55.29666137622757 + ], + [ + -82.30776975889047, + 55.14888003147217 + ], + [ + -82.2211151255343, + 54.787498459645846 + ], + [ + -82.44166565418301, + 54.33082580209405 + ], + [ + -82.1319427320928, + 53.8177719012671 + ], + [ + -82.11486054492978, + 53.29249571194631 + ], + [ + -82.2738952637548, + 52.95638277836448 + ], + [ + -81.5533981445117, + 52.44887921992376 + ], + [ + -81.7629242177995, + 52.237419120615336 + ], + [ + -80.9913864083348, + 52.00971604909335 + ], + [ + -80.43818663079111, + 51.466377234464716 + ], + [ + -81.0091705053168, + 51.0334663158393 + ], + [ + -80.40534973145411, + 51.33520128293442 + ], + [ + -80.1251297234889, + 51.29708098819792 + ], + [ + -79.3459396450089, + 50.734954821475995 + ], + [ + -79.75118257153322, + 51.18228151118412 + ], + [ + -79.66860963999719, + 51.39860536960815 + ], + [ + -79.3269577148939, + 51.66234968382303 + ], + [ + -78.96333310848028, + 51.35332486872413 + ], + [ + -78.7791747774338, + 51.474990869867135 + ], + [ + -78.9809646890208, + 51.800689701947235 + ], + [ + -78.5794525094072, + 52.11138153846154 + ], + [ + -78.50709535614219, + 52.45749285532626 + ], + [ + -78.88138579973308, + 52.899856566684875 + ], + [ + -79.1194458151031, + 54.07860566938173 + ], + [ + -79.4252776953296, + 54.282356284402326 + ], + [ + -79.5249328716474, + 54.59012605109583 + ], + [ + -79.7618103228141, + 54.65165712984933 + ], + [ + -77.7486114444651, + 55.30082702835208 + ], + [ + -76.6797867088018, + 56.03644943415244 + ], + [ + -76.5316696204481, + 56.318744633715035 + ], + [ + -76.53138734691308, + 57.09186551429099 + ], + [ + -76.8619384720069, + 57.719154345061604 + ], + [ + -77.46083832910001, + 58.19985200093597 + ], + [ + -78.5729904102508, + 58.62887954097188 + ], + [ + -78.5640258775575, + 58.9631156638057 + ], + [ + -78.33833311908589, + 58.9127654749197 + ], + [ + -77.6797180335057, + 59.39929580433374 + ], + [ + -77.9097900362621, + 59.41186524490944 + ], + [ + -77.76778409215531, + 59.709854138545545 + ], + [ + -77.50233461301002, + 59.67821501472286 + ], + [ + -77.4274902375193, + 59.91471097312066 + ], + [ + -76.7588958980323, + 60.15915680061708 + ], + [ + -77.5922241275815, + 60.06415559408215 + ], + [ + -77.4719467347652, + 60.2151298737101 + ], + [ + -77.82917020250409, + 60.64242171095621 + ], + [ + -77.5189285401332, + 60.83283995748206 + ], + [ + -78.1799240230497, + 60.78794480981324 + ], + [ + -77.5172271780307, + 61.53971863186779 + ], + [ + -77.99777986550029, + 61.7215194977818 + ], + [ + -78.1532668917156, + 62.28006363120694 + ], + [ + -77.508346538023, + 62.56166078139697 + ], + [ + -75.709732070099, + 62.296386693278436 + ], + [ + -75.8889541578277, + 62.16151808073393 + ], + [ + -75.3147201331569, + 62.31068803381606 + ], + [ + -74.5716705166037, + 62.103050237378234 + ], + [ + -74.75688171237859, + 62.20585634460704 + ], + [ + -73.68346402503272, + 62.47998808291067 + ], + [ + -72.6219406034751, + 62.11207578817182 + ], + [ + -72.5888824487035, + 61.92141721445391 + ], + [ + -72.0100555299688, + 61.67527008247362 + ], + [ + -72.3034667984707, + 61.56853484748479 + ], + [ + -71.9735412385473, + 61.605064407836 + ], + [ + -71.92887881241509, + 61.70582580370838 + ], + [ + -71.5733413802304, + 61.60707852371439 + ], + [ + -71.8801727127406, + 61.42651749489468 + ], + [ + -71.38999938954791, + 61.137771604659044 + ], + [ + -70.14847562579409, + 61.08457563298214 + ], + [ + -69.92749024955019, + 60.807769757705316 + ], + [ + -69.5134429700483, + 61.066066751595834 + ], + [ + -69.37026978828669, + 60.807769757705316 + ], + [ + -69.7100677772273, + 60.67922593918701 + ], + [ + -69.7781219732374, + 60.476028462752815 + ], + [ + -69.6308288309033, + 60.06638335973977 + ], + [ + -70.94583129402501, + 60.063049316909066 + ], + [ + -69.7229156308914, + 59.96166229824788 + ], + [ + -69.6005554408222, + 59.83305360118268 + ], + [ + -69.54083249144229, + 59.67110441819225 + ], + [ + -69.74607087640501, + 59.31137845929782 + ], + [ + -69.23805238051139, + 59.231792476129336 + ], + [ + -69.5524978385218, + 58.805824253425996 + ], + [ + -69.8638839791995, + 59.0509643274671 + ], + [ + -69.8158264345177, + 58.82388307590612 + ], + [ + -70.1562499886286, + 58.769298553521175 + ], + [ + -69.81597140292229, + 58.588878632659565 + ], + [ + -69.279174777308, + 58.88804628767131 + ], + [ + -68.3586044351288, + 58.7701301628149 + ], + [ + -68.20403291089279, + 58.44221117073298 + ], + [ + -68.34666442016989, + 58.12617111789095 + ], + [ + -69.13111115901759, + 57.89818951804293 + ], + [ + -69.363647451796, + 57.767768831157916 + ], + [ + -68.4105606273298, + 58.037078871925864 + ], + [ + -68.0082016271113, + 58.57499692840598 + ], + [ + -67.8618011697899, + 58.32540892870536 + ], + [ + -68.1181488111115, + 58.07596589740943 + ], + [ + -67.8084716958105, + 58.30277253870976 + ], + [ + -67.7775039439474, + 58.46853255846868 + ], + [ + -67.5851440657455, + 58.20804980288224 + ], + [ + -66.62971498745809, + 58.50360868956515 + ], + [ + -66.3886108660666, + 58.850547812895776 + ], + [ + -65.939018267186, + 58.61131283897808 + ], + [ + -66.05888368699249, + 58.32027436215676 + ], + [ + -65.8799896219694, + 58.627212519556494 + ], + [ + -66.1026382168008, + 58.77235412564458 + ], + [ + -65.6519470040212, + 59.079162583569506 + ], + [ + -65.549575802006, + 59.48811338241945 + ], + [ + -64.98943327092158, + 59.37443545150831 + ], + [ + -65.4158325383923, + 59.51318738502372 + ], + [ + -65.5277862326154, + 59.71693419721657 + ], + [ + -64.8447875881476, + 60.3611373721606 + ], + [ + -64.57667543813119, + 60.32276914457629 + ], + [ + -64.74537659946849, + 60.230751025962704 + ], + [ + -64.41223142725948, + 60.15370175939989 + ], + [ + -64.75464628028202, + 59.99080659418918 + ], + [ + -64.1655502284501, + 60.02152249513958 + ], + [ + -64.25806427037779, + 59.76068878464358 + ], + [ + -63.7255515878794, + 59.516101849189134 + ], + [ + -64.06047821204879, + 59.38596343583885 + ], + [ + -63.3596534666377, + 59.1993636893559 + ], + [ + -64.04402159005598, + 59.01818850384906 + ], + [ + -63.128051747596295, + 59.04617311017253 + ], + [ + -63.264450076425696, + 58.98554992774288 + ], + [ + -62.8463859736504, + 58.68776702061159 + ], + [ + -63.58100892716709, + 58.30172727963687 + ], + [ + -63.2416687180255, + 58.46638488266909 + ], + [ + -62.5569457792513, + 58.480266586922674 + ], + [ + -62.603752135973906, + 58.254161855441346 + ], + [ + -63.33528137385219, + 57.98012922113453 + ], + [ + -62.45062257489091, + 58.16849515064823 + ], + [ + -62.31048583587659, + 58.037837997017355 + ], + [ + -62.451583883659524, + 57.96796034508543 + ], + [ + -62.1218032921406, + 57.96527099680114 + ], + [ + -61.88486102004579, + 57.63311767122013 + ], + [ + -62.52694319660319, + 57.48860549074872 + ], + [ + -61.89138794013029, + 57.41193391412701 + ], + [ + -61.80263898580058, + 57.36249542439262 + ], + [ + -62.0133361571898, + 57.24752810438889 + ], + [ + -61.36111448939142, + 57.09235383194946 + ], + [ + -61.8702774059732, + 56.72693636509185 + ], + [ + -61.654304502458686, + 56.63804624518544 + ], + [ + -62.5454215977486, + 56.83596418666636 + ], + [ + -61.657249446864796, + 56.52575300453625 + ], + [ + -62.136806484878605, + 56.45082473635985 + ], + [ + -61.74147032805868, + 56.29971695442955 + ], + [ + -62.008960715732705, + 56.23547745563424 + ], + [ + -61.408191653547014, + 56.21610262426702 + ], + [ + -61.328056334619795, + 55.96415710181561 + ], + [ + -60.3327751192525, + 55.78131103444719 + ], + [ + -60.51222226524349, + 55.12054441262078 + ], + [ + -60.104808788334296, + 55.233604441635585 + ], + [ + -60.28989789028989, + 55.027248371016476 + ], + [ + -59.77763745524179, + 55.32944106029199 + ], + [ + -59.7351341133926, + 55.19700239708208 + ], + [ + -59.96583559938431, + 55.11471559952738 + ], + [ + -59.43187334807738, + 55.13544083808777 + ], + [ + -59.9409294397697, + 54.75034333412417 + ], + [ + -59.15638353930651, + 55.23387910951509 + ], + [ + -59.38360975927221, + 54.98120119700376 + ], + [ + -59.03354263723441, + 55.15589140876879 + ], + [ + -58.904167151803485, + 54.84471131221466 + ], + [ + -57.349685642362786, + 54.574958818195846 + ], + [ + -57.62555314107488, + 54.382633223062555 + ], + [ + -58.17888642092119, + 54.35457993536473 + ], + [ + -58.6324997035217, + 54.03527071823883 + ], + [ + -60.082778949369995, + 53.762496935165224 + ], + [ + -60.2052040179859, + 53.57891847773688 + ], + [ + -60.856948834227815, + 53.792770382865015 + ], + [ + -60.19043729199369, + 53.515449512516504 + ], + [ + -60.4077758716311, + 53.267215722836994 + ], + [ + -59.076950072579585, + 53.68180081437732 + ], + [ + -58.55027772689519, + 54.009162922663506 + ], + [ + -57.79694365069649, + 54.07509231745922 + ], + [ + -58.417011257219286, + 54.14027025043772 + ], + [ + -58.177780143748016, + 54.23693847838782 + ], + [ + -57.42833710941302, + 54.182495121579734 + ], + [ + -57.0803108382853, + 53.8234672696765 + ], + [ + -57.451385472418394, + 53.61804583041269 + ], + [ + -57.3055534226133, + 53.50048066046588 + ], + [ + -57.0147247351247, + 53.711380015532214 + ], + [ + -56.6608276469422, + 53.72054292907489 + ], + [ + -55.7458343245623, + 53.24943542868279 + ], + [ + -55.91930388622762, + 53.025825525082865 + ], + [ + -55.80582808137521, + 52.83103563992757 + ], + [ + -56.06082917595008, + 52.76610563979699 + ], + [ + -55.7634773135862, + 52.61124417875186 + ], + [ + -56.487739578045904, + 52.59429169106347 + ], + [ + -55.6455879237616, + 52.432872772074354 + ], + [ + -56.18985750929931, + 52.43696974282436 + ], + [ + -55.70722196695811, + 52.24832914543125 + ], + [ + -55.69930649616551, + 52.08526994005844 + ], + [ + -56.951595316330504, + 51.42457580243443 + ], + [ + -57.7394409189371, + 51.47165682703653 + ], + [ + -58.6243019015755, + 51.27638242705071 + ], + [ + -58.95874787136059, + 50.998325363814715 + ], + [ + -59.0129203631171, + 50.7513847084371 + ], + [ + -60.00500489840281, + 50.24887846903317 + ], + [ + -61.720832842630294, + 50.091934210735204 + ], + [ + -61.85680387190161, + 50.225543972046395 + ], + [ + -62.74694824993949, + 50.2847213884953 + ], + [ + -66.44902800437269, + 50.2677726460163 + ], + [ + -67.14194488464669, + 49.816936464831976 + ], + [ + -67.3720779631221, + 49.32999422002687 + ], + [ + -68.5905609119074, + 49.05416106200218 + ], + [ + -69.67832949178928, + 48.14082715538194 + ], + [ + -69.96833037281189, + 48.27193834360255 + ], + [ + -71.0395813126007, + 48.44387818898296 + ], + [ + -69.732498180718, + 48.10756301410544 + ], + [ + -70.2261123716308, + 47.497425051872135 + ], + [ + -71.29916383513739, + 46.74221802537192 + ], + [ + -70.506958002385, + 47.020271285779934 + ], + [ + -69.45056154172039, + 47.979156500717245 + ], + [ + -68.2022247239007, + 48.63985444116915 + ], + [ + -66.2250061277629, + 49.20082852392866 + ], + [ + -64.8255615280127, + 49.18776702048546 + ], + [ + -64.21166994428341, + 48.88499071238247 + ], + [ + -64.157630897211, + 48.75985716610595 + ], + [ + -64.53041841716728, + 48.87370299762534 + ], + [ + -64.1654815470756, + 48.62776565497774 + ], + [ + -64.24638365436849, + 48.48804474941965 + ], + [ + -65.30583188432868, + 48.00555417548305 + ], + [ + -65.8965377999221, + 48.20249173643795 + ], + [ + -66.8437041977165, + 47.99665071850875 + ], + [ + -66.3554077428904, + 48.07027052583485 + ], + [ + -65.793609598874, + 47.890830985499335 + ], + [ + -65.6315307740274, + 47.62193677818745 + ], + [ + -64.803886389167, + 47.80818556976102 + ], + [ + -64.67492673719241, + 47.724853513133525 + ], + [ + -64.9100036646412, + 47.35305023414974 + ], + [ + -65.3661803988789, + 47.08547975661783 + ], + [ + -64.8020858654491, + 47.08152389382624 + ], + [ + -64.90430449340403, + 46.84596631199303 + ], + [ + -64.5041809221172, + 46.24027253021014 + ], + [ + -63.82625582609771, + 46.14513396092632 + ], + [ + -64.09388732172991, + 46.02165983040983 + ], + [ + -63.31361389828069, + 45.73693848434022 + ], + [ + -62.67778017110061, + 45.76416016274441 + ], + [ + -62.46194457271651, + 45.6124954393995 + ], + [ + -61.92301940067861, + 45.84117128579222 + ], + [ + -61.78778076146718, + 45.63790893081152 + ], + [ + -61.4687462122207, + 45.68068694054003 + ], + [ + -61.26000213860971, + 45.51027681144453 + ], + [ + -61.46055601593, + 45.34527205633073 + ], + [ + -60.970275867847796, + 45.26971436253773 + ], + [ + -63.634861001873595, + 44.43637846971443 + ], + [ + -63.93194580201371, + 44.513603184922815 + ], + [ + -63.90860750219911, + 44.67804719579452 + ], + [ + -64.20083620649781, + 44.57638550925382 + ], + [ + -64.6688918799755, + 43.98832705322063 + ], + [ + -65.4969482378457, + 43.49082948371843 + ], + [ + -65.7212448399535, + 43.500686643805714 + ], + [ + -65.9178390516543, + 43.82561874513872 + ], + [ + -66.1216583480495, + 43.76221465846511 + ], + [ + -66.1891632083008, + 44.15623855160694 + ], + [ + -65.85156250477681, + 44.581104299964906 + ], + [ + -66.19485471626369, + 44.41804503697362 + ], + [ + -66.10305785308479, + 44.50000000899484 + ], + [ + -64.7108306747548, + 45.18387601192692 + ], + [ + -64.42610166541121, + 45.26208116528 + ], + [ + -64.21569823365903, + 45.107078538658214 + ], + [ + -63.369613648786796, + 45.359855670403306 + ], + [ + -64.93534086902308, + 45.331729898503326 + ], + [ + -64.27430724259139, + 45.80582809247194 + ], + [ + -64.47833252549148, + 45.75054932354231 + ], + [ + -64.7508315830671, + 46.08665845429633 + ], + [ + -64.58306885591308, + 45.82694242945683 + ], + [ + -64.78201292709068, + 45.610271476569814 + ], + [ + -65.8868102816909, + 45.20832825218892 + ], + [ + -66.0689849770998, + 45.29282380126213 + ], + [ + -65.9999313288061, + 45.459228515567425 + ], + [ + -66.1918716283426, + 45.33131026221931 + ], + [ + -66.1472320767957, + 45.19221497945002 + ], + [ + -66.4277801650852, + 45.0849914268027 + ], + [ + -67.1869354487217, + 45.19221497945002 + ], + [ + -66.9708328457323, + 44.82791139542133 + ], + [ + -67.1899948236729, + 44.660266901640114 + ], + [ + -68.0594711208043, + 44.35179902795562 + ], + [ + -68.321151709524, + 44.46588132622061 + ], + [ + -68.81319429542769, + 44.330272660342224 + ], + [ + -68.8109435975663, + 44.522266372323514 + ], + [ + -69.2483367825383, + 43.93804168526282 + ], + [ + -69.3699951204073, + 44.046943667808826 + ], + [ + -69.54071806089719, + 43.87457658048872 + ], + [ + -70.1725006241165, + 43.78054809120594 + ], + [ + -70.7375946098299, + 43.07802584413851 + ], + [ + -70.80596922289008, + 42.715896613322734 + ], + [ + -70.58180998353129, + 42.65283581828423 + ], + [ + -71.0395126312262, + 42.304851551118055 + ], + [ + -70.7176437652908, + 42.21387863395865 + ], + [ + -70.3329162879942, + 41.71388243374726 + ], + [ + -70.01930998731449, + 41.79256438103824 + ], + [ + -70.2440185624321, + 42.073947881449236 + ], + [ + -70.07417298040659, + 42.05887986778314 + ], + [ + -69.93540952317069, + 41.67249677755455 + ], + [ + -70.6486129915823, + 41.53944015482993 + ], + [ + -70.72610471139579, + 41.727767940828656 + ], + [ + -71.1883239661246, + 41.46832278104073 + ], + [ + -71.11485293003089, + 41.789508808914725 + ], + [ + -71.2713928209747, + 41.65304565915723 + ], + [ + -71.38944244813361, + 41.80669401813964 + ], + [ + -71.51167299634659, + 41.36999127688454 + ], + [ + -72.9063873392838, + 41.286109942116866 + ], + [ + -73.9341583019064, + 40.79804995403666 + ], + [ + -73.8661041058962, + 41.08915711223248 + ], + [ + -73.9512786902031, + 41.30443571158343 + ], + [ + -73.90417479101579, + 40.95943453233846 + ], + [ + -74.2591705507159, + 40.52221679601177 + ], + [ + -73.9563903821664, + 40.398185724080776 + ], + [ + -74.0737686373658, + 39.84621431752968 + ], + [ + -74.0455475066781, + 40.05297850071217 + ], + [ + -74.1687088258003, + 39.70027158238859 + ], + [ + -74.82083127436469, + 38.971935279382905 + ], + [ + -74.96444702461419, + 38.93332292177861 + ], + [ + -74.89493559652139, + 39.1690216115699 + ], + [ + -75.54277041437919, + 39.500549314362004 + ], + [ + -75.4527816805739, + 39.75680159689598 + ], + [ + -75.1375656313701, + 39.87394713055879 + ], + [ + -75.0285186804195, + 40.01230622044048 + ], + [ + -75.40972139731029, + 39.821941386359384 + ], + [ + -75.58860779905919, + 39.6488799948761 + ], + [ + -75.5721588403405, + 39.452907545517796 + ], + [ + -75.0445785407137, + 38.417213448828214 + ], + [ + -75.9608307143269, + 37.15221402251087 + ], + [ + -75.93055726662719, + 37.57610319317064 + ], + [ + -75.6440429448768, + 37.96117401972106 + ], + [ + -75.8785323930517, + 37.94755937769124 + ], + [ + -75.8463515967445, + 38.39877699402572 + ], + [ + -76.03750609377651, + 38.22665403672592 + ], + [ + -76.3421554674184, + 38.688255331939914 + ], + [ + -76.255172753738, + 38.84103393811341 + ], + [ + -76.10443880130231, + 38.799091340506415 + ], + [ + -76.26014708295232, + 39.15367126675041 + ], + [ + -76.1683349508436, + 39.316520682790404 + ], + [ + -75.83535001596888, + 39.57193755320291 + ], + [ + -76.5827789344256, + 39.24207687182611 + ], + [ + -76.3938904041847, + 39.0110358970269 + ], + [ + -76.5375060968156, + 38.7316589068388 + ], + [ + -76.3785705396059, + 38.36520384418263 + ], + [ + -76.67916108601291, + 38.66252516868711 + ], + [ + -76.66346739193928, + 38.474712377759914 + ], + [ + -76.3123474051732, + 38.04730224952243 + ], + [ + -77.04444885339551, + 38.43832018015774 + ], + [ + -77.2437438794826, + 38.398258196126406 + ], + [ + -77.0061187693263, + 38.75499726427202 + ], + [ + -77.0168075387075, + 38.86429975372582 + ], + [ + -77.06169127789289, + 38.904571527089615 + ], + [ + -77.32000734354091, + 38.34526826857323 + ], + [ + -77.06874846197869, + 38.37901686706172 + ], + [ + -76.2436141739294, + 37.90610123729626 + ], + [ + -76.3536071647188, + 37.618598929364154 + ], + [ + -77.0545119999878, + 38.16068269558724 + ], + [ + -77.1298904423076, + 38.169120767106925 + ], + [ + -76.2906951985315, + 37.56860735866194 + ], + [ + -76.2394409161494, + 37.37346265815087 + ], + [ + -76.37401578905701, + 37.28890228814955 + ], + [ + -76.682769796723, + 37.429718004778856 + ], + [ + -76.2677154592819, + 37.086311362746855 + ], + [ + -76.3897247520603, + 36.973320015106566 + ], + [ + -76.6538848997314, + 37.226936361801165 + ], + [ + -76.99027250119249, + 37.31290815709585 + ], + [ + -77.2322235008076, + 37.29638671417497 + ], + [ + -76.71665956078839, + 37.14749142897217 + ], + [ + -76.4774932682452, + 36.90526581909649 + ], + [ + -75.98728940719309, + 36.90922928754369 + ], + [ + -75.5326461920681, + 35.80152132922463 + ], + [ + -75.9453048632433, + 36.71242142606378 + ], + [ + -75.8995819091084, + 36.49277113046478 + ], + [ + -76.0347289923602, + 36.496658311881994 + ], + [ + -75.79315187985861, + 36.07384874098262 + ], + [ + -76.1507721092962, + 36.25867464116072 + ], + [ + -76.07096861590229, + 36.149295807058294 + ], + [ + -76.6597900574734, + 36.03311918781962 + ], + [ + -76.7461013991943, + 36.228183740854206 + ], + [ + -76.72951507772669, + 35.93984988124681 + ], + [ + -75.8508300602634, + 35.97526930397853 + ], + [ + -75.72083281249, + 35.814506545637826 + ], + [ + -75.74076078244389, + 35.618465414905025 + ], + [ + -76.149169908809, + 35.33693694608936 + ], + [ + -77.0495834199441, + 35.526939416777545 + ], + [ + -76.4688873537356, + 35.27165985149556 + ], + [ + -76.7613983315692, + 34.98777005710125 + ], + [ + -77.0681609827049, + 35.149780258191946 + ], + [ + -76.93180085500912, + 34.96957398710946 + ], + [ + -76.2924957222494, + 34.93693541100327 + ], + [ + -76.50062558155491, + 34.73617174435027 + ], + [ + -77.38571928572989, + 34.61260225504597 + ], + [ + -78.0259704583285, + 33.8893661779017 + ], + [ + -78.6005554379087, + 33.87082670103744 + ], + [ + -79.27139281198279, + 33.37332152587956 + ], + [ + -79.2058410495096, + 33.16554262148346 + ], + [ + -79.3883361619686, + 33.00819013538475 + ], + [ + -80.46500394184089, + 32.317493415112715 + ], + [ + -80.7664032229564, + 32.2847213943225 + ], + [ + -81.4595947134913, + 30.942218782089594 + ], + [ + -81.2552795514007, + 29.79666519691347 + ], + [ + -80.55249024210949, + 28.524997684934785 + ], + [ + -80.4864578252519, + 27.940176011530923 + ], + [ + -80.6031951887327, + 28.608608269888073 + ], + [ + -80.84361266923501, + 28.78096959534786 + ], + [ + -80.03533937053268, + 26.795690560012915 + ], + [ + -80.13612364099029, + 25.905551886216685 + ], + [ + -80.4211120492836, + 25.249856969043346 + ], + [ + -81.1466751113194, + 25.160411809136352 + ], + [ + -81.1175384786523, + 25.282638554521633 + ], + [ + -80.91784669086661, + 25.246871922089632 + ], + [ + -81.34090425223239, + 25.809719070387985 + ], + [ + -81.8004150293007, + 26.09999657832247 + ], + [ + -81.915092470114, + 26.51961517338193 + ], + [ + -81.78593443729001, + 26.70690346216813 + ], + [ + -82.06694791103389, + 26.55437278884233 + ], + [ + -82.01722714776449, + 26.964717842641797 + ], + [ + -82.1919402917335, + 26.938049302824286 + ], + [ + -82.1588897426175, + 26.782878890831213 + ], + [ + -82.39639281657311, + 26.96235657468171 + ], + [ + -82.6552734292911, + 27.46166227355758 + ], + [ + -82.424163830736, + 27.91943930686853 + ], + [ + -82.6912460482279, + 28.029857638183607 + ], + [ + -82.5950698831455, + 27.82187268966393 + ], + [ + -82.7247238392835, + 27.658050556372036 + ], + [ + -82.85416414564249, + 27.85860823652013 + ], + [ + -82.62888336018081, + 28.849580790390934 + ], + [ + -82.80278016378561, + 29.154994993365907 + ], + [ + -83.0716705106511, + 29.2244377400843 + ], + [ + -84.01097871054401, + 30.097637178470737 + ], + [ + -85.30659487619639, + 29.699995067549576 + ], + [ + -85.6636200207047, + 30.246105221734055 + ], + [ + -85.872222928739, + 30.21693799358885 + ], + [ + -86.2600021177127, + 30.495828625150914 + ], + [ + -86.9266662340068, + 30.399162298614723 + ], + [ + -87.1608352651318, + 30.517774571429726 + ], + [ + -87.3066559064535, + 30.321384444819845 + ], + [ + -87.5225601285935, + 30.279293075980338 + ], + [ + -87.3408355497094, + 30.43457791851863 + ], + [ + -87.4203949130834, + 30.48094556719971 + ], + [ + -87.56861876870802, + 30.279441847212738 + ], + [ + -87.73361205771991, + 30.234992955622523 + ], + [ + -88.0213546928442, + 30.225479144788963 + ], + [ + -87.7577133430724, + 30.28242873796164 + ], + [ + -88.0202789535304, + 30.701106997424006 + ], + [ + -88.13145445090447, + 30.318954495485226 + ], + [ + -88.9808349350922, + 30.41832734064942 + ], + [ + -89.59312437595278, + 30.153259296654348 + ], + [ + -90.2362518115831, + 30.376523949586545 + ], + [ + -90.4279098375846, + 30.178606008105632 + ], + [ + -90.34973141926329, + 30.06166455953397 + ], + [ + -89.8277893303918, + 30.03291512387734 + ], + [ + -89.6256942706845, + 29.873397849254175 + ], + [ + -89.3994445707987, + 30.050830821748058 + ], + [ + -89.4041748276116, + 29.762496962140872 + ], + [ + -89.7527160361923, + 29.632980368751884 + ], + [ + -89.0093154647296, + 29.196382550972537 + ], + [ + -89.1538848604735, + 29.039997077884227 + ], + [ + -90.18249509566421, + 29.569858555613187 + ], + [ + -90.0265274150645, + 29.425134684395303 + ], + [ + -90.1358337649646, + 29.126384706635115 + ], + [ + -90.4444427466075, + 29.32610703228041 + ], + [ + -90.8783264401035, + 29.128746032213915 + ], + [ + -91.27791594456129, + 29.25583267626823 + ], + [ + -91.11444090573241, + 29.32541462953092 + ], + [ + -91.89916991811509, + 29.836109163811376 + ], + [ + -92.14862061268519, + 29.768886577094985 + ], + [ + -92.0997314587097, + 29.615550971888496 + ], + [ + -92.2732009627564, + 29.54096985579388 + ], + [ + -93.66777039490748, + 29.763885512849175 + ], + [ + -93.79666136550779, + 29.994159699282655 + ], + [ + -94.06834414033791, + 29.67416384126747 + ], + [ + -94.61999512983918, + 29.461940756421292 + ], + [ + -94.7570190238389, + 29.784997948420077 + ], + [ + -95.06006619699349, + 29.715063081215494 + ], + [ + -94.8938980070526, + 29.33777618218761 + ], + [ + -95.3031921551562, + 28.931524296310247 + ], + [ + -96.2120132575703, + 28.488119128706593 + ], + [ + -96.0723647785959, + 28.573884937496473 + ], + [ + -96.19207762434232, + 28.695480355851256 + ], + [ + -96.39411160833059, + 28.736188878224144 + ], + [ + -96.4319381634302, + 28.59930228935486 + ], + [ + -96.6447295981742, + 28.71193887925798 + ], + [ + -96.39997101690201, + 28.441730506854093 + ], + [ + -96.88276673895878, + 28.1402740680846 + ], + [ + -97.1693725590505, + 28.161800378079388 + ], + [ + -97.0224991106189, + 28.031665825175594 + ], + [ + -97.19451144020161, + 27.821802164494205 + ], + [ + -97.5170898216114, + 27.863815287271116 + ], + [ + -97.27972411040491, + 27.656105064249445 + ], + [ + -97.4286728080524, + 27.396554923367365 + ], + [ + -97.7233276588579, + 27.39554976684206 + ], + [ + -97.473289485014, + 27.233482350478894 + ], + [ + -97.5604095614433, + 26.842081083279194 + ], + [ + -97.1375045741377, + 25.933193200904693 + ], + [ + -97.65167235779317, + 24.52027512470162 + ], + [ + -97.7413940293749, + 22.90583039630757 + ], + [ + -97.888267535425, + 22.59881785329179 + ], + [ + -97.6979217731014, + 21.974721899775076 + ], + [ + -97.3150100884526, + 21.556524294696995 + ], + [ + -97.4134750372929, + 21.271734209634428 + ], + [ + -97.7422333019428, + 22.012496943843676 + ], + [ + -97.17535400382259, + 20.683956125722293 + ], + [ + -96.44445038873309, + 19.854997633388688 + ], + [ + -96.2952880989253, + 19.341108320440348 + ], + [ + -95.91139223092239, + 18.825275416783388 + ], + [ + -95.1822280638321, + 18.701803187680728 + ], + [ + -94.46917722709922, + 18.146247846418575 + ], + [ + -92.0041732531419, + 18.726247764668525 + ], + [ + -91.8327865463481, + 18.472915650541452 + ], + [ + -91.49570464072339, + 18.435554480896446 + ], + [ + -91.1861877627568, + 18.650068308533015 + ], + [ + -91.42861175348189, + 18.851774212197096 + ], + [ + -90.7538910008183, + 19.320274355576657 + ], + [ + -90.6766738912655, + 19.768329632516693 + ], + [ + -90.4552764843933, + 19.975971231782363 + ], + [ + -90.33264923210021, + 21.027498229089574 + ], + [ + -88.45140075692129, + 21.5688857897351 + ], + [ + -87.24917604927938, + 21.441387172671007 + ], + [ + -87.1338272365068, + 21.557220442655716 + ], + [ + -87.41077421974168, + 21.528610213543416 + ], + [ + -87.0054245259465, + 21.579719527521 + ], + [ + -86.81556702366292, + 21.408607488606535 + ], + [ + -86.8264007614486, + 20.98777769289826 + ], + [ + -87.42556001749139, + 20.222776425824836 + ], + [ + -87.4758529911049, + 19.87055396471317 + ], + [ + -87.7366028089153, + 19.6775684637224 + ], + [ + -87.66639707665911, + 19.547775243421526 + ], + [ + -87.4122237885502, + 19.58166506510552 + ], + [ + -87.67694854090989, + 19.314998623451157 + ], + [ + -87.5483398438447, + 19.139442461705258 + ], + [ + -87.82806398611449, + 18.31083296524845 + ], + [ + -88.07333375963039, + 18.493610408860935 + ], + [ + -88.0397262691, + 18.86819269067499 + ], + [ + -88.21778872482929, + 18.69999695972111 + ], + [ + -88.31556703278031, + 18.36416624205567 + ], + [ + -88.09750366873881, + 18.373262433256254 + ], + [ + -88.07778929094539, + 18.21555328800646 + ], + [ + -88.2825012147346, + 17.623886121263237 + ], + [ + -88.2133407415513, + 16.962081903638317 + ], + [ + -88.36128998691511, + 16.501768096103156 + ], + [ + -88.34722903118832, + 16.602775581027856 + ], + [ + -88.91056824235439, + 15.893610024298537 + ], + [ + -88.61806487017628, + 15.69853970940378 + ], + [ + -88.4958419852374, + 15.849512087617638 + ], + [ + -88.13695524129231, + 15.682846072948857 + ], + [ + -87.70777893002399, + 15.921282741125047 + ], + [ + -87.47444917146699, + 15.784442880942661 + ], + [ + -86.40347289955761, + 15.767568581698452 + ], + [ + -85.9101486454539, + 15.955832468666532 + ], + [ + -86.011604287871, + 16.02162934067593 + ], + [ + -85.4961166348818, + 15.889026637304045 + ], + [ + -84.9969635100661, + 15.991277704532221 + ], + [ + -84.59917447170758, + 15.775553713381758 + ], + [ + -84.2601470739605, + 15.825970624609747 + ], + [ + -83.85556030808439, + 15.459999097268094 + ], + [ + -84.20951841436741, + 15.545658138787084 + ], + [ + -83.91133119750049, + 15.239513389547533 + ], + [ + -84.02770994279759, + 15.400901770677097 + ], + [ + -83.7583465472034, + 15.196664797030616 + ], + [ + -83.3934784161048, + 15.256387688791818 + ], + [ + -83.13185118221139, + 14.992979060556662 + ], + [ + -83.4191055572958, + 14.809443471368871 + ], + [ + -83.1869506996678, + 14.323888797755826 + ], + [ + -83.49389646272309, + 13.726664547249712 + ], + [ + -83.4784850998032, + 12.423888233068473 + ], + [ + -83.6327133324038, + 12.479581855938074 + ], + [ + -83.5370941087357, + 12.770693796477849 + ], + [ + -83.60292053908842, + 12.818192498331323 + ], + [ + -83.80042264711308, + 11.895833040917655 + ], + [ + -83.653442373792, + 11.602810870840282 + ], + [ + -83.87167358082351, + 11.337221148015825 + ], + [ + -83.41083527114719, + 10.396944033698936 + ], + [ + -82.3636169353365, + 9.407220823992064 + ], + [ + -82.24278260110569, + 9.002359390236759 + ], + [ + -81.8163909969093, + 8.945276237142819 + ], + [ + -81.88632966694159, + 9.173609713797815 + ], + [ + -81.50729369760799, + 8.79312325375812 + ], + [ + -80.83708955197831, + 8.87840178202436 + ], + [ + -79.53445434575501, + 9.620138155383147 + ], + [ + -78.03438565526301, + 9.228817957557693 + ], + [ + -77.3666686742403, + 8.674999240983063 + ], + [ + -77.4685821540751, + 8.471699722003553 + ], + [ + -77.19833373674228, + 7.999443998095625 + ], + [ + -77.5774383298318, + 7.526180294350832 + ], + [ + -77.7440338193309, + 7.7199993060492424 + ], + [ + -77.8897247035592, + 7.228888528189589 + ], + [ + -78.43278504748059, + 8.048887270173969 + ], + [ + -78.13413999319609, + 8.337531117864179 + ], + [ + -77.78527830994679, + 8.130277637506746 + ], + [ + -77.77917482897399, + 8.154998783787837 + ], + [ + -78.13909150544369, + 8.406970983652222 + ], + [ + -78.41306306403159, + 8.343609822837674 + ], + [ + -78.5072326612726, + 8.61694337063712 + ], + [ + -79.0676727348217, + 9.052887908698303 + ], + [ + -79.69778441617939, + 8.86666487264016 + ], + [ + -79.952789313582, + 8.450832338350095 + ], + [ + -80.47126005449239, + 8.215554264359156 + ], + [ + -79.9904250934878, + 7.518888487314546 + ], + [ + -80.436874367113, + 7.24458262559341 + ], + [ + -80.882507300374, + 7.220276851819672 + ], + [ + -81.058059716911, + 7.873332952223303 + ], + [ + -81.21792604502969, + 7.608263467763324 + ], + [ + -81.4969482198621, + 7.69861030118492 + ], + [ + -81.73861694594221, + 8.162498478742897 + ], + [ + -82.7216796756434, + 8.317220675625109 + ], + [ + -82.8988495039786, + 8.02566910514617 + ], + [ + -83.3440322630963, + 8.728055026599307 + ], + [ + -83.48042298627009, + 8.704546924762345 + ], + [ + -83.2794570783213, + 8.377637871549735 + ], + [ + -83.59556581253791, + 8.468332318001961 + ], + [ + -83.7358398566826, + 8.612499247805522 + ], + [ + -83.62646482540791, + 9.036457042220968 + ], + [ + -84.6186141816217, + 9.57944392242372 + ], + [ + -84.7475738335963, + 9.967151664329858 + ], + [ + -85.23625183880989, + 10.20736027739707 + ], + [ + -84.8972320467183, + 9.807498928371501 + ], + [ + -85.14222715235479, + 9.589443227604093 + ], + [ + -85.3450012472957, + 9.832777016066903 + ], + [ + -85.656677267164, + 9.904998765615375 + ], + [ + -85.8575134180192, + 10.369442962690048 + ], + [ + -85.63250730043701, + 10.621665976332409 + ], + [ + -85.9113922277575, + 10.891109461784371 + ], + [ + -85.6695861965471, + 11.054998375037043 + ], + [ + -87.68982699005201, + 12.91770743096992 + ], + [ + -87.58583831862008, + 13.050555243878097 + ], + [ + -87.3269501002466, + 12.926942828714926 + ], + [ + -87.51181028349339, + 13.277290322873663 + ], + [ + -87.3983383390874, + 13.412359217681356 + ], + [ + -87.8369522317777, + 13.436318415559354 + ], + [ + -87.9377899146801, + 13.156387307268474 + ], + [ + -88.22000122155701, + 13.158054328683786 + ], + [ + -88.5504303104501, + 13.273957259559278 + ], + [ + -88.7081680345268, + 13.260935801045072 + ], + [ + -88.5350646967007, + 13.199110003138365 + ], + [ + -89.82889554994641, + 13.576109903905921 + ], + [ + -90.4922332866841, + 13.900276196389491 + ], + [ + -91.38473512985429, + 13.978887560892074 + ], + [ + -92.2189025743528, + 14.521665573659822 + ], + [ + -93.2830657921963, + 15.540276503669888 + ], + [ + -94.1119537593603, + 16.175277699658306 + ], + [ + -94.3643798785774, + 16.2874984561052 + ], + [ + -94.4161224209993, + 16.200553885940003 + ], + [ + -94.0526428406088, + 16.047637917017322 + ], + [ + -94.47750853134811, + 16.18833159744609 + ], + [ + -94.8591766336934, + 16.427082056532893 + ], + [ + -95.58944702033838, + 15.938610095442938 + ], + [ + -96.55778502800881, + 15.656387322464079 + ], + [ + -97.7927856168873, + 15.972083104154429 + ], + [ + -98.78222655305929, + 16.553054817758664 + ], + [ + -99.6859817702993, + 16.706943503933243 + ], + [ + -100.910003652987, + 17.21749877405088 + ], + [ + -101.952789332069, + 17.978469850335 + ], + [ + -102.18099973538801, + 17.920829755826492 + ], + [ + -103.47834013772803, + 18.32930376073827 + ], + [ + -103.97194672298602, + 18.877220142882393 + ], + [ + -105.02250670728301, + 19.37194441379615 + ], + [ + -105.52778624527502, + 20.043888065043365 + ], + [ + -105.67536166114401, + 20.42416381385281 + ], + [ + -105.24472806017499, + 20.574649833440798 + ], + [ + -105.321807864597, + 20.765483855804096 + ], + [ + -105.53618623089801, + 20.792568229077776 + ], + [ + -105.24138641168801, + 21.064720134571647 + ], + [ + -105.18945315169101, + 21.437496188425918 + ], + [ + -105.650276192438, + 21.98124887747807 + ], + [ + -105.820426922584, + 22.66402436509718 + ], + [ + -107.025146458107, + 23.968053826270253 + ], + [ + -107.99549103361899, + 24.6490955125133 + ], + [ + -107.99000551216102, + 24.959510779734476 + ], + [ + -108.10417176072998, + 24.821941352803687 + ], + [ + -108.22126007912003, + 25.029441844111055 + ], + [ + -108.04251098250201, + 25.073608404547954 + ], + [ + -109.06833651062003, + 25.48722077883602 + ], + [ + -108.878341703206, + 25.670276635537103 + ], + [ + -108.834930407415, + 25.793607699063006 + ], + [ + -109.15390013573301, + 25.61319158102922 + ], + [ + -109.43749999331801, + 25.8202743374667 + ], + [ + -109.231666581045, + 26.319442731211964 + ], + [ + -109.10389709892901, + 26.283607475024066 + ], + [ + -109.444313047384, + 26.71555328205312 + ], + [ + -109.75389100107002, + 26.69610976931122 + ], + [ + -109.94904324961803, + 27.093469606697695 + ], + [ + -110.52971649886003, + 27.371108992682064 + ], + [ + -110.63459013441201, + 27.66235921786844 + ], + [ + -110.511360191533, + 27.854997624396216 + ], + [ + -111.103340169671, + 27.936943031729523 + ], + [ + -112.16194918468202, + 28.971387841873543 + ], + [ + -112.21347807732501, + 29.306108479538008 + ], + [ + -113.08139037510301, + 30.69888689504073 + ], + [ + -113.09167477713, + 31.229719188607874 + ], + [ + -113.589736951321, + 31.33166505009716 + ], + [ + -113.974693289707, + 31.65569305793427 + ], + [ + -114.02084348578201, + 31.49763681822136 + ], + [ + -114.217506436476, + 31.522220601753464 + ], + [ + -115.017242444424, + 31.954429610559828 + ], + [ + -114.78666685508, + 31.664165470141167 + ], + [ + -114.88069914719001, + 31.15166470790109 + ], + [ + -114.706390370576, + 30.927497862886696 + ], + [ + -114.556396471474, + 30.018608079098048 + ], + [ + -113.19493105850201, + 28.81381605937274 + ], + [ + -112.753059410011, + 27.837497702363123 + ], + [ + -112.34667206279902, + 27.54138567709355 + ], + [ + -111.85861207471801, + 26.661941534538737 + ], + [ + -111.68750764145902, + 26.600587863463325 + ], + [ + -111.844993572242, + 26.902080544333792 + ], + [ + -111.56188203231501, + 26.71965025280304 + ], + [ + -111.299728394867, + 25.780277231982 + ], + [ + -110.686256389803, + 24.89638712280047 + ], + [ + -110.691184969847, + 24.386873251309122 + ], + [ + -110.35417174559701, + 24.11583326961156 + ], + [ + -110.21000671720701, + 24.348194113744544 + ], + [ + -109.79972838575, + 24.012218485292962 + ], + [ + -109.682510367885, + 23.656665784178504 + ], + [ + -109.40750121349798, + 23.4612483748207 + ], + [ + -109.518753055521, + 23.124582302652247 + ], + [ + -109.99819186016202, + 22.881942760734173 + ], + [ + -110.31118774936301, + 23.56069186039189 + ], + [ + -112.087509176546, + 24.756107316795383 + ], + [ + -112.10014343804902, + 25.728054035175795 + ], + [ + -112.40068817766702, + 26.27610968148286 + ], + [ + -114.47549436418102, + 27.238054271371375 + ], + [ + -115.04389951814001, + 27.817775718914138 + ], + [ + -114.00598145862101, + 27.68680379485624 + ], + [ + -114.307640081067, + 27.86592481955561 + ], + [ + -114.15077971834302, + 28.019506455618625 + ] + ] + ], + [ + [ + [ + -38.61028289585629, + 82.74359131690856 + ], + [ + -38.5358352725663, + 82.82249450017206 + ], + [ + -39.147220617392385, + 82.97942351885258 + ], + [ + -37.2702789170848, + 83.00526429263452 + ], + [ + -38.797363267586896, + 83.0560913185722 + ], + [ + -36.87791441865218, + 83.1486053352345 + ], + [ + -38.678054813841506, + 83.20526122615385 + ], + [ + -38.8552780214302, + 83.24942778499913 + ], + [ + -38.856391903649, + 83.43165587456446 + ], + [ + -37.7961120557634, + 83.35914611649815 + ], + [ + -38.05860901449409, + 83.43136597535054 + ], + [ + -37.625831595374876, + 83.5041656637292 + ], + [ + -36.4380493027258, + 83.36109925103247 + ], + [ + -36.90083312528811, + 83.49247742624327 + ], + [ + -34.726104725824506, + 83.60137939384367 + ], + [ + -33.882774353710204, + 83.45248411616538 + ], + [ + -33.7470817430306, + 83.48317717211249 + ], + [ + -34.08153151871831, + 83.56401063259167 + ], + [ + -32.579170234677186, + 83.6235961786649 + ], + [ + -25.653402321282304, + 83.29047393115155 + ], + [ + -26.956108101054195, + 83.14360045325785 + ], + [ + -30.047500613703193, + 83.17137147315735 + ], + [ + -31.929164884781308, + 83.05165099681122 + ], + [ + -33.3877792205857, + 83.15054320045813 + ], + [ + -32.4722175454105, + 83.0438766474998 + ], + [ + -35.40694428727069, + 82.91110230996252 + ], + [ + -35.5509719823748, + 82.76138304927936 + ], + [ + -34.886947632679686, + 82.90637205788909 + ], + [ + -33.92444610622238, + 82.9033203104467 + ], + [ + -33.88194275159919, + 82.78887940817707 + ], + [ + -33.53694915926561, + 82.9452514546499 + ], + [ + -30.059444417777897, + 83.12553405988552 + ], + [ + -26.66500090120691, + 83.06080627023672 + ], + [ + -25.1883316162385, + 83.16331481263995 + ], + [ + -24.750835420352697, + 83.0037383878149 + ], + [ + -25.899028775320193, + 82.77609252668466 + ], + [ + -23.992774974278106, + 82.9116516008673 + ], + [ + -23.842222214482007, + 82.8951263505268 + ], + [ + -24.022224436611808, + 82.75721741961817 + ], + [ + -23.378887172914492, + 82.84887694575268 + ], + [ + -21.316389077595606, + 82.61095427877375 + ], + [ + -22.481666552113296, + 82.3308258065898 + ], + [ + -25.06888962599619, + 82.15248106657769 + ], + [ + -31.591388700649492, + 82.2083282438028 + ], + [ + -29.9081935923676, + 82.09526823454908 + ], + [ + -33.09833525605881, + 81.77388000135544 + ], + [ + -33.0183334287889, + 81.65637208233281 + ], + [ + -28.997219085562595, + 81.99443054657226 + ], + [ + -25.20249939074681, + 81.98651121655568 + ], + [ + -25.428333272945807, + 81.74803160846733 + ], + [ + -27.628471360276006, + 81.48901365799209 + ], + [ + -27.186388027118483, + 81.40596008327982 + ], + [ + -27.570972454135696, + 81.38970946284249 + ], + [ + -27.328613290497785, + 81.3808136122064 + ], + [ + -24.21055602106189, + 81.70832825979993 + ], + [ + -24.002223972019692, + 82.00971985350395 + ], + [ + -22.301391597082187, + 82.08442686848478 + ], + [ + -22.016944895425812, + 81.93304443467794 + ], + [ + -21.973609938691506, + 81.73304747006034 + ], + [ + -22.2311096345517, + 81.4658203214529 + ], + [ + -24.51166915976029, + 80.54081726764207 + ], + [ + -20.769168859204914, + 81.58055115403471 + ], + [ + -19.940834038607605, + 81.68304442712751 + ], + [ + -20.305557259633893, + 81.4510955747368 + ], + [ + -18.017223354015695, + 81.46804808589049 + ], + [ + -17.803333275891298, + 81.55026243938559 + ], + [ + -17.85958289741239, + 81.73151397723291 + ], + [ + -17.534725203169696, + 81.85359192941144 + ], + [ + -16.70055389848479, + 81.93193055245939 + ], + [ + -14.76805687936479, + 81.91831968796195 + ], + [ + -12.157639504892504, + 81.60067750491923 + ], + [ + -14.027223574347012, + 81.14193725082787 + ], + [ + -14.975276943190114, + 81.12831114811836 + ], + [ + -15.138958915582206, + 81.08464051533663 + ], + [ + -14.6505565794483, + 80.94692992997464 + ], + [ + -16.005001065629397, + 80.72859191098297 + ], + [ + -17.959163650565387, + 80.80525206049802 + ], + [ + -18.577777847801713, + 80.62525938557471 + ], + [ + -20.087501520749992, + 80.68719481947228 + ], + [ + -21.24888609850791, + 80.57158660794579 + ], + [ + -17.438610085963507, + 80.6296997073359 + ], + [ + -16.11923407514581, + 80.50693513375178 + ], + [ + -17.113887794121304, + 80.23692321740076 + ], + [ + -19.700832381900298, + 80.28581237811484 + ], + [ + -20.37333297162299, + 80.1224823151311 + ], + [ + -20.752361297658297, + 79.86235045133866 + ], + [ + -20.348888391265895, + 79.77276612092857 + ], + [ + -19.927497866210313, + 79.83137511528389 + ], + [ + -20.257225040029095, + 79.88136292000439 + ], + [ + -19.289443970593595, + 80.10331724665392 + ], + [ + -17.45076178279129, + 80.05657959711911 + ], + [ + -18.222499861611595, + 79.75498962677017 + ], + [ + -19.228611005804794, + 79.78887937976667 + ], + [ + -19.631389609488696, + 79.66137696610134 + ], + [ + -19.799999246549003, + 79.45796965847863 + ], + [ + -19.656387336951205, + 79.3502655076581 + ], + [ + -19.86458398359291, + 79.1519317472624 + ], + [ + -19.57361221724449, + 79.33110047027931 + ], + [ + -19.09166718240571, + 79.29998780372371 + ], + [ + -19.079444892227084, + 79.20249176240308 + ], + [ + -19.378334060491802, + 79.2749939013633 + ], + [ + -20.091110240400198, + 79.06359862957189 + ], + [ + -19.9147224289263, + 78.96415710392176 + ], + [ + -20.018058779436686, + 78.87719726014095 + ], + [ + -21.183609017954105, + 78.80727386207464 + ], + [ + -20.909860598658607, + 78.6212310882063 + ], + [ + -22.036945328919384, + 77.6856765675451 + ], + [ + -21.429531093310093, + 77.67485808989761 + ], + [ + -21.724998474361296, + 77.54914856075065 + ], + [ + -21.578334817321192, + 77.56414793736985 + ], + [ + -20.86639023952381, + 78.01527406106764 + ], + [ + -19.2399978687701, + 77.76304625798113 + ], + [ + -18.958747864163012, + 77.62990570577499 + ], + [ + -20.2569465539253, + 77.72915650498472 + ], + [ + -20.913887031915312, + 77.66609191955767 + ], + [ + -20.246803284573407, + 77.5580367922807 + ], + [ + -20.403888697069302, + 77.50721741654746 + ], + [ + -21.049583436598805, + 77.54484556949038 + ], + [ + -19.036388390498406, + 77.22526549012554 + ], + [ + -18.39583206944251, + 77.34275817093597 + ], + [ + -18.144721973677004, + 77.08749388971783 + ], + [ + -18.305278775322197, + 76.80609131639748 + ], + [ + -20.723052990927705, + 76.98831175575843 + ], + [ + -21.0336131992673, + 76.945808401135 + ], + [ + -20.580417633047794, + 76.921783462485 + ], + [ + -21.727914819403193, + 76.8816528219062 + ], + [ + -21.072776804236298, + 76.86499024106482 + ], + [ + -21.604999543009612, + 76.64471435684965 + ], + [ + -22.240554807191106, + 76.85720824154907 + ], + [ + -22.73888779296799, + 76.70443726452196 + ], + [ + -21.814445505369005, + 76.59027099215575 + ], + [ + -21.679164886191796, + 76.52193451395507 + ], + [ + -21.910945900558595, + 76.48182679289137 + ], + [ + -21.7221088428385, + 76.42097473368965 + ], + [ + -22.177194600446096, + 76.42414857342052 + ], + [ + -21.721942901816703, + 76.41181184115793 + ], + [ + -21.68222045873639, + 76.23915101652052 + ], + [ + -19.8058357306366, + 76.22859193056402 + ], + [ + -19.71611024462349, + 76.05970763250198 + ], + [ + -21.98152541250749, + 75.9905395521903 + ], + [ + -19.825000768015396, + 75.90914918170007 + ], + [ + -19.33680532948621, + 75.4020690888977 + ], + [ + -19.58861159386379, + 75.137908925945 + ], + [ + -19.89833450908659, + 75.14721679918198 + ], + [ + -20.135555254250892, + 75.3316650340788 + ], + [ + -20.685276032177196, + 75.29248046879349 + ], + [ + -21.501667017601406, + 75.54971312275812 + ], + [ + -22.251113893147707, + 75.66415405612605 + ], + [ + -21.406805041215108, + 75.4542999273665 + ], + [ + -22.511390675448595, + 75.530822746381 + ], + [ + -21.4150009292352, + 75.42359925231328 + ], + [ + -20.515003190894788, + 75.1408233739851 + ], + [ + -21.229721061129084, + 75.11192320255607 + ], + [ + -21.740413667585297, + 74.97650910907875 + ], + [ + -21.92888640763849, + 75.07832334877348 + ], + [ + -22.42583085019499, + 75.1591491590482 + ], + [ + -21.742496482415888, + 74.95359802154915 + ], + [ + -20.6388893280006, + 75.06192015962327 + ], + [ + -20.61555480475999, + 74.73081971189464 + ], + [ + -21.11736107668809, + 74.66026305726415 + ], + [ + -19.3927764960017, + 74.6847076376212 + ], + [ + -18.9781932846476, + 74.48345946028408 + ], + [ + -19.684997546969388, + 74.23748778299219 + ], + [ + -20.363334651878098, + 74.4430389515898 + ], + [ + -21.661109937027906, + 74.4472045812508 + ], + [ + -22.100555411247406, + 74.59664918093235 + ], + [ + -21.764169698436387, + 74.42248533989219 + ], + [ + -22.16305540536041, + 74.11276245576767 + ], + [ + -22.49152564435539, + 74.07637786533984 + ], + [ + -21.98624801437629, + 74.00032805287364 + ], + [ + -21.821666707574707, + 73.651092515424 + ], + [ + -21.706247325486892, + 73.69512177486689 + ], + [ + -21.914443972128595, + 74.01054381257815 + ], + [ + -21.748607627505102, + 74.05831909107354 + ], + [ + -20.27944564995259, + 73.87692260361914 + ], + [ + -20.5330581711572, + 73.7208251870496 + ], + [ + -20.3709716706885, + 73.52471160308379 + ], + [ + -20.5011139024904, + 73.45277405543736 + ], + [ + -21.560832984164392, + 73.47804258770088 + ], + [ + -22.379165659914502, + 73.25054932638213 + ], + [ + -23.506389617678106, + 73.44470215670766 + ], + [ + -24.032222756356706, + 73.70248413267579 + ], + [ + -22.6944427480189, + 73.54443358157181 + ], + [ + -22.185554501387703, + 73.62331390751682 + ], + [ + -22.7472190833886, + 73.56303405873508 + ], + [ + -24.02722549348619, + 73.81526183072323 + ], + [ + -24.7305526756529, + 73.56944275324291 + ], + [ + -25.688749313847893, + 73.95234680972553 + ], + [ + -24.6754169363506, + 73.518386843137 + ], + [ + -26.01250077607631, + 73.24220276665085 + ], + [ + -27.337501522027793, + 73.49247740410469 + ], + [ + -27.457916269984185, + 73.44206236966926 + ], + [ + -26.389720917184288, + 73.24866485709823 + ], + [ + -27.72833252763321, + 73.13179016354154 + ], + [ + -26.013614658295, + 73.19970703113385 + ], + [ + -25.051250462338608, + 73.08096313760382 + ], + [ + -25.1597213751219, + 72.92747496945141 + ], + [ + -26.02722549169401, + 72.78720091250598 + ], + [ + -26.7163886933563, + 72.87109373953363 + ], + [ + -27.38777732896041, + 72.84068299479262 + ], + [ + -26.305139540650586, + 72.72568512031529 + ], + [ + -26.46277617215169, + 72.57221984057969 + ], + [ + -25.566665639565304, + 72.8330535950883 + ], + [ + -24.8424987715894, + 72.71943664472532 + ], + [ + -24.6099300349432, + 72.52429199337115 + ], + [ + -25.907499324342, + 72.41540526398295 + ], + [ + -25.288335805102395, + 72.38304138470784 + ], + [ + -25.513057702084588, + 72.12025452676323 + ], + [ + -25.1936111592168, + 72.35775758313355 + ], + [ + -24.58833313437769, + 72.42109679846375 + ], + [ + -22.494441989397284, + 71.892761234346 + ], + [ + -23.129306807070904, + 71.62789153047235 + ], + [ + -22.42972181885451, + 71.79498291291767 + ], + [ + -22.636112208669207, + 71.57707977384524 + ], + [ + -21.8980541241886, + 71.73831175268766 + ], + [ + -22.540279402669096, + 71.48394011972483 + ], + [ + -22.471109394257088, + 71.26068877242372 + ], + [ + -21.8055572427405, + 71.50942991705014 + ], + [ + -21.607776629450388, + 71.32443236015014 + ], + [ + -21.683332443953294, + 71.15408326560981 + ], + [ + -22.32819365327139, + 71.05380248764389 + ], + [ + -21.679027555691015, + 71.06637572318058 + ], + [ + -21.739166248869605, + 70.57470702959844 + ], + [ + -21.475831997022105, + 70.54164887871295 + ], + [ + -22.373056411827207, + 70.44059754478042 + ], + [ + -22.50694655968359, + 70.85054016072657 + ], + [ + -22.622776036271887, + 70.44664002461921 + ], + [ + -23.3490276471787, + 70.43997955752674 + ], + [ + -24.021945950507885, + 70.65220643142926 + ], + [ + -24.192497246795796, + 71.01304627180377 + ], + [ + -24.739997848292305, + 71.33221435966603 + ], + [ + -25.099166865338702, + 71.29832457557112 + ], + [ + -25.623889915802394, + 71.53720093694967 + ], + [ + -26.950275410970406, + 71.57859802846025 + ], + [ + -27.69388962753122, + 71.93026732609883 + ], + [ + -28.639720922942708, + 72.12442015642432 + ], + [ + -28.358333587834686, + 72.01512908573821 + ], + [ + -28.461109172133597, + 71.93664551308348 + ], + [ + -27.439441679113386, + 71.73609925756088 + ], + [ + -28.46694183111899, + 71.55247497457054 + ], + [ + -27.3849983144193, + 71.60247801750357 + ], + [ + -25.412361138612486, + 71.35095978643635 + ], + [ + -25.59777830612101, + 71.16914368837323 + ], + [ + -26.478885636985794, + 70.96026611133158 + ], + [ + -27.500833513111896, + 70.93747711609049 + ], + [ + -27.798889151165206, + 71.14971922820509 + ], + [ + -27.92069244234201, + 71.12998198040621 + ], + [ + -27.855834972396796, + 70.9713745192914 + ], + [ + -28.405414594720007, + 70.9770660537721 + ], + [ + -27.9156932824696, + 70.86956024849837 + ], + [ + -28.305416096861993, + 70.55983733327544 + ], + [ + -29.203678140627595, + 70.39303588114234 + ], + [ + -28.29777907805149, + 70.50749205272265 + ], + [ + -28.22527693909131, + 70.36831663978361 + ], + [ + -26.724441528771408, + 70.47859191239213 + ], + [ + -26.32694626206969, + 70.37879944138375 + ], + [ + -28.54277802872771, + 70.0447082612586 + ], + [ + -27.3419456377929, + 69.96249390776367 + ], + [ + -26.89888761882099, + 70.2485961945358 + ], + [ + -26.307502738586997, + 70.19775389928738 + ], + [ + -25.229164116435282, + 70.41442871405712 + ], + [ + -23.5605583213705, + 70.10609437315289 + ], + [ + -22.08110999076269, + 70.13713837445829 + ], + [ + -23.08139037297239, + 69.86804199477925 + ], + [ + -22.9091663252562, + 69.80997467222275 + ], + [ + -23.00041578798851, + 69.75666045905817 + ], + [ + -23.688610088137395, + 69.70999144367555 + ], + [ + -23.58069418836309, + 69.62581633653994 + ], + [ + -23.792778009660402, + 69.5108184931609 + ], + [ + -24.347221389455605, + 69.60199736254276 + ], + [ + -24.073541635410514, + 69.47963716135493 + ], + [ + -24.664165506884206, + 69.24693299120989 + ], + [ + -25.20972062405101, + 69.2744293190093 + ], + [ + -24.99277497338199, + 69.16331482518378 + ], + [ + -26.363334646501393, + 68.66748047084204 + ], + [ + -28.847778310983294, + 68.3186035289551 + ], + [ + -29.187221524439213, + 68.39054869570751 + ], + [ + -29.37694550831041, + 68.19941710530138 + ], + [ + -29.866109848353, + 68.41318512223563 + ], + [ + -30.196945182286402, + 68.24247743213247 + ], + [ + -30.025835047887202, + 68.11303712214519 + ], + [ + -30.709720603573185, + 68.26081848650651 + ], + [ + -30.813611998191, + 68.2444915817127 + ], + [ + -30.422916426084605, + 68.06525422454364 + ], + [ + -31.571666722161396, + 68.06694031718247 + ], + [ + -31.745830532103298, + 68.20734405442418 + ], + [ + -31.530347812009296, + 68.23429109131868 + ], + [ + -32.00722502172531, + 68.26193236872518 + ], + [ + -32.47583009016289, + 68.62191771857184 + ], + [ + -32.55750274076091, + 68.48776245692032 + ], + [ + -32.133331304162404, + 68.19609069685748 + ], + [ + -32.3916702212397, + 68.22637938040829 + ], + [ + -32.400276172662004, + 68.19941710530138 + ], + [ + -31.999164567203987, + 68.0952606279869 + ], + [ + -32.13194276094189, + 67.84887695919255 + ], + [ + -33.0579147473645, + 67.63505554631854 + ], + [ + -33.36625291337088, + 67.24748231500509 + ], + [ + -33.9730529868288, + 66.99053956025426 + ], + [ + -34.09249877107502, + 66.69970702140856 + ], + [ + -34.71999358073519, + 66.33831785903071 + ], + [ + -35.203887925006086, + 66.23776245116169 + ], + [ + -35.85583496522789, + 66.43247987280122 + ], + [ + -35.551391592983286, + 66.2431717055346 + ], + [ + -35.640838623991016, + 66.11859129681868 + ], + [ + -37.19305420735409, + 65.76914979471624 + ], + [ + -37.81076431212679, + 66.02928924651647 + ], + [ + -37.38111113080258, + 66.3174896174299 + ], + [ + -38.1061096319879, + 66.38693235874334 + ], + [ + -37.69437027532298, + 66.26429749655388 + ], + [ + -37.9868049722464, + 66.23095703446229 + ], + [ + -38.05194092829548, + 65.91249083731626 + ], + [ + -38.4806938111599, + 66.01332855639146 + ], + [ + -38.1029853941929, + 65.80227661085206 + ], + [ + -38.24652863854019, + 65.62831114645701 + ], + [ + -39.0575027504854, + 65.55941772714681 + ], + [ + -39.324447618985, + 65.71554565123934 + ], + [ + -39.20111083498091, + 65.583602915813 + ], + [ + -39.660274493684696, + 65.67998504381633 + ], + [ + -39.8294448969567, + 65.49581908902732 + ], + [ + -40.09638976545631, + 65.56721496487495 + ], + [ + -40.215003978689886, + 65.49345399408915 + ], + [ + -39.755561833882204, + 65.2427520647238 + ], + [ + -40.256393419996016, + 65.01638795493449 + ], + [ + -40.59610746935129, + 65.13499451796338 + ], + [ + -41.155414575520005, + 64.96234893153824 + ], + [ + -40.432502745365994, + 64.42248534885213 + ], + [ + -41.5679893593982, + 64.263877856639 + ], + [ + -40.56777953944079, + 64.10914612597131 + ], + [ + -40.51597596178509, + 63.699573518697946 + ], + [ + -41.617774962371506, + 63.792221071857284 + ], + [ + -40.74833680567811, + 63.50916291342116 + ], + [ + -41.414443970203706, + 63.549438472508555 + ], + [ + -41.11333465660759, + 63.307212814269214 + ], + [ + -41.85514068824111, + 63.48499299406584 + ], + [ + -41.4324302541172, + 63.120964044649604 + ], + [ + -42.02305602259278, + 63.24694061569201 + ], + [ + -41.53881835207002, + 63.032146445104 + ], + [ + -41.7302780305158, + 63.029716478919305 + ], + [ + -42.17319489388459, + 63.20304871784841 + ], + [ + -41.9997253555529, + 63.03137971423947 + ], + [ + -41.61791611797452, + 62.98929976422872 + ], + [ + -41.75167083233209, + 62.84068297265428 + ], + [ + -43.03417204876269, + 62.72193146001836 + ], + [ + -42.36472703158469, + 62.55957412365026 + ], + [ + -42.165344229118396, + 62.38262940216534 + ], + [ + -42.98041533657269, + 62.51096724304394 + ], + [ + -42.321113588746584, + 62.308601389483925 + ], + [ + -42.115837112249, + 62.006660473777025 + ], + [ + -42.3255615296138, + 61.76138306809532 + ], + [ + -42.782775878885616, + 61.78665925056329 + ], + [ + -42.317642199597216, + 61.642635349463085 + ], + [ + -42.434722888905085, + 61.55721282361188 + ], + [ + -43.07917024081729, + 61.59360503314577 + ], + [ + -42.52826309031959, + 61.52707670877406 + ], + [ + -42.507507339071495, + 61.35527037466438 + ], + [ + -43.24444578813071, + 61.33735275600127 + ], + [ + -42.664302821255106, + 61.25652694572665 + ], + [ + -42.5779190129966, + 61.193462360299655 + ], + [ + -43.089721676569305, + 61.19748686545615 + ], + [ + -42.63402937591649, + 61.10117340270304 + ], + [ + -43.6123619122024, + 61.126380919920734 + ], + [ + -42.70777510849008, + 61.05915832393885 + ], + [ + -43.008613586186804, + 60.88388060067984 + ], + [ + -43.483608254719286, + 60.93568420943402 + ], + [ + -42.7908401585091, + 60.80110168696924 + ], + [ + -43.524650575769506, + 60.836936955393824 + ], + [ + -42.7872238197528, + 60.744995118053225 + ], + [ + -42.8346519468939, + 60.57110214401071 + ], + [ + -43.208610519706106, + 60.464439385056195 + ], + [ + -43.69777678784911, + 60.71568681132262 + ], + [ + -43.6299972507578, + 60.5486068730857 + ], + [ + -44.19388580319239, + 60.63402174873233 + ], + [ + -43.31465149740289, + 60.440963737311016 + ], + [ + -43.587638845741516, + 60.3052673326275 + ], + [ + -43.1662483206859, + 60.396244062458564 + ], + [ + -43.09277342401172, + 60.25721739313051 + ], + [ + -43.322013855211715, + 60.21367264664119 + ], + [ + -43.08721925113021, + 60.100273136237675 + ], + [ + -44.113891595028505, + 60.18360137195161 + ], + [ + -44.0825042674713, + 60.2875633288218 + ], + [ + -44.6105575514813, + 59.981376642896386 + ], + [ + -45.1690292304367, + 60.09221268171656 + ], + [ + -44.824447629605594, + 60.189987178042585 + ], + [ + -44.47083281653911, + 60.55721282450793 + ], + [ + -45.186527238491294, + 60.12929533775848 + ], + [ + -44.7762489464978, + 60.64665985551551 + ], + [ + -45.2177734415439, + 60.4341583206115 + ], + [ + -45.48735809708189, + 60.49186707870371 + ], + [ + -45.31333161764079, + 60.69999695709691 + ], + [ + -45.55638884689268, + 60.504165653238715 + ], + [ + -45.9779815736956, + 60.57791138581251 + ], + [ + -45.40916442364101, + 60.88304899856884 + ], + [ + -45.43388366499959, + 60.93193815928305 + ], + [ + -45.80694579555271, + 60.74610138116583 + ], + [ + -45.83124925140509, + 60.84915542047003 + ], + [ + -46.22235488691359, + 60.75805283544502 + ], + [ + -45.3444442841965, + 61.07582855498474 + ], + [ + -46.06555175452551, + 60.92110444342322 + ], + [ + -45.65361022721161, + 61.14221954885554 + ], + [ + -45.86666870322501, + 61.215133679318164 + ], + [ + -45.77416609967272, + 61.334159852955985 + ], + [ + -46.0097274657173, + 61.22304535913036 + ], + [ + -45.8395805418257, + 61.162769304352466 + ], + [ + -45.91500092282969, + 61.090270990494666 + ], + [ + -46.22943878971701, + 60.97470855580164 + ], + [ + -46.40416715987429, + 61.06888198268203 + ], + [ + -46.86222076146159, + 60.797355636818224 + ], + [ + -47.023056018112314, + 60.97609709902205 + ], + [ + -48.226943981591795, + 60.81610106358856 + ], + [ + -47.689857485346494, + 61.00680159917764 + ], + [ + -48.40666578951729, + 60.99207688355996 + ], + [ + -47.920696249522095, + 61.32256699423937 + ], + [ + -48.4102783342698, + 61.132209784902244 + ], + [ + -48.6391677890134, + 61.210407252347046 + ], + [ + -48.3786086955063, + 61.36388397629117 + ], + [ + -49.0652770908356, + 61.39943696460806 + ], + [ + -48.2327041502245, + 61.53589630615208 + ], + [ + -48.344162001400505, + 61.604995721213385 + ], + [ + -48.94888305403169, + 61.46554564727286 + ], + [ + -49.29750060422771, + 61.5574951037197 + ], + [ + -48.59921263666289, + 61.63633727193709 + ], + [ + -49.1490287933586, + 61.71984864608391 + ], + [ + -48.77527618519929, + 61.98721312519202 + ], + [ + -49.23805235755701, + 61.71166230527011 + ], + [ + -49.43860626328409, + 61.84130857991012 + ], + [ + -48.8425674464316, + 62.07610704019243 + ], + [ + -49.013618462786795, + 62.19526671922872 + ], + [ + -49.172225955, + 62.01610564641642 + ], + [ + -49.669448852562, + 61.99554444671093 + ], + [ + -49.6977767824724, + 62.112213144516446 + ], + [ + -49.4022216728563, + 62.25582884811805 + ], + [ + -49.807777394079295, + 62.25027464413835 + ], + [ + -50.315624248844316, + 62.49430083710044 + ], + [ + -50.1508331211892, + 62.93082427527209 + ], + [ + -49.69971847279831, + 63.05526732238892 + ], + [ + -50.11305998754101, + 62.9627685439389 + ], + [ + -50.32278061090189, + 62.82860566318117 + ], + [ + -50.60639191644348, + 63.09443664946202 + ], + [ + -50.1366653466809, + 63.214714035819334 + ], + [ + -51.0594406049557, + 63.18415831037291 + ], + [ + -51.10736465816031, + 63.34040450165174 + ], + [ + -50.27965164991892, + 63.40061568518293 + ], + [ + -51.15833283970111, + 63.378044129901234 + ], + [ + -50.748474127217804, + 63.53832627054494 + ], + [ + -51.1318054134151, + 63.62026978814067 + ], + [ + -50.59749603470888, + 63.642494192067936 + ], + [ + -51.0819435260853, + 63.66540907360166 + ], + [ + -51.184371959029804, + 63.622421268221565 + ], + [ + -51.20916748474499, + 63.524436951042055 + ], + [ + -51.54028320178408, + 63.751941687667774 + ], + [ + -50.92430879158619, + 63.930965429979295 + ], + [ + -51.4308319121806, + 63.80360414081866 + ], + [ + -51.657775882594514, + 64.0105438215382 + ], + [ + -50.25083923815338, + 64.22331236723929 + ], + [ + -51.445831288799894, + 64.07804869762789 + ], + [ + -51.748474126321696, + 64.2020721341362 + ], + [ + -50.95083618677381, + 64.2180480935717 + ], + [ + -50.88249970857311, + 64.40776063323453 + ], + [ + -50.352226248133285, + 64.38275146156352 + ], + [ + -50.208377835261494, + 64.44315337153532 + ], + [ + -50.64083861054931, + 64.46971130534425 + ], + [ + -50.735557565429104, + 64.64526365850656 + ], + [ + -50.52527617585649, + 64.70498656617895 + ], + [ + -50.07041550841309, + 64.47412108848414 + ], + [ + -49.58777617086559, + 64.35359192954202 + ], + [ + -50.56402968632491, + 64.77040862743807 + ], + [ + -50.8469467202563, + 65.15832518500339 + ], + [ + -50.9819412342234, + 65.2167968799561 + ], + [ + -50.63409806509639, + 64.75832366776025 + ], + [ + -51.14333343198349, + 64.61360166994764 + ], + [ + -51.0238876477373, + 64.75471497920847 + ], + [ + -51.22416686136429, + 64.76220701731366 + ], + [ + -51.66500090990249, + 64.3060913120484 + ], + [ + -52.004726403466215, + 64.2017974731344 + ], + [ + -52.11624909479029, + 64.72276306033737 + ], + [ + -51.249862685539306, + 65.01547241826229 + ], + [ + -52.2113876291803, + 64.80664061805437 + ], + [ + -52.1222229093788, + 65.01638030472976 + ], + [ + -52.2729148966776, + 65.09540558028182 + ], + [ + -52.09972381335151, + 65.23915099527811 + ], + [ + -52.222770698141694, + 65.32777404328091 + ], + [ + -52.519165028975, + 65.18525695258741 + ], + [ + -52.5621528654534, + 65.32005308990934 + ], + [ + -51.71930311899349, + 65.58346558531224 + ], + [ + -51.899234778871, + 65.62171172550873 + ], + [ + -51.69444275313011, + 65.69859314008576 + ], + [ + -50.546947463776704, + 65.70769501757155 + ], + [ + -51.4847259548714, + 65.76304626873318 + ], + [ + -51.948051449232416, + 65.65887452210784 + ], + [ + -51.9344406158335, + 65.54637145396343 + ], + [ + -52.4959030271855, + 65.38796995750153 + ], + [ + -52.799167645964815, + 65.5366516203224 + ], + [ + -52.7266616819023, + 65.74971009633596 + ], + [ + -53.26500321596949, + 65.74282836418155 + ], + [ + -52.69860841299349, + 65.93553160514237 + ], + [ + -52.31999969756671, + 65.86886598136817 + ], + [ + -51.921943664653384, + 66.03498840010329 + ], + [ + -52.31750489123369, + 65.89915466491905 + ], + [ + -52.61805726372042, + 65.97998047519368 + ], + [ + -53.1516647206119, + 65.85581970818475 + ], + [ + -53.467010505065, + 65.97241212163365 + ], + [ + -51.27138519875029, + 66.84387207811173 + ], + [ + -50.35444642456318, + 66.82748412717386 + ], + [ + -51.00750352190149, + 66.90221406166984 + ], + [ + -50.00111006650221, + 66.97644041989797 + ], + [ + -50.948608391237904, + 66.97859193107726 + ], + [ + -53.006668092896, + 66.19331361220867 + ], + [ + -53.620834349265095, + 66.14387512949128 + ], + [ + -53.1224975694843, + 66.28470612754619 + ], + [ + -53.61583329239068, + 66.24179078142038 + ], + [ + -53.62902451518101, + 66.50624084358704 + ], + [ + -52.417362202390294, + 66.5442886382368 + ], + [ + -53.451942432097006, + 66.6374969576077 + ], + [ + -52.8383903378793, + 66.70944977456473 + ], + [ + -53.20472336718778, + 66.74456023275782 + ], + [ + -52.98277283454222, + 66.85304258974958 + ], + [ + -52.23256302213541, + 66.83748627202094 + ], + [ + -53.675003052957386, + 66.91360474973736 + ], + [ + -53.82583619585941, + 66.97803495886967 + ], + [ + -53.22208021963929, + 66.99081422125597 + ], + [ + -53.961109164832, + 67.07429505678111 + ], + [ + -53.816665653123216, + 67.17886352559826 + ], + [ + -52.1513900605064, + 67.3699798466938 + ], + [ + -51.524719233851, + 67.3230438205139 + ], + [ + -51.1894378560523, + 67.12359617789939 + ], + [ + -50.35048675955488, + 67.18431855680477 + ], + [ + -51.14778137285071, + 67.13638305939175 + ], + [ + -51.5239601220927, + 67.349494931345 + ], + [ + -52.226387036898, + 67.38943481438473 + ], + [ + -53.7983398369616, + 67.20277405326269 + ], + [ + -53.803611760833704, + 67.4144287167451 + ], + [ + -52.49610902293671, + 67.76971435313983 + ], + [ + -51.809440627607394, + 67.62580871922573 + ], + [ + -51.3302841234177, + 67.67581176215862 + ], + [ + -50.700553899115505, + 67.49165345757422 + ], + [ + -50.19583131324381, + 67.46734617661953 + ], + [ + -50.070972449522415, + 67.51138305516851 + ], + [ + -50.84999846769859, + 67.60359193440462 + ], + [ + -49.94110870382439, + 67.69233704359752 + ], + [ + -51.0109748799524, + 67.62470245611316 + ], + [ + -51.23110960856459, + 67.71249390200504 + ], + [ + -50.41750335978562, + 67.84443663743136 + ], + [ + -50.77944184416659, + 67.90664673233037 + ], + [ + -50.678054803088195, + 67.85054016341446 + ], + [ + -51.173614496428215, + 67.75860594517995 + ], + [ + -51.33111572552869, + 67.86886597957616 + ], + [ + -50.97367478395091, + 67.88331603419228 + ], + [ + -51.0599975460651, + 67.97415160842014 + ], + [ + -51.5643081715327, + 67.93358611902055 + ], + [ + -51.32041930907141, + 67.81373596237803 + ], + [ + -51.7130584685057, + 67.69497679953744 + ], + [ + -52.34013749265961, + 67.82221223350395 + ], + [ + -51.6133346627476, + 67.97415160842014 + ], + [ + -53.729438767447014, + 67.53665161853053 + ], + [ + -53.53944397877481, + 67.71081542847226 + ], + [ + -53.627777096465294, + 67.81469727588366 + ], + [ + -53.19138336968818, + 68.04164886540377 + ], + [ + -52.691108693585505, + 67.95942689280247 + ], + [ + -52.240837091514, + 67.95082091028185 + ], + [ + -53.4500007728695, + 68.15137481600888 + ], + [ + -53.32111357888939, + 68.18441772868208 + ], + [ + -50.311668408938296, + 67.93247985590789 + ], + [ + -51.4347190868363, + 68.2001266462224 + ], + [ + -50.971382148266805, + 68.17761993108878 + ], + [ + -51.22083283381419, + 68.27360533690037 + ], + [ + -51.18277742005819, + 68.39443207635931 + ], + [ + -50.81999968336168, + 68.50360108585524 + ], + [ + -51.645004270412706, + 68.40776062965051 + ], + [ + -51.240837092410096, + 68.28997801852779 + ], + [ + -52.4463882601115, + 68.17886352470221 + ], + [ + -53.38861083587291, + 68.32902525331241 + ], + [ + -52.46166991683861, + 68.544982908055 + ], + [ + -51.03319931497809, + 68.57943725236541 + ], + [ + -50.65555191305699, + 68.82332611482677 + ], + [ + -51.2888221606606, + 68.74700164135902 + ], + [ + -51.07430647617639, + 69.13011931269907 + ], + [ + -50.322086339291815, + 68.90998840918928 + ], + [ + -50.687080396217404, + 69.12081147056047 + ], + [ + -50.19083405037329, + 69.14804075646441 + ], + [ + -50.13083265659709, + 69.2187423607018 + ], + [ + -51.12027360084289, + 69.200401306328 + ], + [ + -50.86583709663342, + 69.4574890106857 + ], + [ + -50.3672752266885, + 69.51271058155103 + ], + [ + -50.88277816357861, + 69.49553680533553 + ], + [ + -50.8005523658751, + 69.64221190658425 + ], + [ + -50.437274940209605, + 69.60912321707735 + ], + [ + -50.81541823709589, + 69.70762634873705 + ], + [ + -50.1916656524843, + 69.75749206116926 + ], + [ + -50.58930207478909, + 69.92372895308668 + ], + [ + -50.2176361065626, + 70.02429198006189 + ], + [ + -52.31277467025869, + 70.04664612648229 + ], + [ + -54.627220154459806, + 70.65304565264634 + ], + [ + -54.1286087136775, + 70.82916259712239 + ], + [ + -52.970832824471394, + 70.76443480747358 + ], + [ + -50.546527853168115, + 70.33998870987324 + ], + [ + -50.5872192288602, + 70.46582030021031 + ], + [ + -51.345275880930906, + 70.56415559384635 + ], + [ + -50.74110794430671, + 70.54525756726464 + ], + [ + -50.997222890950404, + 70.66453551348714 + ], + [ + -50.8478927644513, + 70.65470123776225 + ], + [ + -51.440967562426295, + 70.72575378735766 + ], + [ + -50.6318054294124, + 70.73706819106866 + ], + [ + -51.9524993900997, + 71.0211029012228 + ], + [ + -51.1899947971617, + 70.95387268613469 + ], + [ + -50.9180603159961, + 71.02026368000558 + ], + [ + -52.2459030196349, + 71.12191773188108 + ], + [ + -51.52611160217359, + 71.27803803686741 + ], + [ + -51.64555359241601, + 71.36137389168742 + ], + [ + -52.5551376279004, + 71.1762313851804 + ], + [ + -52.18555450560279, + 71.37915038584585 + ], + [ + -51.345970152541085, + 71.48415373458222 + ], + [ + -52.98617935244499, + 71.41803740171294 + ], + [ + -51.8027801605149, + 71.59443665739516 + ], + [ + -51.6434059063389, + 71.70895384402117 + ], + [ + -53.25055695535731, + 71.70277403368158 + ], + [ + -52.687149059675605, + 71.99998472841361 + ], + [ + -53.3219451810004, + 71.82221984902618 + ], + [ + -53.406105049923596, + 72.04470825946673 + ], + [ + -53.85653304581041, + 72.31887053616822 + ], + [ + -53.5575675931891, + 72.35289765076384 + ], + [ + -53.8547210668792, + 72.35276793936914 + ], + [ + -53.953891756630085, + 72.32485200096122 + ], + [ + -53.82791901069, + 72.15054321031393 + ], + [ + -53.39736176800051, + 71.84818268399827 + ], + [ + -53.8530578626572, + 71.62997437640125 + ], + [ + -53.898750295223614, + 71.44831846615766 + ], + [ + -54.643615724504, + 71.34915160150884 + ], + [ + -55.5150070157317, + 71.45138548291052 + ], + [ + -55.74083710392671, + 71.74552916088957 + ], + [ + -54.826530466573494, + 71.9170684842023 + ], + [ + -54.53666686033961, + 72.04136658171201 + ], + [ + -54.38930510658701, + 72.2229690649177 + ], + [ + -54.86194609329109, + 71.94274900796817 + ], + [ + -55.2983398511666, + 71.92858885256598 + ], + [ + -55.58000181617769, + 71.9988708461948 + ], + [ + -54.9316711458106, + 72.23831176778894 + ], + [ + -54.943031326355204, + 72.38034058262355 + ], + [ + -55.64722061815582, + 72.44226836631658 + ], + [ + -54.29930878467449, + 72.48123169763846 + ], + [ + -55.017364507561105, + 72.52346039126019 + ], + [ + -54.605415330042696, + 72.82637785868509 + ], + [ + -54.85055540522361, + 73.01443481323201 + ], + [ + -55.621383669476096, + 73.0560912964336 + ], + [ + -55.140560135962, + 73.20762633005204 + ], + [ + -55.456668857275886, + 73.25485228654405 + ], + [ + -55.2704200876563, + 73.38637544246038 + ], + [ + -55.64055632596101, + 73.5708312964633 + ], + [ + -56.071807871359006, + 73.64596557225728 + ], + [ + -55.6112518443326, + 73.72373198488509 + ], + [ + -55.944927207852906, + 73.8541488776886 + ], + [ + -55.641250597571194, + 73.86914825430782 + ], + [ + -56.286666882095204, + 74.10887145600977 + ], + [ + -56.129165652994594, + 74.27832031428719 + ], + [ + -57.32333754573859, + 74.10470579525024 + ], + [ + -56.1295814385009, + 74.38067625687898 + ], + [ + -56.79444886561369, + 74.44587708417467 + ], + [ + -56.19291306582339, + 74.5502624456573 + ], + [ + -57.01500702993669, + 74.67137146522403 + ], + [ + -57.18722153044648, + 74.77221680340526 + ], + [ + -56.8611144893879, + 74.80693053940664 + ], + [ + -57.026390067799696, + 74.91387940357103 + ], + [ + -58.0950012061059, + 75.04470825677866 + ], + [ + -57.95889280992011, + 75.185531604629 + ], + [ + -58.688049321660294, + 75.3422088507246 + ], + [ + -58.159580221045715, + 75.50859834245362 + ], + [ + -58.42361449770599, + 75.71971130303884 + ], + [ + -59.061668393322705, + 75.70416260441635 + ], + [ + -59.21611022477638, + 75.87220765016278 + ], + [ + -59.78472899818601, + 75.79637145255415 + ], + [ + -59.624637615081305, + 75.91601561344538 + ], + [ + -60.73805236280101, + 75.99331663863087 + ], + [ + -60.878608699854105, + 76.15248107195362 + ], + [ + -63.38555907946949, + 76.37275695616881 + ], + [ + -63.788894655361084, + 76.15693663192698 + ], + [ + -64.376525866338, + 76.25666046878344 + ], + [ + -65.354858402624, + 76.17082215742595 + ], + [ + -65.29652403817201, + 76.075408930936 + ], + [ + -65.47972106034919, + 76.01860047130356 + ], + [ + -65.8868026863918, + 76.10061644815359 + ], + [ + -65.5569381820722, + 76.23664855998302 + ], + [ + -65.7694549551885, + 76.27554322605454 + ], + [ + -66.19415282537342, + 76.28027344702951 + ], + [ + -66.4330596942749, + 76.08276366963881 + ], + [ + -66.9600067151722, + 76.26361083508989 + ], + [ + -67.30527496850739, + 76.1651229727407 + ], + [ + -66.6480560355119, + 75.93637084849787 + ], + [ + -68.3091583171647, + 76.07609558343998 + ], + [ + -69.63151551317239, + 76.37365722353033 + ], + [ + -67.98222349909729, + 76.67942809285096 + ], + [ + -70.0996551630695, + 76.80157471027978 + ], + [ + -69.79110717620969, + 76.97859192211739 + ], + [ + -70.5472259630568, + 76.7885894832408 + ], + [ + -71.37527464734569, + 77.05609132394812 + ], + [ + -70.1491699301434, + 77.24053955884482 + ], + [ + -68.54055784755201, + 77.16609190445664 + ], + [ + -66.4486083928974, + 77.13388062499271 + ], + [ + -66.171386718549, + 77.19025420470594 + ], + [ + -69.1016693135458, + 77.27192688640227 + ], + [ + -67.6199951155024, + 77.38638305798247 + ], + [ + -66.2383270344232, + 77.24859618826392 + ], + [ + -66.65701293229229, + 77.41248322345548 + ], + [ + -66.0555572419607, + 77.49136351830195 + ], + [ + -66.72333526091279, + 77.6784515402371 + ], + [ + -67.7886047214644, + 77.5083312987663 + ], + [ + -68.6994323816606, + 77.6638793933325 + ], + [ + -68.8155517574628, + 77.65138244215227 + ], + [ + -68.6056900095972, + 77.5192947260208 + ], + [ + -69.2502899302225, + 77.45304871285497 + ], + [ + -70.2888870148811, + 77.56679534351439 + ], + [ + -69.5011138896795, + 77.68470763493342 + ], + [ + -69.4813919111913, + 77.75263215272989 + ], + [ + -70.6027832099696, + 77.6780395487347 + ], + [ + -69.97492980474671, + 77.83457184522342 + ], + [ + -71.32000733074509, + 77.7636108492952 + ], + [ + -72.8697204575708, + 78.14553832296134 + ], + [ + -72.5522155739306, + 78.52110291005201 + ], + [ + -70.8719329855883, + 78.61109923196452 + ], + [ + -68.3405609140327, + 79.06303406935648 + ], + [ + -65.9766692969096, + 79.10165404332787 + ], + [ + -64.83528135864161, + 79.52192689216083 + ], + [ + -65.05139161319568, + 80.01693726349772 + ], + [ + -64.12054442509279, + 80.13832091296752 + ], + [ + -67.04972840718142, + 80.05747986448053 + ], + [ + -67.48361205831489, + 80.19081114312743 + ], + [ + -67.4819488540929, + 80.32415772218303 + ], + [ + -63.680557247976296, + 81.14387511605156 + ], + [ + -62.79444886023708, + 80.75109862611632 + ], + [ + -63.371108993755, + 81.15248871767825 + ], + [ + -61.0566635095539, + 81.11970519669606 + ], + [ + -60.89194487225138, + 81.16554260996776 + ], + [ + -61.31118012322211, + 81.35324858805818 + ], + [ + -60.76902769885588, + 81.49679565750772 + ], + [ + -61.45222473613418, + 81.75305175975474 + ], + [ + -60.8066635020033, + 81.87997437499206 + ], + [ + -58.8994445934517, + 81.86470030627277 + ], + [ + -58.6425018387008, + 81.67553711971162 + ], + [ + -56.47833252519379, + 81.33248901170788 + ], + [ + -59.46583174622311, + 81.99275969214577 + ], + [ + -55.9024963435824, + 82.26805115147513 + ], + [ + -55.11333464406211, + 82.1566467273374 + ], + [ + -55.6022224571996, + 82.280822763657 + ], + [ + -54.5052795327823, + 82.36553954259124 + ], + [ + -53.5597228983724, + 82.1160888570438 + ], + [ + -53.50833893132531, + 81.89387510760484 + ], + [ + -53.821533204599085, + 81.69567108970233 + ], + [ + -53.634445182664, + 81.5133209078482 + ], + [ + -53.47305298490389, + 81.5016632089836 + ], + [ + -53.5405578609936, + 81.67608641061643 + ], + [ + -52.93860627569689, + 81.85636901585225 + ], + [ + -53.0280532756061, + 82.01193237972905 + ], + [ + -52.89916990672832, + 82.03414916455026 + ], + [ + -49.6197891358811, + 81.64019774625213 + ], + [ + -51.06638717725821, + 81.93525696090326 + ], + [ + -49.435134874134796, + 81.92900848531318 + ], + [ + -50.6949996951356, + 82.18247985091469 + ], + [ + -51.11750030840601, + 82.49136351382205 + ], + [ + -49.86444855430922, + 82.51470948127103 + ], + [ + -44.639999394708816, + 81.75416564197334 + ], + [ + -44.230278012726295, + 81.84248352145154 + ], + [ + -44.9218063404253, + 81.9878997908745 + ], + [ + -44.50250245530261, + 82.08970641146308 + ], + [ + -44.79347611865301, + 82.18852233075359 + ], + [ + -44.6180572397909, + 82.27665710289742 + ], + [ + -42.30083466914902, + 82.21498871089538 + ], + [ + -43.8302841145894, + 82.33581541925584 + ], + [ + -43.728469843796205, + 82.40415192855482 + ], + [ + -45.76333617781678, + 82.76193237128248 + ], + [ + -42.14277649893909, + 82.76165771028087 + ], + [ + -41.682777413022016, + 82.47804261073544 + ], + [ + -41.60889434994759, + 82.64166260403145 + ], + [ + -41.8991661225816, + 82.73026276361756 + ], + [ + -41.550277705387906, + 82.73664856970836 + ], + [ + -39.7533378634486, + 82.4015197606226 + ], + [ + -40.01194761642528, + 82.55998230322894 + ], + [ + -39.9049987833592, + 82.67164611905777 + ], + [ + -40.1352767813232, + 82.71443175378886 + ], + [ + -42.191108718543816, + 82.85165406329176 + ], + [ + -45.993057265769785, + 82.84443665508991 + ], + [ + -46.88902664275311, + 82.96276855711749 + ], + [ + -45.986110693467296, + 82.91734313534799 + ], + [ + -46.701251968314, + 83.0030517664092 + ], + [ + -46.03305816385561, + 83.08859252834831 + ], + [ + -44.904441837769305, + 82.9458160459639 + ], + [ + -43.989440928805784, + 82.91192626186889 + ], + [ + -43.38666532940589, + 82.91442871840651 + ], + [ + -45.521106725573595, + 83.12109373812453 + ], + [ + -42.8727722318964, + 83.09275818910781 + ], + [ + -43.98309324934399, + 83.20104981965906 + ], + [ + -42.69499970230449, + 83.27442930646556 + ], + [ + -39.446945181771994, + 82.9577636751408 + ], + [ + -38.61028289585629, + 82.74359131690856 + ] + ] + ], + [ + [ + [ + -79.2368087806254, + 81.81608581729296 + ], + [ + -79.8533325205289, + 82.01887512496565 + ], + [ + -82.72867583587849, + 82.3983917178728 + ], + [ + -81.54194641106088, + 82.50054169019025 + ], + [ + -82.3918838533254, + 82.61602020186396 + ], + [ + -82.21528625822103, + 82.66859436638686 + ], + [ + -80.57987212893102, + 82.54457091998954 + ], + [ + -81.5791702303624, + 82.7929687511132 + ], + [ + -81.4730529737018, + 82.82499694656458 + ], + [ + -79.86166381448689, + 82.64414978547755 + ], + [ + -79.9722900332063, + 82.69261932064606 + ], + [ + -79.8297271771041, + 82.70887756004188 + ], + [ + -79.3847351144009, + 82.67276001336589 + ], + [ + -78.5119552546257, + 82.67900848383435 + ], + [ + -80.4300003008611, + 82.89082337050542 + ], + [ + -79.79333495622221, + 82.957489016115 + ], + [ + -77.12832641521001, + 82.86331176036188 + ], + [ + -75.89430999197229, + 82.59012603324904 + ], + [ + -76.23388672212032, + 82.44497680800343 + ], + [ + -75.5008392313577, + 82.60026550812236 + ], + [ + -77.37909699052729, + 82.99012756178743 + ], + [ + -74.43582152636829, + 83.02720642864462 + ], + [ + -72.63389586665559, + 82.69442748574546 + ], + [ + -72.5006942813826, + 82.72137451679457 + ], + [ + -73.64034270948069, + 82.9237976080085 + ], + [ + -71.7127838167229, + 83.0988769587178 + ], + [ + -71.5893173261709, + 83.08818054381521 + ], + [ + -71.78971862733569, + 83.01082610655213 + ], + [ + -70.8713836701169, + 82.88108825996837 + ], + [ + -71.481277460779, + 83.0068664612737 + ], + [ + -70.26000976712109, + 83.11387634979442 + ], + [ + -66.3004150362209, + 82.93067931426097 + ], + [ + -68.64250182756781, + 82.62858581530647 + ], + [ + -65.7677764856882, + 82.84304808874559 + ], + [ + -65.16277313585769, + 82.76533508990426 + ], + [ + -65.29833221882642, + 82.86942291745109 + ], + [ + -64.72972107406203, + 82.904159548927 + ], + [ + -64.9263839781472, + 82.87220001016507 + ], + [ + -63.49083709555579, + 82.82527160495479 + ], + [ + -63.38972091173418, + 82.7645721481744 + ], + [ + -63.84263991987512, + 82.71748352820586 + ], + [ + -62.9354133651442, + 82.57735443392197 + ], + [ + -63.36805343935469, + 82.44192504108345 + ], + [ + -62.245002754107404, + 82.52804566126875 + ], + [ + -61.076393128160305, + 82.32083129472511 + ], + [ + -64.35527038324298, + 81.72637939153714 + ], + [ + -68.1566619921153, + 81.56109618480521 + ], + [ + -69.29721069113849, + 81.71456909657563 + ], + [ + -68.367530820919, + 81.54747772474454 + ], + [ + -68.84923553402069, + 81.5438690177949 + ], + [ + -68.5794525121569, + 81.51443481473602 + ], + [ + -66.6231155376875, + 81.5138092022011 + ], + [ + -70.2081985443282, + 81.17678833238405 + ], + [ + -64.4439468321278, + 81.4819946316992 + ], + [ + -68.6725006097212, + 80.66693115010557 + ], + [ + -69.42749023125329, + 80.38275146413687 + ], + [ + -70.28443908571639, + 80.35108948514424 + ], + [ + -70.31416320947959, + 80.46443176313716 + ], + [ + -70.819442741378, + 80.55886841496637 + ], + [ + -70.4441528288903, + 80.34027100336077 + ], + [ + -69.96292113681429, + 80.25429535143532 + ], + [ + -70.1369400018403, + 80.19539642068933 + ], + [ + -72.41667174700079, + 80.20915984901033 + ], + [ + -71.89930724593489, + 80.1108169620939 + ], + [ + -72.3063812201121, + 80.05747985584101 + ], + [ + -70.5038223246154, + 80.09381102746663 + ], + [ + -71.4566726651113, + 79.90227509054172 + ], + [ + -70.913337699676, + 79.88262176914617 + ], + [ + -71.1838836632698, + 79.77748107916527 + ], + [ + -72.26722716883009, + 79.65914916320695 + ], + [ + -74.23889160295779, + 79.88720702695969 + ], + [ + -74.83966064911979, + 79.84734344413909 + ], + [ + -73.3847351035231, + 79.74887085127686 + ], + [ + -73.1304397560758, + 79.56044005983185 + ], + [ + -74.9344177304656, + 79.50326537518144 + ], + [ + -75.0583343564801, + 79.37387084367752 + ], + [ + -77.15152741011451, + 79.54553985007294 + ], + [ + -75.8953475920925, + 79.3534545963679 + ], + [ + -77.3591613716766, + 79.45555114267783 + ], + [ + -77.31723022768081, + 79.3277740527027 + ], + [ + -78.0513153027475, + 79.3508148170331 + ], + [ + -74.4969482488639, + 79.2249908446014 + ], + [ + -74.61749267844179, + 79.15138244348299 + ], + [ + -74.44284057763178, + 79.05907440208537 + ], + [ + -77.77749633985091, + 79.2088775576499 + ], + [ + -78.2465286191274, + 79.1719894459949 + ], + [ + -76.08348083958411, + 79.09651946958581 + ], + [ + -78.8854141164509, + 79.06178283810989 + ], + [ + -77.70916748158609, + 79.00908660670589 + ], + [ + -78.29138946316229, + 78.79373168559074 + ], + [ + -78.2480468793383, + 78.77026367136114 + ], + [ + -77.7119445743002, + 78.96609497702654 + ], + [ + -76.71055602613019, + 79.02832031726699 + ], + [ + -75.7262496925264, + 78.96734618628057 + ], + [ + -76.40319824663601, + 78.83901214046006 + ], + [ + -75.31610108168181, + 78.89221191751794 + ], + [ + -74.7750091544942, + 78.82998657727762 + ], + [ + -74.7234725900915, + 78.70443726323604 + ], + [ + -75.04804992916279, + 78.52804565401628 + ], + [ + -76.68634033248462, + 78.51453399852241 + ], + [ + -75.05722046060541, + 78.31275940540668 + ], + [ + -76.9102783203845, + 78.19831085478806 + ], + [ + -75.58236693884889, + 78.11144257100275 + ], + [ + -75.92277526741651, + 77.95664977747295 + ], + [ + -78.26083374097949, + 77.99525451197434 + ], + [ + -78.41538238493148, + 77.91011809753374 + ], + [ + -77.72430420185789, + 77.6038742139142 + ], + [ + -78.30387878085021, + 77.37330627677278 + ], + [ + -80.45611571767479, + 77.29609680776986 + ], + [ + -81.8300018233043, + 77.62386322714039 + ], + [ + -81.73999023034608, + 77.43886566557246 + ], + [ + -81.16722106185179, + 77.33380127134625 + ], + [ + -82.15875244841959, + 77.29817199219424 + ], + [ + -81.7966613693425, + 77.15748595788091 + ], + [ + -80.25862121517, + 77.21220397933405 + ], + [ + -80.3730468802254, + 77.07138061582552 + ], + [ + -79.25500487525039, + 77.21859741806253 + ], + [ + -79.00444794069868, + 77.10026550210424 + ], + [ + -79.3868102988254, + 76.9313659651737 + ], + [ + -78.7160339352455, + 76.82276915975228 + ], + [ + -78.07875061713659, + 77.0160980152783 + ], + [ + -77.7844467186088, + 76.78651428388149 + ], + [ + -77.7769470230704, + 76.65429687272126 + ], + [ + -78.3709640531099, + 76.46026610890584 + ], + [ + -78.78194427819001, + 76.57221222520066 + ], + [ + -79.26396942080831, + 76.3424148530382 + ], + [ + -81.05332946707848, + 76.1280364986028 + ], + [ + -80.7781982456713, + 76.42150878289515 + ], + [ + -82.04916381400449, + 76.51152039166925 + ], + [ + -82.7250061113044, + 76.81915282955381 + ], + [ + -82.1315917924208, + 76.44512176538484 + ], + [ + -82.9970855657914, + 76.42790222162374 + ], + [ + -83.4054183882876, + 76.75888062267265 + ], + [ + -83.5194854759491, + 76.70574187905527 + ], + [ + -83.18984985803868, + 76.42095946611475 + ], + [ + -84.2844390794663, + 76.65776062722655 + ], + [ + -84.2031173736757, + 76.45296477600301 + ], + [ + -85.0513916032851, + 76.51416015518824 + ], + [ + -84.38332367572959, + 76.31560516700002 + ], + [ + -85.1744384830027, + 76.28027343180153 + ], + [ + -86.3722229001168, + 76.38638304939715 + ], + [ + -86.21847534577218, + 76.52178955667253 + ], + [ + -86.594161983531, + 76.63499450547044 + ], + [ + -86.50805664147558, + 76.48776245673525 + ], + [ + -86.7138900770034, + 76.34706878335713 + ], + [ + -87.42666625708459, + 76.46859741867964 + ], + [ + -87.52861022770131, + 76.61498260668105 + ], + [ + -87.4094467133234, + 76.35040283191643 + ], + [ + -87.6488952612031, + 76.33804322017463 + ], + [ + -88.43207549978939, + 76.40012359215493 + ], + [ + -88.5188903733834, + 76.8160858161355 + ], + [ + -88.6926345800192, + 76.70471191800017 + ], + [ + -88.49291228576479, + 76.50026702092133 + ], + [ + -88.6563873273974, + 76.39833068936964 + ], + [ + -88.737220765664, + 76.59082030741087 + ], + [ + -88.94721984817059, + 76.40525818256444 + ], + [ + -89.5413818306543, + 76.54165648720193 + ], + [ + -89.52458191354329, + 76.84886933006777 + ], + [ + -88.42639160841532, + 77.12081909442473 + ], + [ + -86.73999023150299, + 77.17414856161275 + ], + [ + -87.24707794431649, + 77.30081939477815 + ], + [ + -86.8415298535994, + 77.35504913289127 + ], + [ + -87.70485686866081, + 77.35859680640029 + ], + [ + -87.70278168423641, + 77.53942870517328 + ], + [ + -88.2206268295772, + 77.66324614987009 + ], + [ + -88.06806945104611, + 77.8202667193336 + ], + [ + -86.42222595781041, + 77.8308258050411 + ], + [ + -85.71978759942208, + 77.46346282217519 + ], + [ + -84.47944640996128, + 77.29443359511457 + ], + [ + -84.6138915970552, + 77.38610076166306 + ], + [ + -83.46756744858932, + 77.34928894576268 + ], + [ + -83.82917022851059, + 77.45178223315969 + ], + [ + -83.21611022729661, + 77.5777740435988 + ], + [ + -82.3252105686509, + 78.07269286824106 + ], + [ + -82.6924896166972, + 78.04498291127784 + ], + [ + -83.89834594750909, + 77.4905395433545 + ], + [ + -84.76986694314938, + 77.52110290460227 + ], + [ + -84.86894988623251, + 77.56720733464209 + ], + [ + -84.52000427782221, + 77.66470337664052 + ], + [ + -84.43312073172268, + 77.72595977345031 + ], + [ + -84.9524993837726, + 77.60137938702356 + ], + [ + -85.4013900741296, + 77.81665038913502 + ], + [ + -84.37971496878009, + 77.90637207720494 + ], + [ + -85.6735382011222, + 77.93859099622692 + ], + [ + -84.5475006098358, + 78.07110595134057 + ], + [ + -85.08430480734752, + 78.09561156569045 + ], + [ + -84.9949951226788, + 78.16304016884605 + ], + [ + -84.1272201473672, + 78.17553710978285 + ], + [ + -84.970001224989, + 78.21082305803917 + ], + [ + -84.62596892715771, + 78.58928680432793 + ], + [ + -85.4861145009851, + 78.10247802544474 + ], + [ + -86.2881240857963, + 78.07880400951443 + ], + [ + -85.8330688439745, + 78.37997436779656 + ], + [ + -86.76306152046149, + 78.11499022869583 + ], + [ + -87.53236388709502, + 78.14060973892053 + ], + [ + -87.51014709793508, + 78.43151093219937 + ], + [ + -86.63890076068499, + 78.79942321602972 + ], + [ + -85.06416320261211, + 78.91914367043725 + ], + [ + -82.3083343557853, + 78.56887818026752 + ], + [ + -82.58257292951642, + 78.70456695336624 + ], + [ + -82.25473023020712, + 78.74081420598803 + ], + [ + -83.2527160573123, + 78.83359526841124 + ], + [ + -81.9138946517401, + 78.86581420324916 + ], + [ + -81.48402404699459, + 79.04574584691298 + ], + [ + -82.5030670120743, + 78.88275146537116 + ], + [ + -84.74804687926071, + 79.0319366474657 + ], + [ + -84.50361633248038, + 79.14443970378989 + ], + [ + -83.89639282996549, + 79.03804016548995 + ], + [ + -83.4747161899828, + 79.02415467028796 + ], + [ + -83.371734619246, + 79.04776001371289 + ], + [ + -84.30332947494749, + 79.186645506176 + ], + [ + -85.05958556804799, + 79.62386321495076 + ], + [ + -86.4791641161321, + 79.76166535198304 + ], + [ + -86.3672180156532, + 79.96276856143739 + ], + [ + -85.2659072869154, + 79.91727448161839 + ], + [ + -86.4745864815678, + 80.0062408512074 + ], + [ + -86.65812683218108, + 80.12470245729585 + ], + [ + -86.51472473859441, + 80.29914855640526 + ], + [ + -83.781951902596, + 80.24581908921722 + ], + [ + -82.1530609179806, + 79.85887145746126 + ], + [ + -81.7066650386983, + 79.58665465796327 + ], + [ + -79.8986129753982, + 79.64804839978417 + ], + [ + -79.7609786921892, + 79.69873810345307 + ], + [ + -81.519729621901, + 79.730819709096 + ], + [ + -81.8330688525385, + 79.97387694810938 + ], + [ + -83.19721984763109, + 80.31470488751145 + ], + [ + -78.0380554200807, + 80.56721497123849 + ], + [ + -79.96041870480427, + 80.61136626791887 + ], + [ + -76.51167296936049, + 80.85443114599732 + ], + [ + -78.93569183253469, + 80.8784484928232 + ], + [ + -77.976943975715, + 81.24914550843276 + ], + [ + -76.7627105640029, + 81.4379272382067 + ], + [ + -79.24276733038961, + 81.13998412391695 + ], + [ + -79.16180420199291, + 80.97505951039484 + ], + [ + -79.6094436672799, + 80.82193756858521 + ], + [ + -80.91944885907901, + 80.6555480892276 + ], + [ + -83.0274963355301, + 80.53858948103596 + ], + [ + -83.16916655977208, + 80.57040405153789 + ], + [ + -81.76299286261501, + 80.8140029840824 + ], + [ + -83.56597900801101, + 80.7415084788387 + ], + [ + -83.12971496453679, + 80.82241821285993 + ], + [ + -83.25695800004581, + 80.8385925332519 + ], + [ + -83.70471954802991, + 80.74720000927775 + ], + [ + -83.8405609126378, + 80.54553222072899 + ], + [ + -85.0669555734562, + 80.50526428938826 + ], + [ + -86.7389526313828, + 80.6033172556002 + ], + [ + -85.6058349553924, + 80.97581481305984 + ], + [ + -82.52305602530029, + 81.16638183818577 + ], + [ + -85.6816711482604, + 81.04942321417832 + ], + [ + -87.59472655653039, + 80.6285858116802 + ], + [ + -89.45444489017929, + 80.91001891374734 + ], + [ + -86.6719360316284, + 81.00526427843282 + ], + [ + -84.7372894309176, + 81.28428650424476 + ], + [ + -89.82084655286369, + 81.01081847967693 + ], + [ + -90.3519439734382, + 81.16748047174646 + ], + [ + -88.9459686231008, + 81.24706268494326 + ], + [ + -89.94840241045601, + 81.32776641726387 + ], + [ + -88.8469543525233, + 81.4997100820495 + ], + [ + -87.31111144965621, + 81.48887633795168 + ], + [ + -88.3522186282025, + 81.5797119218964 + ], + [ + -90.44305419995719, + 81.36665344922056 + ], + [ + -90.8471832275971, + 81.4415740930335 + ], + [ + -89.5923614550277, + 81.62185669084202 + ], + [ + -90.29695129359509, + 81.69859313881935 + ], + [ + -91.31388854962209, + 81.534149169572 + ], + [ + -91.95304870533579, + 81.66040039190311 + ], + [ + -90.4366607612287, + 81.88749695129017 + ], + [ + -89.35638428490238, + 81.8110961951434 + ], + [ + -89.20368193811109, + 81.88328551736875 + ], + [ + -89.37165831855329, + 81.93580627170044 + ], + [ + -88.0888900785077, + 82.09894562150218 + ], + [ + -86.76834106331529, + 81.89027404400406 + ], + [ + -87.1287460283582, + 81.96610259780708 + ], + [ + -86.35638427155551, + 82.05358887087827 + ], + [ + -85.4225006064797, + 81.85748290682257 + ], + [ + -85.7302093559345, + 81.98616790678795 + ], + [ + -84.7127456686904, + 81.92662047794374 + ], + [ + -86.86846160651861, + 82.197479247805 + ], + [ + -85.6199951248004, + 82.243591301094 + ], + [ + -85.3645095857238, + 82.28404236438793 + ], + [ + -85.9107589730682, + 82.42893981680662 + ], + [ + -85.04695129791591, + 82.48193359216394 + ], + [ + -83.5164032002167, + 82.31694030613629 + ], + [ + -82.75805664456189, + 82.07693481822707 + ], + [ + -81.88569641143701, + 82.03685761045689 + ], + [ + -83.0256195137411, + 82.27846527758092 + ], + [ + -79.2368087806254, + 81.81608581729296 + ] + ] + ], + [ + [ + [ + -84.7666626034992, + 71.19747924347082 + ], + [ + -84.7559738151537, + 71.41165160842415 + ], + [ + -84.5262527397857, + 71.47359466731034 + ], + [ + -84.634582524511, + 71.66915131073948 + ], + [ + -85.28555297124761, + 71.67040252824859 + ], + [ + -86.0491638234398, + 72.0124969515473 + ], + [ + -85.53833007682852, + 72.05914306804712 + ], + [ + -85.4974288891849, + 72.25471497148499 + ], + [ + -85.29194641361549, + 72.25999450693452 + ], + [ + -84.1679153420226, + 72.02262878643361 + ], + [ + -84.93429565726987, + 72.28692626974444 + ], + [ + -84.8699264486654, + 72.39908599229678 + ], + [ + -85.53527832572759, + 72.46971130319058 + ], + [ + -85.70479583576619, + 72.63811493579888 + ], + [ + -85.68506622206749, + 72.89727783162729 + ], + [ + -85.28306579623819, + 72.9644317632957 + ], + [ + -83.9556961107485, + 72.75061034905558 + ], + [ + -85.5362472551908, + 73.02512358992882 + ], + [ + -85.1919403075523, + 73.14166259587874 + ], + [ + -83.8411178611103, + 73.02581786872283 + ], + [ + -85.17762756938198, + 73.21605681930855 + ], + [ + -84.8080444298141, + 73.38832092450518 + ], + [ + -84.3494415353272, + 73.22615814892136 + ], + [ + -84.6538848874528, + 73.38957214201417 + ], + [ + -84.1944427514609, + 73.47470093381567 + ], + [ + -83.60722350509079, + 73.29679108244746 + ], + [ + -83.6581955023296, + 73.4474792455835 + ], + [ + -83.99145507353322, + 73.50495147576358 + ], + [ + -82.84680938145438, + 73.7315139799693 + ], + [ + -81.4761047359706, + 73.69802856681568 + ], + [ + -81.2241668718946, + 73.52845763937427 + ], + [ + -81.2070846559252, + 73.26971435692633 + ], + [ + -80.5963897659617, + 73.14804077823796 + ], + [ + -80.64152527429181, + 72.93067168472872 + ], + [ + -80.44499206402308, + 72.67359924791407 + ], + [ + -81.3723602226449, + 72.24165343607973 + ], + [ + -80.5209808330425, + 72.50595855676696 + ], + [ + -80.51417541467049, + 72.37969970667895 + ], + [ + -80.90126036884418, + 72.18748473977271 + ], + [ + -80.57424163992108, + 72.0706100431186 + ], + [ + -81.0826415994377, + 72.04886627044962 + ], + [ + -80.7934646549369, + 72.0251312214516 + ], + [ + -80.95028686978009, + 71.88108825396777 + ], + [ + -80.38500976144859, + 72.04832459174331 + ], + [ + -80.26653289657209, + 72.29262543331856 + ], + [ + -79.99166870498559, + 72.17665100346035 + ], + [ + -79.7416305571864, + 72.14178467009512 + ], + [ + -80.1595840468022, + 72.32428741549542 + ], + [ + -79.82889557328392, + 72.49999236515596 + ], + [ + -79.59555053334732, + 72.33471679843616 + ], + [ + -79.7659072848909, + 72.24328613906323 + ], + [ + -79.2433319125387, + 72.37442017122926 + ], + [ + -78.94540405336278, + 72.19498443693871 + ], + [ + -79.06667327867959, + 71.97512816842001 + ], + [ + -78.76889038221492, + 71.92692566372418 + ], + [ + -78.9192352320142, + 72.0127639795843 + ], + [ + -78.85839844267001, + 72.17032623850365 + ], + [ + -78.48194122206279, + 72.08984374339292 + ], + [ + -78.37361145208149, + 71.92276000570509 + ], + [ + -78.2187499935499, + 71.8294372526878 + ], + [ + -78.00334930847261, + 71.78359985767547 + ], + [ + -78.3117294332303, + 71.93001555747509 + ], + [ + -77.9330596882832, + 71.84579468458978 + ], + [ + -78.11859130214319, + 71.9635009706288 + ], + [ + -78.8699951204438, + 72.22817992467031 + ], + [ + -78.61000060574281, + 72.35928345156276 + ], + [ + -77.006629939107, + 72.12921142548161 + ], + [ + -78.5601348927898, + 72.44150542548635 + ], + [ + -77.64847565255839, + 72.73998260074488 + ], + [ + -75.2234802248442, + 72.49901581306027 + ], + [ + -74.9461059608632, + 72.25971221888872 + ], + [ + -76.0241699199974, + 72.08387756652571 + ], + [ + -76.34805297514349, + 71.8916625996197 + ], + [ + -75.7966613837134, + 72.1035919202157 + ], + [ + -75.2258987371862, + 72.07466888107652 + ], + [ + -75.58042144238699, + 72.00137328981249 + ], + [ + -75.8024902352458, + 71.75054931791087 + ], + [ + -76.09201813045959, + 71.69636536159537 + ], + [ + -75.8802795378571, + 71.70248412380577 + ], + [ + -75.0436096171644, + 72.1238632273648 + ], + [ + -74.25208282743421, + 72.07456969839181 + ], + [ + -74.1186065682259, + 71.96290588926361 + ], + [ + -74.23652649438719, + 71.82068633801288 + ], + [ + -75.3712463395816, + 71.68914031509884 + ], + [ + -74.9402694719545, + 71.66421508862666 + ], + [ + -75.40250396838661, + 71.52001953579958 + ], + [ + -74.63138579639619, + 71.65602875004328 + ], + [ + -74.8333358821932, + 71.51956940240143 + ], + [ + -74.70520782110191, + 71.38352203076371 + ], + [ + -75.0650024391201, + 71.18081665562582 + ], + [ + -74.64598083735629, + 71.37539673221534 + ], + [ + -74.73958587841909, + 71.52124023329095 + ], + [ + -74.543884272279, + 71.63136291423187 + ], + [ + -73.60756683361261, + 71.7722091679038 + ], + [ + -74.1213836686574, + 71.43858337123413 + ], + [ + -74.06388855583629, + 71.33692931692251 + ], + [ + -73.6536102313709, + 71.58749389816346 + ], + [ + -73.6062011734099, + 71.38734436070224 + ], + [ + -73.3835449218187, + 71.38776397408283 + ], + [ + -73.6630554248398, + 71.25416564954853 + ], + [ + -73.8463897743686, + 71.06206512533609 + ], + [ + -73.4348602323942, + 71.33769989576015 + ], + [ + -73.05735778228009, + 71.26644896873982 + ], + [ + -73.3737411550043, + 70.98317719055908 + ], + [ + -72.4747161846774, + 71.64276122663595 + ], + [ + -71.4475631680031, + 71.46956634936983 + ], + [ + -71.1236038275573, + 71.2611007706229 + ], + [ + -71.45833587902459, + 71.06526947652442 + ], + [ + -72.07750701824969, + 71.07276915894619 + ], + [ + -72.1706924459322, + 70.83790588820736 + ], + [ + -72.6115188603999, + 70.63415526881843 + ], + [ + -70.83612061133111, + 71.1144256654187 + ], + [ + -70.6030578594401, + 71.05372620140919 + ], + [ + -70.5153503473209, + 70.92539977494819 + ], + [ + -70.7733306883076, + 70.73442078028648 + ], + [ + -71.5586090131249, + 70.60942077033964 + ], + [ + -71.8030548026674, + 70.42831420515961 + ], + [ + -71.8437500023088, + 70.29351806577502 + ], + [ + -71.50541686891371, + 70.57443237164853 + ], + [ + -71.1730499271297, + 70.53234100653094 + ], + [ + -71.4936065657615, + 70.05053710437598 + ], + [ + -70.9130554271727, + 70.63777161075483 + ], + [ + -69.90728759507779, + 70.87990570801658 + ], + [ + -69.77465057737439, + 70.85720062851688 + ], + [ + -70.45472716861109, + 70.62776184119463 + ], + [ + -70.48791503371041, + 70.48390197907175 + ], + [ + -69.4605636664104, + 70.79123687432248 + ], + [ + -68.31972502951749, + 70.56484985284503 + ], + [ + -68.4520111112516, + 70.37532806369434 + ], + [ + -69.66806030095, + 70.19859314453551 + ], + [ + -70.46583557033709, + 69.84346008321677 + ], + [ + -69.65333557203161, + 70.1449890095762 + ], + [ + -68.6456298810102, + 70.152832034823 + ], + [ + -69.4333267181695, + 69.81804656595298 + ], + [ + -69.8058319061359, + 69.81999206225578 + ], + [ + -69.9905548132524, + 69.61499024010172 + ], + [ + -69.7564620918631, + 69.79859161766778 + ], + [ + -69.4025039627537, + 69.77707671564198 + ], + [ + -68.22138976908771, + 70.10276794175628 + ], + [ + -68.34805297254749, + 70.17421721940231 + ], + [ + -68.1600036636607, + 70.28276061476201 + ], + [ + -67.8013839778518, + 70.26068878876521 + ], + [ + -67.21986389505581, + 69.94081115417457 + ], + [ + -67.12777709953889, + 69.72692871464336 + ], + [ + -68.0045852664139, + 69.77317810040378 + ], + [ + -68.3189621028002, + 69.63082122381823 + ], + [ + -70.0288925110989, + 69.53262328872323 + ], + [ + -68.6119384798544, + 69.58749390120023 + ], + [ + -66.7904128956071, + 69.33914948167569 + ], + [ + -66.6480636563979, + 69.23068237161561 + ], + [ + -66.7602157563178, + 69.1289367719955 + ], + [ + -67.6763916052815, + 69.16943359152341 + ], + [ + -68.1844787567348, + 69.30801391819652 + ], + [ + -69.01501465520829, + 69.35498046539202 + ], + [ + -69.2477417016509, + 69.27169036457639 + ], + [ + -68.0828475998083, + 69.22095489010098 + ], + [ + -68.9677734425994, + 69.22109985281199 + ], + [ + -68.50917053336829, + 69.1972045958382 + ], + [ + -68.9616699256536, + 69.10386658281229 + ], + [ + -68.960899346816, + 69.0017929003763 + ], + [ + -68.1783294745068, + 69.1466522267238 + ], + [ + -67.7188873237709, + 69.02610016284207 + ], + [ + -67.98693847435301, + 68.85443115375436 + ], + [ + -68.48072052501229, + 68.89373779580818 + ], + [ + -67.77409362695239, + 68.78234863734963 + ], + [ + -69.3901367208863, + 68.86470031397545 + ], + [ + -68.0474929756514, + 68.67949676818746 + ], + [ + -68.0909805357331, + 68.62859344835994 + ], + [ + -68.6577758748668, + 68.65637207530723 + ], + [ + -68.8977737478321, + 68.60526275273374 + ], + [ + -68.835830688946, + 68.58915710360384 + ], + [ + -67.4965286202341, + 68.53276062294832 + ], + [ + -67.60333252203701, + 68.3788604712475 + ], + [ + -67.426101689454, + 68.49443054773424 + ], + [ + -66.7023620554071, + 68.43637084407742 + ], + [ + -67.3674545270647, + 68.34531403280282 + ], + [ + -67.01965331755949, + 68.31386566126051 + ], + [ + -67.3910446133516, + 68.21709442640301 + ], + [ + -67.003059392382, + 68.2928314273942 + ], + [ + -66.3180542016649, + 68.12380217865929 + ], + [ + -66.18804932168209, + 68.01394654049946 + ], + [ + -66.73520660716959, + 67.87605285524387 + ], + [ + -66.4013977051392, + 67.81109618790651 + ], + [ + -65.994132989125, + 68.02427674075545 + ], + [ + -66.0020141570215, + 67.62879944525233 + ], + [ + -65.8172226019815, + 67.96436310084835 + ], + [ + -65.44416046055609, + 67.98900603927468 + ], + [ + -65.6082229671606, + 67.79047394478835 + ], + [ + -65.3463897762179, + 67.59332275576952 + ], + [ + -65.5509719849914, + 67.78089141124086 + ], + [ + -65.42361450273772, + 67.89804077330854 + ], + [ + -65.00111388437209, + 68.05554199219294 + ], + [ + -64.72618103011831, + 67.98883057129017 + ], + [ + -65.126937861071, + 67.71693420812832 + ], + [ + -64.36624144938901, + 67.76054381879216 + ], + [ + -64.07028198390128, + 67.60636901642192 + ], + [ + -63.907913205571425, + 67.30168151890041 + ], + [ + -64.7923889149644, + 67.35540008180942 + ], + [ + -64.44166564231679, + 67.30303955647058 + ], + [ + -64.7658386228851, + 67.190254217792 + ], + [ + -63.97114182067229, + 67.27585601088836 + ], + [ + -64.6119384711844, + 67.1324768021811 + ], + [ + -64.69697570293329, + 67.00908661257677 + ], + [ + -63.460624700812396, + 67.22453307768048 + ], + [ + -63.5655517542357, + 67.06248474479008 + ], + [ + -63.1102828988954, + 67.32998657928951 + ], + [ + -62.9723587083661, + 67.22956084510169 + ], + [ + -63.27451325085212, + 67.11338042724128 + ], + [ + -63.228469853093685, + 66.97470855525955 + ], + [ + -63.77360916092281, + 66.81845855388416 + ], + [ + -62.842361451015584, + 66.95984650100634 + ], + [ + -62.90913009326529, + 66.64651489412704 + ], + [ + -62.73416518768079, + 66.94470214396358 + ], + [ + -62.101394653032294, + 67.05470275957835 + ], + [ + -61.264583588316704, + 66.62609100163465 + ], + [ + -61.46166991861239, + 66.5433196968842 + ], + [ + -61.95055388980881, + 66.67692565879496 + ], + [ + -62.1238861071536, + 66.62637328968036 + ], + [ + -61.5792007514107, + 66.48101806465253 + ], + [ + -61.97784424070828, + 66.4123764074556 + ], + [ + -61.4650001538149, + 66.3696975688614 + ], + [ + -61.8774948065643, + 66.28332519692732 + ], + [ + -62.45610808622661, + 66.42387390254453 + ], + [ + -62.708747866472585, + 66.40852355749972 + ], + [ + -62.320140833320785, + 66.3027572625713 + ], + [ + -62.673889155740014, + 66.21568298921099 + ], + [ + -62.88354110801679, + 66.33374024070703 + ], + [ + -62.71055603744091, + 66.20068359487928 + ], + [ + -61.959793095275614, + 66.02158355129299 + ], + [ + -62.96499633653501, + 66.14846039487519 + ], + [ + -63.061111449992396, + 66.11859893154626 + ], + [ + -62.411945340791895, + 65.96678923885956 + ], + [ + -62.31722258886639, + 65.80802917983365 + ], + [ + -62.64916611332569, + 65.58665466576906 + ], + [ + -63.206111905618876, + 65.63694000684632 + ], + [ + -63.4397201549044, + 65.84998321961655 + ], + [ + -63.45527648795151, + 65.68095398562576 + ], + [ + -63.7185707030935, + 65.67820739046772 + ], + [ + -63.323333734298096, + 65.59706878870101 + ], + [ + -63.54695129272021, + 64.88720703417917 + ], + [ + -64.3770752004455, + 65.17914581910267 + ], + [ + -64.23915863254872, + 65.4274063159512 + ], + [ + -64.55062102842479, + 65.09429169271469 + ], + [ + -64.9034729027362, + 65.33661651796977 + ], + [ + -64.4187469521827, + 65.47984314133363 + ], + [ + -65.008613581538, + 65.36692809995264 + ], + [ + -65.1619415345148, + 65.48647307697713 + ], + [ + -64.8033142113295, + 65.60831451576173 + ], + [ + -65.33596801590949, + 65.56957244979951 + ], + [ + -64.90695190459401, + 65.72886657964344 + ], + [ + -65.5018081734647, + 65.74887848138782 + ], + [ + -64.3623199515096, + 66.34321593944931 + ], + [ + -64.9412460392352, + 66.07860564807508 + ], + [ + -65.8763885456923, + 65.94802856936813 + ], + [ + -65.96347809380529, + 66.03914642067778 + ], + [ + -65.6440277099715, + 66.16741180710378 + ], + [ + -65.4807586648457, + 66.38484954853662 + ], + [ + -66.0736236573873, + 66.12052916784046 + ], + [ + -66.49250031118409, + 66.204574587485 + ], + [ + -66.5719451846762, + 66.36206054636082 + ], + [ + -66.7677764935187, + 66.3805389425502 + ], + [ + -66.85194396374519, + 66.58332824036425 + ], + [ + -67.0327758782558, + 66.64402008174135 + ], + [ + -66.88716124782339, + 66.56651306717585 + ], + [ + -67.7342987088508, + 66.56880187681551 + ], + [ + -67.1461868330611, + 66.44025421708771 + ], + [ + -67.2822265673224, + 66.27526856104609 + ], + [ + -67.989295961404, + 66.50756073409951 + ], + [ + -67.16375732507841, + 66.03609466957685 + ], + [ + -67.1887435915854, + 65.91241455455068 + ], + [ + -67.8241729800277, + 65.88081359766485 + ], + [ + -67.9385986295785, + 65.90803527115307 + ], + [ + -68.02652740445251, + 66.06330872043279 + ], + [ + -68.244720464714, + 66.18275451477248 + ], + [ + -68.8438873248271, + 66.1887283290159 + ], + [ + -68.0472259476143, + 66.06498718869871 + ], + [ + -68.1360397292755, + 65.82604980524907 + ], + [ + -67.8211212141828, + 65.76805114162724 + ], + [ + -68.023300170623, + 65.48838043063012 + ], + [ + -67.2779235839685, + 65.64012908328195 + ], + [ + -67.455902098004, + 65.49887085360592 + ], + [ + -66.9328460722363, + 65.2327575619504 + ], + [ + -67.10465240665872, + 65.05983733535378 + ], + [ + -66.7323608440707, + 65.18005370853109 + ], + [ + -66.69464111023039, + 64.76186371089575 + ], + [ + -66.66707610866149, + 65.03789519731527 + ], + [ + -65.72249603136801, + 64.84193420051447 + ], + [ + -65.56204222932351, + 64.73154449153645 + ], + [ + -65.7019424509171, + 64.48622894047172 + ], + [ + -65.1444549504296, + 64.5113830523309 + ], + [ + -65.0722274713137, + 64.43463134185022 + ], + [ + -65.29354096008748, + 64.29123687313391 + ], + [ + -65.05332183911129, + 64.06929779772182 + ], + [ + -65.2122497582333, + 64.0353317311525 + ], + [ + -64.6731262259857, + 64.0343627869454 + ], + [ + -64.985412603358, + 63.82381438656079 + ], + [ + -64.50771331918729, + 63.64235305197938 + ], + [ + -64.4886093068713, + 63.28659057058974 + ], + [ + -64.6583404570323, + 63.249160762171634 + ], + [ + -65.0463867180369, + 63.66220856443608 + ], + [ + -65.02694701501649, + 63.39916229863405 + ], + [ + -64.6306152327437, + 62.899021144312364 + ], + [ + -65.2523651070305, + 62.9753379814039 + ], + [ + -64.9488830617358, + 62.648605344470894 + ], + [ + -65.18749999974581, + 62.56221008989555 + ], + [ + -65.746948241801, + 62.91777038722719 + ], + [ + -66.6776351943047, + 63.024715418308986 + ], + [ + -67.8975067139416, + 63.753051765076265 + ], + [ + -67.7105560372204, + 63.45860290775822 + ], + [ + -68.8760986378306, + 63.74471282640547 + ], + [ + -68.20541382266019, + 63.22096252184382 + ], + [ + -66.6069488581199, + 62.60499573380698 + ], + [ + -66.0518341046922, + 62.22773361040067 + ], + [ + -66.1100006136661, + 62.01749419939114 + ], + [ + -65.9480438260843, + 61.907768249189715 + ], + [ + -68.5563812259598, + 62.250270844548254 + ], + [ + -69.43673705735989, + 62.55033874670838 + ], + [ + -69.59062957168419, + 62.657905575228476 + ], + [ + -69.4824981670726, + 62.763610844865795 + ], + [ + -70.2347259521254, + 62.75013351476828 + ], + [ + -71.01306151849202, + 62.989990228966924 + ], + [ + -70.91471862068589, + 63.16985701795843 + ], + [ + -71.2383270251626, + 63.00152206276142 + ], + [ + -71.710281365733, + 63.1770782457667 + ], + [ + -71.80068969298401, + 63.38374329092184 + ], + [ + -72.1399993932187, + 63.443115237378535 + ], + [ + -71.6072235085688, + 63.424160006461754 + ], + [ + -71.2298583985334, + 63.60262679654505 + ], + [ + -71.90055847371251, + 63.80922698297696 + ], + [ + -71.9270782457744, + 63.652492524241964 + ], + [ + -72.3216705344903, + 63.67617417058146 + ], + [ + -72.2421493462106, + 63.94971466330328 + ], + [ + -72.3745117132444, + 63.81040573387447 + ], + [ + -72.6347351133326, + 63.85249328030406 + ], + [ + -72.9028472892057, + 64.16193389457747 + ], + [ + -73.379371641167, + 64.27012633922409 + ], + [ + -73.4155578547086, + 64.44581604361986 + ], + [ + -73.1662445057207, + 64.57818603328613 + ], + [ + -73.3015289358971, + 64.65783690952435 + ], + [ + -73.47215271547779, + 64.50679015829883 + ], + [ + -73.6555633503063, + 64.62762451022633 + ], + [ + -74.06277466366188, + 64.3344268851612 + ], + [ + -74.0538787862759, + 64.72797394437023 + ], + [ + -74.38791655894929, + 64.57048034811822 + ], + [ + -74.70208740733369, + 64.73519133874646 + ], + [ + -74.4799957318339, + 64.83762359452807 + ], + [ + -74.6309661830157, + 64.90373229668957 + ], + [ + -74.9789886405316, + 64.79061126730637 + ], + [ + -74.4728469853812, + 64.55893707300304 + ], + [ + -74.6858215354841, + 64.37109375211831 + ], + [ + -75.82417296787969, + 64.61164856379885 + ], + [ + -75.6385116513173, + 64.45953368568112 + ], + [ + -75.72121429340041, + 64.3780441332013 + ], + [ + -76.7058410715678, + 64.30081176930523 + ], + [ + -76.6705474874458, + 64.18414306065308 + ], + [ + -77.74722290373619, + 64.33776856168431 + ], + [ + -78.18068694637279, + 64.56999207207033 + ], + [ + -78.14729309327149, + 64.94796752347965 + ], + [ + -77.3168029748243, + 65.19226836505499 + ], + [ + -77.5095825178219, + 65.320472711446 + ], + [ + -77.3855590747149, + 65.46804809819012 + ], + [ + -75.76993560890539, + 65.2176895196953 + ], + [ + -75.42624664001703, + 65.04609679590736 + ], + [ + -75.66527556877509, + 64.94303131611078 + ], + [ + -75.3891754196883, + 64.73609924291875 + ], + [ + -75.5614547701498, + 64.87796782871247 + ], + [ + -75.1904068024385, + 65.10144042442352 + ], + [ + -75.9433288515412, + 65.31957244465019 + ], + [ + -75.1866607725437, + 65.25193785956618 + ], + [ + -75.1049194372916, + 65.38845824724302 + ], + [ + -74.52444458400261, + 65.33332824410522 + ], + [ + -74.18276977408439, + 65.52526856034193 + ], + [ + -73.50056458118402, + 65.4744262658054 + ], + [ + -73.7099304267268, + 65.76200104208397 + ], + [ + -74.47086334642839, + 66.13484192075478 + ], + [ + -72.2583465553928, + 67.2480316186588 + ], + [ + -72.99332427912401, + 68.20539856594438 + ], + [ + -73.8537521314558, + 68.34442901127157 + ], + [ + -73.7609710718891, + 68.68581391051175 + ], + [ + -74.09416198042531, + 68.71998596508284 + ], + [ + -73.8848648122938, + 68.55741119875091 + ], + [ + -73.9902801565089, + 68.49275207946832 + ], + [ + -74.38527679859659, + 68.5442886380547 + ], + [ + -74.7272186218078, + 68.73373412716163 + ], + [ + -74.54804993029819, + 68.82603454805692 + ], + [ + -75.037986753634, + 68.92768860236856 + ], + [ + -74.64507293318401, + 69.01436614498957 + ], + [ + -74.830421441683, + 69.08116912594497 + ], + [ + -75.1319427454101, + 68.88638306135336 + ], + [ + -76.62887573570859, + 68.68692016530973 + ], + [ + -76.63791656106179, + 69.00880432149415 + ], + [ + -75.9969329865005, + 69.0030364952528 + ], + [ + -75.60443877943099, + 69.0889434885243 + ], + [ + -75.5916748068242, + 69.22164916889481 + ], + [ + -76.6395874066953, + 69.55123138761505 + ], + [ + -76.1856231715226, + 69.66207122999094 + ], + [ + -77.19131470357381, + 69.64273070965523 + ], + [ + -76.7813873298217, + 69.74581908683695 + ], + [ + -77.30506133433948, + 69.83394622708057 + ], + [ + -76.9901046765969, + 69.93685149890126 + ], + [ + -77.6320877006389, + 69.74942779139694 + ], + [ + -77.6770095835906, + 70.18421172895403 + ], + [ + -78.4034729006663, + 70.2133254960863 + ], + [ + -78.49528503076989, + 70.3574829062637 + ], + [ + -79.07055663390908, + 70.4697113062272 + ], + [ + -78.72610473830339, + 70.54748534882995 + ], + [ + -79.01736450444182, + 70.67998504119846 + ], + [ + -79.1794433573496, + 70.42581939277393 + ], + [ + -79.58923340576702, + 70.41088867585347 + ], + [ + -78.9216613817325, + 70.30081177493871 + ], + [ + -78.66416931679359, + 70.00416565328948 + ], + [ + -78.79194641242779, + 69.89109802656498 + ], + [ + -79.69180297213931, + 69.85109710571739 + ], + [ + -81.75680541646581, + 70.12490844516448 + ], + [ + -80.7678146296534, + 69.77037047995489 + ], + [ + -80.95249939412011, + 69.71388243924676 + ], + [ + -82.101104741472, + 70.10803223194118 + ], + [ + -82.99986266901789, + 70.30414581408549 + ], + [ + -81.7398529031987, + 69.87442016396726 + ], + [ + -85.36151885762591, + 70.1034545831738 + ], + [ + -85.87464905125329, + 70.07942962349759 + ], + [ + -85.24590301585708, + 69.9913330032714 + ], + [ + -85.8158340435117, + 69.99943541917868 + ], + [ + -86.5540237410636, + 70.23984528289223 + ], + [ + -86.40750122120289, + 70.45999146208902 + ], + [ + -86.6448669417038, + 70.32179260614642 + ], + [ + -86.99638366108621, + 70.46748352187853 + ], + [ + -87.1836090032208, + 70.39401244788596 + ], + [ + -86.98110961608499, + 70.28318786551891 + ], + [ + -87.92186736344009, + 70.24310302199531 + ], + [ + -88.89750671891302, + 70.53276061991144 + ], + [ + -89.5497283979025, + 71.0885925347743 + ], + [ + -87.9999999941321, + 70.92915344221929 + ], + [ + -87.2469482423271, + 71.00915526917049 + ], + [ + -88.0288925132538, + 71.23317718096452 + ], + [ + -89.9034805242659, + 71.35304260342863 + ], + [ + -90.01306152650028, + 71.60026550814666 + ], + [ + -89.80833435501582, + 71.74775695747067 + ], + [ + -90.04861450128301, + 71.9538726865429 + ], + [ + -89.9104156453403, + 72.42720794732473 + ], + [ + -89.36471558010788, + 72.7622070268293 + ], + [ + -89.22833251776579, + 73.12580871477725 + ], + [ + -88.409164426423, + 73.5236053399377 + ], + [ + -86.7166595474306, + 73.84082031679031 + ], + [ + -85.1130523727754, + 73.80900573452611 + ], + [ + -84.8402786254589, + 73.73873138908951 + ], + [ + -85.9302825904475, + 73.35525512473195 + ], + [ + -86.73277283393669, + 72.7160949664036 + ], + [ + -86.26139069209019, + 72.44998168949186 + ], + [ + -86.4334640545496, + 72.0466537461098 + ], + [ + -86.13276671757468, + 71.79582213683169 + ], + [ + -84.83687590890091, + 71.28105926970862 + ], + [ + -86.8162460253693, + 70.98782348724978 + ], + [ + -84.95291137879418, + 71.18788910203492 + ], + [ + -84.8479156479595, + 71.15123749508659 + ], + [ + -84.96756744504522, + 70.92567444036148 + ], + [ + -84.80520630409168, + 70.92179107038815 + ], + [ + -84.7666626034992, + 71.19747924347082 + ] + ] + ], + [ + [ + [ + -112.00083923197502, + 70.37803650194323 + ], + [ + -113.93831634387301, + 70.71527099833098 + ], + [ + -117.55152130581202, + 70.59623718446977 + ], + [ + -118.41090392681501, + 71.00025939541969 + ], + [ + -115.066947936657, + 71.52387237495763 + ], + [ + -118.112213135551, + 71.37359619077122 + ], + [ + -118.31207275407002, + 71.45901488854454 + ], + [ + -117.71183776557902, + 71.66408539052726 + ], + [ + -118.903755186871, + 71.57943725344543 + ], + [ + -119.13445281939902, + 71.77457428283017 + ], + [ + -118.69194030481701, + 72.13053894063631 + ], + [ + -118.12388610465801, + 72.22443389957131 + ], + [ + -118.58860779238802, + 72.41665649672787 + ], + [ + -118.207229610003, + 72.61859130767567 + ], + [ + -114.561660762222, + 73.37553405754086 + ], + [ + -113.955688472063, + 73.11942290978924 + ], + [ + -114.054992680233, + 72.88360595658588 + ], + [ + -114.558326724127, + 72.56080627247938 + ], + [ + -113.466400143038, + 72.66526794391056 + ], + [ + -113.59069061708003, + 72.7879028313895 + ], + [ + -113.028060915706, + 73.00942992723544 + ], + [ + -111.229927061767, + 72.72345733542329 + ], + [ + -111.26986694270502, + 72.57332610616088 + ], + [ + -111.899101261132, + 72.35297393667845 + ], + [ + -111.66388702066003, + 72.27638244553636 + ], + [ + -111.301650999496, + 72.46179199286874 + ], + [ + -111.112777708695, + 72.33526611256892 + ], + [ + -110.70834350729801, + 72.57429504197867 + ], + [ + -109.78582763748601, + 72.43247986004857 + ], + [ + -110.28228759593401, + 72.66290283227829 + ], + [ + -109.773338321615, + 72.72019958250037 + ], + [ + -110.743606566462, + 72.98678588931553 + ], + [ + -109.659439087335, + 72.92498779005471 + ], + [ + -109.04075622249898, + 72.56950378309216 + ], + [ + -108.61888122316, + 72.54762268108884 + ], + [ + -108.660560609962, + 72.34123993194925 + ], + [ + -108.238601681965, + 71.71512603629635 + ], + [ + -107.75334167591102, + 71.61026000854874 + ], + [ + -107.26142883386102, + 71.8896331752128 + ], + [ + -107.628044132821, + 72.0240173356815 + ], + [ + -108.29318999986101, + 73.14915466718674 + ], + [ + -108.062362671315, + 73.35359191991586 + ], + [ + -107.24999999788601, + 73.21748352184314 + ], + [ + -106.861389159809, + 73.31080627650185 + ], + [ + -105.855560302464, + 73.05693054436414 + ], + [ + -105.32347107112001, + 72.7388000479004 + ], + [ + -104.929443359034, + 72.0341491740505 + ], + [ + -104.36082458873001, + 71.58165741015384 + ], + [ + -104.57805633543799, + 71.062492368808 + ], + [ + -103.556381221736, + 70.60081481867996 + ], + [ + -102.92318725944702, + 70.50307464364023 + ], + [ + -103.126098630987, + 70.57388305639763 + ], + [ + -103.02500915894801, + 70.66026306521377 + ], + [ + -101.59156036646402, + 70.27029419390873 + ], + [ + -101.55596923615501, + 70.11151123074988 + ], + [ + -100.999732969383, + 70.1727600094147 + ], + [ + -100.870002747007, + 69.78831481510186 + ], + [ + -100.96319579629203, + 69.66110229341265 + ], + [ + -101.694580076009, + 69.68248748566695 + ], + [ + -102.235557558962, + 69.91526031062337 + ], + [ + -102.60305786508201, + 69.53831481687945 + ], + [ + -103.481796262626, + 69.68914794643663 + ], + [ + -103.013900759986, + 69.47415161534181 + ], + [ + -103.18222045484602, + 69.11109924741359 + ], + [ + -102.83215332189302, + 69.3841628987776 + ], + [ + -102.30554962495603, + 69.49845886459933 + ], + [ + -101.95137786515001, + 69.43344878913183 + ], + [ + -101.75305938672501, + 69.16290282909911 + ], + [ + -101.85138702494702, + 68.98442077805959 + ], + [ + -102.894729615976, + 68.79998779131978 + ], + [ + -105.136947633046, + 68.89776610894536 + ], + [ + -105.248893736785, + 68.9455261274666 + ], + [ + -104.920898437476, + 69.0723419176141 + ], + [ + -106.40791321054502, + 69.1845626816512 + ], + [ + -106.31639098801702, + 69.3866577157841 + ], + [ + -106.61110687651401, + 69.4969940190324 + ], + [ + -107.342216495933, + 69.01887512459106 + ], + [ + -108.530693057437, + 68.94497680687054 + ], + [ + -109.10472106762101, + 68.71054077057654 + ], + [ + -113.260421750215, + 68.45304108114084 + ], + [ + -113.67179870680998, + 68.80664825208956 + ], + [ + -113.553596498618, + 69.18719482880662 + ], + [ + -116.532211303742, + 69.40887451370702 + ], + [ + -116.57847594953, + 69.55817413730072 + ], + [ + -117.24319457657303, + 69.75499725234778 + ], + [ + -117.43256377712302, + 69.98345184448648 + ], + [ + -114.54306030617701, + 70.31330871154881 + ], + [ + -111.45262909333199, + 70.28318024132082 + ], + [ + -112.00083923197502, + 70.37803650194323 + ] + ] + ], + [ + [ + [ + -93.99722289830711, + 79.25694275022462 + ], + [ + -94.3763885503923, + 79.42053985795474 + ], + [ + -95.0186157221434, + 79.26693725750212 + ], + [ + -95.77902984323761, + 79.41942596158711 + ], + [ + -95.7363891609884, + 79.53749084752474 + ], + [ + -94.6994323724113, + 79.61219787462424 + ], + [ + -94.3268127459703, + 79.77970886004725 + ], + [ + -95.8533325212147, + 79.64610290349366 + ], + [ + -96.5825042726718, + 79.8512344386366 + ], + [ + -96.13806152323718, + 79.90637207117807 + ], + [ + -96.80208587618789, + 80.08887481447071 + ], + [ + -94.38570403998679, + 79.985122680907 + ], + [ + -94.7488861073341, + 80.07998657421703 + ], + [ + -94.0909042372498, + 80.17491149618282 + ], + [ + -95.36776733502089, + 80.11831665290092 + ], + [ + -96.6715240460516, + 80.34456634546665 + ], + [ + -95.7324981713267, + 80.37275695934267 + ], + [ + -95.9799957262517, + 80.5847167997528 + ], + [ + -93.78666686932512, + 80.52880096196647 + ], + [ + -94.66437530654949, + 80.6635589616062 + ], + [ + -94.1083374033845, + 80.71887206905271 + ], + [ + -95.5272216786535, + 80.8192901611384 + ], + [ + -95.18305969311791, + 81.01971435465623 + ], + [ + -94.4086151114603, + 80.96554565485835 + ], + [ + -94.0422210721344, + 81.05554199032542 + ], + [ + -94.31304931853009, + 81.11553955136593 + ], + [ + -93.09465027152841, + 81.15839386133256 + ], + [ + -94.38569641064319, + 81.25443267966578 + ], + [ + -93.5175018320434, + 81.38499450980198 + ], + [ + -91.8580474824909, + 81.16775512698926 + ], + [ + -90.60249328792251, + 80.6447448720745 + ], + [ + -90.74137878687868, + 80.56219482480809 + ], + [ + -89.2449951142474, + 80.51721191576196 + ], + [ + -89.05915832338312, + 80.46138000685006 + ], + [ + -89.2585449200639, + 80.28922271455153 + ], + [ + -88.74999999830352, + 80.12664795106453 + ], + [ + -88.2530593875287, + 80.11441039845802 + ], + [ + -88.6613922094835, + 80.27249145413087 + ], + [ + -88.615280151476, + 80.40386963013668 + ], + [ + -87.6751403803834, + 80.40706634342808 + ], + [ + -87.56472015167641, + 80.18060302923894 + ], + [ + -88.01638793834448, + 80.11478424239303 + ], + [ + -87.04333495915711, + 79.96499633816529 + ], + [ + -87.4636230480015, + 79.83137512292427 + ], + [ + -86.96340179506088, + 79.9053344743413 + ], + [ + -87.13916778521062, + 79.64151763746156 + ], + [ + -87.4625091577276, + 79.53471374813697 + ], + [ + -86.33416748094271, + 79.64553833205999 + ], + [ + -86.0441665658613, + 79.56720733623436 + ], + [ + -86.07084655749729, + 79.43414306917724 + ], + [ + -85.68194580191391, + 79.61331176489816 + ], + [ + -84.90556335476921, + 79.27102661010018 + ], + [ + -86.4855499240974, + 79.06330871525566 + ], + [ + -87.61582946636948, + 78.64526367174003 + ], + [ + -88.00237274256219, + 78.81568145539393 + ], + [ + -87.7494506816105, + 79.08582306085665 + ], + [ + -88.21187591601989, + 78.96289825251368 + ], + [ + -88.2011108389349, + 78.75721740462447 + ], + [ + -87.9016723647597, + 78.5908279449127 + ], + [ + -87.98472595480389, + 78.4922027607839 + ], + [ + -88.7963867187778, + 78.6112365733713 + ], + [ + -88.53971862569469, + 78.4195632919208 + ], + [ + -88.81777953866761, + 78.15443420183097 + ], + [ + -90.0147247310299, + 78.60942077738353 + ], + [ + -89.9850006129766, + 78.43609618940519 + ], + [ + -89.46166991953271, + 78.16838073961364 + ], + [ + -90.73992919938827, + 78.32095336647927 + ], + [ + -90.27076721183602, + 78.18463134528746 + ], + [ + -90.6244354266524, + 78.13442993468205 + ], + [ + -92.5469360371833, + 78.31261443897198 + ], + [ + -92.972770689366, + 78.48595428563772 + ], + [ + -91.63784790213519, + 78.5448455796543 + ], + [ + -93.27777862709812, + 78.58582305888321 + ], + [ + -93.8081970234952, + 78.76804351645903 + ], + [ + -93.04342651667982, + 78.74977111642364 + ], + [ + -94.2880554179455, + 78.98373413031337 + ], + [ + -93.2949981716092, + 79.16693114997628 + ], + [ + -90.3705368036134, + 79.2455749488935 + ], + [ + -92.6852722172993, + 79.25554656813999 + ], + [ + -91.124580386156, + 79.38860321194723 + ], + [ + -92.5696487457205, + 79.37490844860031 + ], + [ + -92.2386093166606, + 79.43636322038132 + ], + [ + -92.4197235133062, + 79.45721435686833 + ], + [ + -93.3200073247874, + 79.44831848117722 + ], + [ + -93.99722289830711, + 79.25694275022462 + ] + ] + ], + [ + [ + [ + -89.9373550453918, + 74.53151702538621 + ], + [ + -91.01854705477079, + 74.70644378926632 + ], + [ + -90.7650070205128, + 74.88290404861283 + ], + [ + -91.1019439739246, + 74.75109863593633 + ], + [ + -91.1330566414449, + 74.62442016390804 + ], + [ + -92.05152130236809, + 74.79317474724722 + ], + [ + -92.04950713873589, + 74.95652007700896 + ], + [ + -92.49082946912608, + 75.21360778840938 + ], + [ + -92.3883361806091, + 75.44192504982462 + ], + [ + -92.00945282357469, + 75.5920715374182 + ], + [ + -92.1077728301478, + 75.85282898308807 + ], + [ + -93.0777816772061, + 76.35567474560771 + ], + [ + -95.3815231321357, + 76.23511505356352 + ], + [ + -94.8065185566209, + 76.31942748687793 + ], + [ + -96.1002120963222, + 76.50256347444002 + ], + [ + -95.7786102329033, + 76.51887512068983 + ], + [ + -95.59131621941057, + 76.60005187943575 + ], + [ + -96.95423126179689, + 76.72741698933987 + ], + [ + -96.30874634147662, + 76.75263213868696 + ], + [ + -96.81517028414288, + 76.9693222069665 + ], + [ + -95.74361419279839, + 77.06860351378333 + ], + [ + -93.7470855735692, + 76.9216537518767 + ], + [ + -93.19930266949419, + 76.74612427172568 + ], + [ + -93.30346679368341, + 76.54942321648306 + ], + [ + -93.64910125341659, + 76.44053649463622 + ], + [ + -93.5483398426683, + 76.38610839874761 + ], + [ + -93.0463867148005, + 76.61608886331766 + ], + [ + -90.9861145030338, + 76.64915466139567 + ], + [ + -90.4721527095265, + 76.47484588784316 + ], + [ + -91.5654144266415, + 76.49984740789685 + ], + [ + -89.19812011993712, + 76.2311630244087 + ], + [ + -90.44474792081948, + 76.17095184397851 + ], + [ + -90.30888366885239, + 76.13832091896128 + ], + [ + -91.6019515947304, + 76.26207732767048 + ], + [ + -90.1953430149397, + 76.05734253349577 + ], + [ + -91.15139007482257, + 76.01860046101189 + ], + [ + -91.1331176745194, + 75.84491730128298 + ], + [ + -90.7856903039431, + 75.99539947529696 + ], + [ + -89.92707824849889, + 76.00346374429928 + ], + [ + -89.1674957260345, + 75.77596282844816 + ], + [ + -89.26139068584831, + 75.62942505107144 + ], + [ + -89.7641754152935, + 75.57651519463636 + ], + [ + -89.22652435343169, + 75.58582305876783 + ], + [ + -88.92138671443789, + 75.42720031764189 + ], + [ + -88.7743072538647, + 75.43359375097211 + ], + [ + -88.8658294660734, + 75.58610534463133 + ], + [ + -88.73083496022758, + 75.67929076901676 + ], + [ + -88.22888183235992, + 75.47109985182222 + ], + [ + -87.26333618562641, + 75.62109375221873 + ], + [ + -86.37138366973639, + 75.424140932161 + ], + [ + -86.54472351052749, + 75.3591461209985 + ], + [ + -83.87815093845859, + 75.81896209545917 + ], + [ + -81.4505615206971, + 75.80081177032667 + ], + [ + -81.2125091546073, + 75.77137756197448 + ], + [ + -81.2640380847293, + 75.65055084007972 + ], + [ + -79.95298766790721, + 75.536376948848 + ], + [ + -80.35617065110618, + 75.46369934118702 + ], + [ + -79.5823669441334, + 75.4514465342277 + ], + [ + -79.50695800489429, + 75.2299804677337 + ], + [ + -80.4340209945206, + 75.03401183645046 + ], + [ + -79.3411788944531, + 74.90019226014164 + ], + [ + -80.1016693075825, + 74.78915405250044 + ], + [ + -80.2398605391152, + 74.57707213922562 + ], + [ + -81.78500366035502, + 74.45776367482799 + ], + [ + -82.91416930823979, + 74.54914855585301 + ], + [ + -83.1558380170641, + 74.82693481571854 + ], + [ + -83.51139831321268, + 74.90165710805996 + ], + [ + -83.32583617748868, + 74.75263214042475 + ], + [ + -83.6052780170135, + 74.542205806809 + ], + [ + -85.259445191284, + 74.4905395545249 + ], + [ + -85.52388763625821, + 74.68845367482662 + ], + [ + -85.6041717513303, + 74.4958190913923 + ], + [ + -88.496948243564, + 74.4977569569149 + ], + [ + -88.560821534768, + 74.59304809905501 + ], + [ + -88.3475036588814, + 74.78471374070634 + ], + [ + -88.5352783224961, + 74.90464019543144 + ], + [ + -89.1911087053012, + 74.58596038630961 + ], + [ + -89.9373550453918, + 74.53151702538621 + ] + ] + ], + [ + [ + [ + -123.08555603180902, + 71.07957458423701 + ], + [ + -124.01862334962102, + 71.68747711251768 + ], + [ + -125.245483398299, + 71.94802093426397 + ], + [ + -124.98777771220901, + 71.9697113030088 + ], + [ + -125.809997558349, + 71.97554016226071 + ], + [ + -125.434440611522, + 72.40635681356176 + ], + [ + -125.02806091186001, + 72.56607055777015 + ], + [ + -125.026107786247, + 72.82109069614172 + ], + [ + -124.482910158522, + 72.92581176879901 + ], + [ + -124.862876894085, + 73.07846069414042 + ], + [ + -123.77471923854101, + 73.7644348156446 + ], + [ + -124.217498778849, + 73.8727569582774 + ], + [ + -124.777847290865, + 74.33137512123106 + ], + [ + -121.51862335469202, + 74.54887389895272 + ], + [ + -119.79527282746503, + 74.23442077733186 + ], + [ + -119.73777770834901, + 74.05802917412895 + ], + [ + -119.14320373515503, + 74.21040344118096 + ], + [ + -119.16750335496201, + 73.98719787455842 + ], + [ + -118.67388916039701, + 74.21998596372066 + ], + [ + -117.51251220807502, + 74.23858642536689 + ], + [ + -115.319030761963, + 73.47706603967848 + ], + [ + -119.137512207735, + 72.63247680712338 + ], + [ + -119.30659484599501, + 72.35997772173657 + ], + [ + -120.19577789418102, + 72.20210266353092 + ], + [ + -120.60166931244102, + 71.49359130619266 + ], + [ + -121.70361328151402, + 71.46081542774405 + ], + [ + -123.08555603180902, + 71.07957458423701 + ] + ] + ], + [ + [ + [ + -173.673080444515, + 64.34679412653003 + ], + [ + -174.84637451368204, + 64.77777099603617 + ], + [ + -175.44888305536801, + 64.78442383016576 + ], + [ + -175.830871580143, + 65.04524994007807 + ], + [ + -175.78060913094401, + 65.16079711932761 + ], + [ + -176.07806396225698, + 65.4702606194348 + ], + [ + -177.068054201682, + 65.60971069296863 + ], + [ + -178.55738830603102, + 65.5141525251704 + ], + [ + -178.45610046459606, + 65.72747802689653 + ], + [ + -178.909454347594, + 65.9938659683635 + ], + [ + -178.54251098810602, + 66.16331481888518 + ], + [ + -178.526153563542, + 66.40290832721993 + ], + [ + -178.909591675334, + 66.17053222906648 + ], + [ + -179.27906799450798, + 66.30200958456847 + ], + [ + -179.34637451225203, + 66.14137267833007 + ], + [ + -179.689193726034, + 66.18357849109678 + ], + [ + -179.80030822583203, + 65.87413788070613 + ], + [ + -179.32083129915202, + 65.53012085095072 + ], + [ + -179.99999999976, + 65.06890869322449 + ], + [ + -179.99999999976, + 68.98010253649716 + ], + [ + -178.92337036077802, + 68.76832580528003 + ], + [ + -178.490417483012, + 68.58455657769902 + ], + [ + -178.715576170984, + 68.65582275242943 + ], + [ + -178.74040222048103, + 68.54289245654749 + ], + [ + -178.03572082639502, + 68.4232940667248 + ], + [ + -177.950561522917, + 68.28996277089142 + ], + [ + -177.836410521345, + 68.35269928144412 + ], + [ + -178.37667846466, + 68.55052184994904 + ], + [ + -177.63220214956502, + 68.3246917725275 + ], + [ + -177.68032836776703, + 68.2238769535573 + ], + [ + -175.46362304555302, + 67.70747375499884 + ], + [ + -175.2543487544, + 67.54608917081553 + ], + [ + -175.375976561822, + 67.3430404654807 + ], + [ + -174.833892822423, + 67.386085509779 + ], + [ + -174.954757692089, + 67.10401153319758 + ], + [ + -174.744598389971, + 66.76567840820574 + ], + [ + -174.994873048012, + 66.67198944054995 + ], + [ + -174.50643920884204, + 66.55218505911694 + ], + [ + -174.467376711247, + 66.3034439064939 + ], + [ + -174.024353028699, + 66.47982788181132 + ], + [ + -174.036819460147, + 66.21351623412018 + ], + [ + -173.761962888467, + 66.44949341009873 + ], + [ + -174.302383424613, + 66.58192444043593 + ], + [ + -173.995849607601, + 66.69134521735954 + ], + [ + -174.125274655787, + 66.98913574339758 + ], + [ + -174.65115356345302, + 67.06011962746197 + ], + [ + -173.67639160176898, + 67.13206482154749 + ], + [ + -173.265716554002, + 67.07664489938858 + ], + [ + -173.357238771038, + 66.83956909092906 + ], + [ + -173.1550903312, + 66.86038207938094 + ], + [ + -173.199325561566, + 66.98760986260517 + ], + [ + -172.620117188585, + 66.95542144528098 + ], + [ + -173.011962891345, + 67.05607605207457 + ], + [ + -171.72610473536304, + 66.95524597329315 + ], + [ + -171.34332275321, + 66.65081787293663 + ], + [ + -170.18188476528502, + 66.202400206197 + ], + [ + -170.331253050769, + 66.17873382314501 + ], + [ + -169.70716857759498, + 66.12664794795639 + ], + [ + -169.78472900201402, + 65.99163818377947 + ], + [ + -170.578292845332, + 65.85276031620285 + ], + [ + -170.63558959753902, + 65.61053466996943 + ], + [ + -171.54238891712097, + 65.83554840029593 + ], + [ + -171.02349853303005, + 65.57914733992914 + ], + [ + -171.074462891301, + 65.48303222598483 + ], + [ + -172.80264282075905, + 65.67469787782194 + ], + [ + -172.19055175656803, + 65.4466247560052 + ], + [ + -172.317504884312, + 65.2646942142248 + ], + [ + -172.68307495055802, + 65.22776794234672 + ], + [ + -172.128982542366, + 65.08317566094459 + ], + [ + -172.46472167898702, + 64.92025756606327 + ], + [ + -173.04556274615803, + 64.86302185310086 + ], + [ + -173.19522094693298, + 64.77816772472536 + ], + [ + -172.773773195874, + 64.77970886004856 + ], + [ + -172.95526122953203, + 64.67247009355565 + ], + [ + -172.35916137555802, + 64.42358398328703 + ], + [ + -172.891998292456, + 64.51943969628232 + ], + [ + -173.06120300183903, + 64.47698211775231 + ], + [ + -172.898086545254, + 64.33719634949371 + ], + [ + -173.270843507339, + 64.2810821534486 + ], + [ + -173.434188845252, + 64.3274154652839 + ], + [ + -173.284317017681, + 64.52053832876315 + ], + [ + -173.415573121762, + 64.61664581280185 + ], + [ + -173.363052368356, + 64.46498870876962 + ], + [ + -173.673080444515, + 64.34679412653003 + ] + ] + ], + [ + [ + [ + -113.28278350947201, + 74.84860229700563 + ], + [ + -111.543334962305, + 75.013191223794 + ], + [ + -110.91610717671301, + 75.2314376850446 + ], + [ + -113.97097015404101, + 75.08338928061507 + ], + [ + -113.782783509761, + 75.33776855174389 + ], + [ + -113.34056091368501, + 75.41331481621523 + ], + [ + -113.47112274012201, + 75.42776489146011 + ], + [ + -114.17874908584001, + 75.22512054387569 + ], + [ + -114.535415647103, + 75.313728331262 + ], + [ + -114.314865115303, + 75.14901733663659 + ], + [ + -115.058464050175, + 74.96138000706456 + ], + [ + -115.28527069237302, + 75.13762664831827 + ], + [ + -115.68124389651099, + 74.96443175963776 + ], + [ + -116.16306305208403, + 75.04026794702307 + ], + [ + -116.277778622886, + 75.20582580733006 + ], + [ + -116.717216492537, + 75.11665344282278 + ], + [ + -117.67722320527999, + 75.2463073728066 + ], + [ + -117.24054717787601, + 75.47360229264632 + ], + [ + -116.021942140596, + 75.48498535290481 + ], + [ + -115.096656801222, + 75.68719482555883 + ], + [ + -117.24804687600002, + 75.59179687548054 + ], + [ + -116.859718322, + 75.79179382059587 + ], + [ + -114.8386077851, + 75.8744201643795 + ], + [ + -116.73388671708601, + 75.92553710809077 + ], + [ + -116.641387939505, + 76.1133117679131 + ], + [ + -116.29611206026702, + 76.18858337188371 + ], + [ + -114.67697906787402, + 76.15873718464199 + ], + [ + -115.91902160821601, + 76.27957153559171 + ], + [ + -114.95138549515902, + 76.48983764913648 + ], + [ + -114.174713137335, + 76.46026611610176 + ], + [ + -113.98999023637901, + 76.19150543485348 + ], + [ + -112.59028625589802, + 76.19664001277452 + ], + [ + -111.729995730298, + 75.91338348162928 + ], + [ + -112.21952056678201, + 75.80921173346286 + ], + [ + -111.44847107081502, + 75.83443451089904 + ], + [ + -111.247222897327, + 75.51805114779665 + ], + [ + -108.896667480702, + 75.47755431990684 + ], + [ + -108.83486175604402, + 75.68900299040594 + ], + [ + -110.051872251912, + 75.89353180231609 + ], + [ + -109.30825042656701, + 76.10408019812769 + ], + [ + -110.393066407994, + 76.39193725489935 + ], + [ + -108.781105044218, + 76.85748290796658 + ], + [ + -108.442138671795, + 76.71144104199388 + ], + [ + -108.607498171079, + 76.64248657289848 + ], + [ + -108.55803680584502, + 76.40859985138891 + ], + [ + -108.07749939088501, + 76.28054809717032 + ], + [ + -108.396118165706, + 76.04609680483338 + ], + [ + -107.63868713542102, + 75.98802947770676 + ], + [ + -108.02222442453801, + 75.78234863366886 + ], + [ + -107.18666076437898, + 75.90386962957696 + ], + [ + -106.896667479547, + 75.72026062045045 + ], + [ + -106.86972045850901, + 75.96415710600809 + ], + [ + -106.336669919448, + 76.05470276043216 + ], + [ + -105.61013793746301, + 75.93581390457987 + ], + [ + -105.39014434843102, + 75.64762878459547 + ], + [ + -106.00077056830503, + 75.05921935794257 + ], + [ + -106.972229006432, + 74.92608642851494 + ], + [ + -107.74200439614, + 75.04581451569527 + ], + [ + -108.382362363479, + 74.91095733637145 + ], + [ + -108.83249664213601, + 75.06999206642767 + ], + [ + -112.75306701783899, + 74.4013824469652 + ], + [ + -113.69638061556002, + 74.44609070020279 + ], + [ + -114.441864014758, + 74.66442108269821 + ], + [ + -113.28278350947201, + 74.84860229700563 + ] + ] + ], + [ + [ + [ + -98.7252807630658, + 71.27026367076513 + ], + [ + -99.2294464104326, + 71.34359741189515 + ], + [ + -99.67541504051351, + 71.75553894108178 + ], + [ + -100.639312743953, + 72.18692016645983 + ], + [ + -101.77694702009802, + 72.29971313610784 + ], + [ + -102.763885497896, + 72.78790283069921 + ], + [ + -102.50708007746701, + 73.0283203139634 + ], + [ + -102.13722229128301, + 73.08692932226054 + ], + [ + -101.297500611575, + 72.70999145434038 + ], + [ + -100.43443298425403, + 72.73692321665709 + ], + [ + -100.031387329418, + 72.93498230065931 + ], + [ + -100.24083709592402, + 73.13574981839714 + ], + [ + -100.58306121899, + 73.17025756940122 + ], + [ + -100.369712829483, + 73.29012298574257 + ], + [ + -100.045417786559, + 73.18511963036394 + ], + [ + -99.77500152511018, + 73.20637512248062 + ], + [ + -100.39844513088403, + 73.36662292545523 + ], + [ + -100.88945007365702, + 73.26443481494768 + ], + [ + -101.61901855504298, + 73.48776245031269 + ], + [ + -100.917915343908, + 73.599990843978 + ], + [ + -100.50903320216901, + 73.41471099717418 + ], + [ + -100.628601073677, + 73.5933227532532 + ], + [ + -101.11916351175601, + 73.72525787425951 + ], + [ + -100.95973205576101, + 73.8091430656513 + ], + [ + -100.06304931524599, + 73.764999390769 + ], + [ + -99.93033599929691, + 73.8504333502473 + ], + [ + -100.297157286607, + 73.86463165251243 + ], + [ + -99.93859863194429, + 73.94609069816003 + ], + [ + -99.2350006093444, + 73.73776245188739 + ], + [ + -97.7619476322984, + 73.91192626913593 + ], + [ + -96.96576690607472, + 73.7398376472307 + ], + [ + -97.66680145148969, + 73.47970581151546 + ], + [ + -97.1572265617617, + 73.3955383288215 + ], + [ + -97.8429183961043, + 73.27082061768097 + ], + [ + -98.22721862712989, + 72.98748779421462 + ], + [ + -97.29152679452359, + 72.96679687476961 + ], + [ + -97.0265274038565, + 72.7293548597015 + ], + [ + -97.1754150380104, + 72.6017913833847 + ], + [ + -96.5175018299585, + 72.71470642100991 + ], + [ + -96.30006408706458, + 72.42630004874137 + ], + [ + -96.5783386218814, + 72.27859497212083 + ], + [ + -96.5033416764195, + 72.0876312266962 + ], + [ + -96.8604125969844, + 72.03873443641828 + ], + [ + -96.5115356433464, + 72.03873443641828 + ], + [ + -96.52583312832631, + 71.86886596640728 + ], + [ + -97.5050048837394, + 71.61164855827766 + ], + [ + -98.2127838140203, + 71.64791107121857 + ], + [ + -98.35604095512119, + 71.72581481915648 + ], + [ + -98.2870788586807, + 71.8969345091103 + ], + [ + -98.4956893929446, + 71.71776580878019 + ], + [ + -98.03944396886149, + 71.52873993056916 + ], + [ + -98.7252807630658, + 71.27026367076513 + ] + ] + ], + [ + [ + [ + -95.16111755396149, + 71.96470642053087 + ], + [ + -95.1333312990415, + 72.46026611363456 + ], + [ + -95.6703414909266, + 72.8104019170503 + ], + [ + -95.6774978623905, + 73.71762084905309 + ], + [ + -94.61860656792858, + 73.65290832586822 + ], + [ + -95.3107604969742, + 73.8859558112062 + ], + [ + -95.24526977491001, + 74.01026916568632 + ], + [ + -93.32749938900031, + 74.16998291092875 + ], + [ + -90.1975708009094, + 73.89797210781552 + ], + [ + -92.09584045418082, + 72.74304199279018 + ], + [ + -94.30680084335009, + 72.766654969132 + ], + [ + -93.79833984513631, + 72.70220947281898 + ], + [ + -93.46555328234462, + 72.45387268092217 + ], + [ + -94.19171905452669, + 71.99431610008139 + ], + [ + -94.4497222890853, + 72.02331543088569 + ], + [ + -95.16111755396149, + 71.96470642053087 + ] + ] + ], + [ + [ + [ + -120.35556030211501, + 75.80636596709795 + ], + [ + -120.85722350949399, + 76.1966400142026 + ], + [ + -121.262641908589, + 75.96138000354829 + ], + [ + -122.51666259571101, + 75.92831421025228 + ], + [ + -122.72569274813002, + 75.97095489458741 + ], + [ + -122.473541260549, + 76.10852813664201 + ], + [ + -122.574172973303, + 76.16609191813961 + ], + [ + -123.037780761541, + 76.0847167952771 + ], + [ + -122.578613281679, + 76.3535919206144 + ], + [ + -121.54998779270102, + 76.43470763964322 + ], + [ + -121.212509156077, + 76.64971923719818 + ], + [ + -120.40167236180402, + 76.79721069175157 + ], + [ + -119.15334320226502, + 77.32582092184066 + ], + [ + -116.787353515704, + 77.31832122621284 + ], + [ + -116.65361786065003, + 77.38520049883348 + ], + [ + -117.14875030542301, + 77.45526886062265 + ], + [ + -116.487777710036, + 77.55026244969937 + ], + [ + -115.389732361018, + 77.30928039382464 + ], + [ + -116.274864198079, + 77.18692779393632 + ], + [ + -116.24249267515302, + 77.0441436751254 + ], + [ + -115.73457336390202, + 76.94358825646519 + ], + [ + -116.36284637372202, + 76.9135284425971 + ], + [ + -115.894378661556, + 76.69894409196286 + ], + [ + -117.03999328548002, + 76.53749084581844 + ], + [ + -116.937210083222, + 76.34915161223842 + ], + [ + -117.095550538208, + 76.29525756681903 + ], + [ + -118.05222320717701, + 76.40706634656375 + ], + [ + -117.737701414159, + 76.77672576892267 + ], + [ + -118.32848358112602, + 76.77068328851186 + ], + [ + -118.495002747209, + 76.71220397789868 + ], + [ + -118.31610107530001, + 76.57470702993695 + ], + [ + -118.96992492788802, + 76.49595641995525 + ], + [ + -118.57034301711101, + 76.33686065540721 + ], + [ + -118.96014404475702, + 76.1295623769403 + ], + [ + -119.65499877827601, + 76.30303955254963 + ], + [ + -119.48513793875601, + 75.96818542488877 + ], + [ + -120.35556030211501, + 75.80636596709795 + ] + ] + ], + [ + [ + [ + -99.90695190265801, + 77.7785949692096 + ], + [ + -100.606376646783, + 77.87997436382861 + ], + [ + -101.06276702961001, + 78.19859314066476 + ], + [ + -102.618606567979, + 78.24136352428368 + ], + [ + -102.806106567384, + 78.37776184190908 + ], + [ + -104.494453428913, + 78.27053833030818 + ], + [ + -105.04888916169799, + 78.4940795911627 + ], + [ + -103.52715301622601, + 78.49643707286631 + ], + [ + -103.39998626611002, + 78.6155395507546 + ], + [ + -104.039825439676, + 78.6266479505687 + ], + [ + -103.32208252077001, + 78.73143768345784 + ], + [ + -104.1705474849, + 78.76582336304935 + ], + [ + -103.825416564978, + 78.89526367087934 + ], + [ + -104.203613281992, + 78.99165344237878 + ], + [ + -105.011947630901, + 78.80358886618613 + ], + [ + -104.68082427814201, + 79.00373840175118 + ], + [ + -105.55290985178901, + 79.02234649700587 + ], + [ + -105.624565124357, + 79.16706848241189 + ], + [ + -105.43998718344301, + 79.32916259776522 + ], + [ + -103.977783202663, + 79.36886596605522 + ], + [ + -103.075843810889, + 79.276657106097 + ], + [ + -102.61437225397, + 79.09047698919099 + ], + [ + -102.72084045306102, + 78.93830871421075 + ], + [ + -102.555824279217, + 78.86956786975257 + ], + [ + -101.64890289470401, + 79.07582092125067 + ], + [ + -100.985969543304, + 78.93428039668585 + ], + [ + -101.17958831940399, + 78.80165100103306 + ], + [ + -100.347770690835, + 78.82749175899787 + ], + [ + -99.89493560651438, + 78.69289398346703 + ], + [ + -100.01666259883702, + 78.616653443568 + ], + [ + -99.57362365881268, + 78.59553527939111 + ], + [ + -99.7917327888554, + 78.30039977881607 + ], + [ + -98.98916625992011, + 78.07304382390214 + ], + [ + -99.0249328616569, + 77.89151001057384 + ], + [ + -99.90695190265801, + 77.7785949692096 + ] + ] + ], + [ + [ + [ + -99.6027832038348, + 74.97109985214846 + ], + [ + -100.355834961109, + 75.01915741060243 + ], + [ + -100.539581299854, + 75.19622802859297 + ], + [ + -100.001770020771, + 75.23272704945241 + ], + [ + -100.769714354892, + 75.34963226249862 + ], + [ + -99.8205642691443, + 75.65345764255795 + ], + [ + -98.89812469456712, + 75.69358062611224 + ], + [ + -101.49553680471901, + 75.60192870987585 + ], + [ + -102.53415679924001, + 75.51138305649954 + ], + [ + -102.874267577997, + 75.61289214991315 + ], + [ + -102.008613586088, + 75.70401763889923 + ], + [ + -102.36783599912499, + 75.79785919075377 + ], + [ + -102.163063049159, + 75.8788604748602 + ], + [ + -101.18222045811201, + 75.77970886184075 + ], + [ + -101.90597534253101, + 76.08144378638937 + ], + [ + -101.391258240078, + 76.2468566894972 + ], + [ + -102.16278076232702, + 76.24067688055541 + ], + [ + -101.86221313433401, + 76.45027160521033 + ], + [ + -101.31582641668402, + 76.41442870996562 + ], + [ + -99.88833618195258, + 75.88638305610735 + ], + [ + -99.4485092165145, + 75.96813201778087 + ], + [ + -99.86138153036318, + 75.93539428613569 + ], + [ + -100.15278625602502, + 76.1324768072594 + ], + [ + -99.4238128652121, + 76.1565780638234 + ], + [ + -100.438888548676, + 76.2124938958963 + ], + [ + -99.84667205742139, + 76.28207397456511 + ], + [ + -100.98104095540201, + 76.49595642132253 + ], + [ + -99.6844329825822, + 76.63333130008307 + ], + [ + -99.0999908439673, + 76.39804077234673 + ], + [ + -99.0272216807204, + 76.60108947743107 + ], + [ + -98.71250915626659, + 76.68304443311177 + ], + [ + -97.6890258790118, + 76.47970581022264 + ], + [ + -97.76139831619182, + 76.33499145411974 + ], + [ + -97.4947204600897, + 76.14388275074938 + ], + [ + -97.59777831981609, + 75.84693908827015 + ], + [ + -97.934577940966, + 75.74414825342734 + ], + [ + -97.3955612189155, + 75.68539428827656 + ], + [ + -97.3997268679894, + 75.45554351725053 + ], + [ + -97.7533340457466, + 75.5695800789618 + ], + [ + -98.0425033555857, + 75.48234558037313 + ], + [ + -97.8011093145505, + 75.4109573358438 + ], + [ + -98.16500091662802, + 75.33165740933578 + ], + [ + -97.57409667942139, + 75.14908599812048 + ], + [ + -99.6027832038348, + 74.97109985214846 + ] + ] + ], + [ + [ + [ + -53.57139205894071, + 46.61547851618533 + ], + [ + -53.57778167638931, + 47.08526611365992 + ], + [ + -54.1868705761012, + 46.82186889499194 + ], + [ + -53.867500306220016, + 47.402770997074946 + ], + [ + -54.03333282310831, + 47.79666137618535 + ], + [ + -54.19617843507209, + 47.84124374495752 + ], + [ + -54.5141677860127, + 47.37110138019862 + ], + [ + -54.85639190788819, + 47.39054870638712 + ], + [ + -55.25861358783109, + 46.91027069116845 + ], + [ + -55.80332946861869, + 46.860549927123024 + ], + [ + -55.96611023046189, + 46.90998840404393 + ], + [ + -55.886947633330415, + 47.056098937658724 + ], + [ + -55.4905548098688, + 47.13554763867241 + ], + [ + -54.845550536141204, + 47.63388061434203 + ], + [ + -55.40541458265431, + 47.62061691191925 + ], + [ + -55.56145858632769, + 47.43408965994836 + ], + [ + -56.16677093634702, + 47.50165939423772 + ], + [ + -55.634166715890196, + 47.67304992728023 + ], + [ + -55.85423660124302, + 47.79721450711303 + ], + [ + -56.840835572476706, + 47.52137756422975 + ], + [ + -58.031944275972, + 47.69512558130343 + ], + [ + -59.1619415295049, + 47.56166076558683 + ], + [ + -59.3848609929778, + 47.91957855060015 + ], + [ + -58.420280455686, + 48.50804901214714 + ], + [ + -59.25496673674719, + 48.47266006565964 + ], + [ + -58.90888977173738, + 48.70193481314186 + ], + [ + -58.892642974195695, + 48.55151748554856 + ], + [ + -58.726943970830106, + 48.56373977623635 + ], + [ + -58.39847183218462, + 49.12943267923087 + ], + [ + -58.13527679391789, + 49.08277130027007 + ], + [ + -58.21986007692301, + 49.39638137707216 + ], + [ + -57.378608704887895, + 50.68776703018661 + ], + [ + -56.927497862193995, + 50.9158248889325 + ], + [ + -56.7373580942109, + 51.299369810618515 + ], + [ + -55.96028137050449, + 51.593879698477046 + ], + [ + -55.6944427478004, + 51.481101991279715 + ], + [ + -55.72430038501001, + 51.58276748640272 + ], + [ + -55.458610535907596, + 51.59221649241203 + ], + [ + -55.61375045812661, + 51.302837373263024 + ], + [ + -56.08194732621989, + 51.36901855509632 + ], + [ + -55.734027861385904, + 51.077079771515045 + ], + [ + -56.7430572504511, + 50.02276611262408 + ], + [ + -56.820999145564606, + 49.74209594823429 + ], + [ + -56.735557557865185, + 49.66693878112038 + ], + [ + -56.122634888379416, + 50.15450286867898 + ], + [ + -55.7505569460521, + 49.92360687165779 + ], + [ + -55.4610404966227, + 49.959712982753885 + ], + [ + -55.9861145008599, + 49.74694061306189 + ], + [ + -56.12416839767929, + 49.61332702721985 + ], + [ + -55.89389038170681, + 49.71415710429048 + ], + [ + -55.636947630608105, + 49.41638183766469 + ], + [ + -55.14131927621472, + 49.54333114549687 + ], + [ + -55.231662748822906, + 49.25235366692746 + ], + [ + -54.821113584805104, + 49.270408630854384 + ], + [ + -54.4747161859501, + 49.53499603138275 + ], + [ + -53.5111160270305, + 49.27721404895007 + ], + [ + -53.93222045891311, + 48.71393585354407 + ], + [ + -53.60718536275469, + 48.68096160769276 + ], + [ + -53.89819717476339, + 48.56262970109894 + ], + [ + -53.22138977063661, + 48.56124496540053 + ], + [ + -53.0720138547784, + 48.697975159884464 + ], + [ + -52.98722076480892, + 48.54804992638003 + ], + [ + -53.62625122173521, + 48.173183442771546 + ], + [ + -53.937358857662204, + 48.232074738983464 + ], + [ + -53.909652710801105, + 48.08401870870294 + ], + [ + -53.606807708828306, + 48.048744202377655 + ], + [ + -53.8375015254482, + 47.69943237180573 + ], + [ + -53.54520797805862, + 47.541034697382756 + ], + [ + -53.29084014799491, + 47.999435425697946 + ], + [ + -52.996948241184796, + 48.08638000601595 + ], + [ + -53.26167297199378, + 47.54638671985393 + ], + [ + -53.11854171674029, + 47.41790771600323 + ], + [ + -52.77968597394958, + 47.797672271238945 + ], + [ + -52.617362976232215, + 47.50846862909135 + ], + [ + -53.0966682431183, + 46.639991760962936 + ], + [ + -53.3580589282816, + 46.73721694858473 + ], + [ + -53.57139205894071, + 46.61547851618533 + ] + ] + ], + [ + [ + [ + -85.4491577130434, + 63.11666107017214 + ], + [ + -85.6386184698372, + 63.247356414149415 + ], + [ + -85.5929183946878, + 63.62707519460495 + ], + [ + -85.71749877800089, + 63.71610260097587 + ], + [ + -86.9222259505892, + 63.552772523128155 + ], + [ + -87.2258377073554, + 63.64610290588946 + ], + [ + -86.91528320203581, + 63.91443633878568 + ], + [ + -86.19666290188209, + 64.0963745126364 + ], + [ + -86.40139007487689, + 64.43914795076954 + ], + [ + -86.1515350326729, + 65.38971710115152 + ], + [ + -85.9864501947574, + 65.73699951270348 + ], + [ + -85.5424957278662, + 65.93331909065998 + ], + [ + -85.1594467175066, + 65.77901458809865 + ], + [ + -84.92763519381468, + 65.2119369523179 + ], + [ + -84.5556869498017, + 65.4799804680191 + ], + [ + -84.14138793889059, + 65.21998596328119 + ], + [ + -83.4086151133952, + 65.1355438220464 + ], + [ + -83.2011718765201, + 64.94288635127201 + ], + [ + -81.7630615246282, + 64.50109863128073 + ], + [ + -81.6066589348231, + 64.12789154142288 + ], + [ + -81.9893722536797, + 63.99665450891459 + ], + [ + -80.9424896248093, + 63.99054718031169 + ], + [ + -80.8908386223284, + 64.11553955045709 + ], + [ + -80.17436981217588, + 63.77117157136417 + ], + [ + -81.0764007575026, + 63.45138549734184 + ], + [ + -82.47985839783419, + 63.68360519364147 + ], + [ + -82.3667297364931, + 63.90755844288755 + ], + [ + -83.09291839750989, + 63.9570770264907 + ], + [ + -82.96221923930788, + 64.1430435164358 + ], + [ + -83.07278442381549, + 64.1866455079534 + ], + [ + -83.5483398432719, + 64.10247802701468 + ], + [ + -83.678047180252, + 64.0109634391397 + ], + [ + -83.63492584244669, + 63.770690917652054 + ], + [ + -84.28611755279691, + 63.61554718091565 + ], + [ + -84.5633239739329, + 63.337493897155156 + ], + [ + -85.4491577130434, + 63.11666107017214 + ] + ] + ], + [ + [ + [ + -79.3913879401448, + 72.7333221444299 + ], + [ + -80.00389099069201, + 72.86789703330021 + ], + [ + -80.14097595273479, + 73.21443176272665 + ], + [ + -80.7975006109812, + 73.27693176312506 + ], + [ + -80.8577728261391, + 73.74192809976059 + ], + [ + -77.3955535884043, + 73.5458221446777 + ], + [ + -76.06082153331519, + 72.9038772580427 + ], + [ + -78.2363586416088, + 72.89300537176351 + ], + [ + -79.3913879401448, + 72.7333221444299 + ] + ] + ], + [ + [ + [ + -96.8499908450051, + 77.78720092775019 + ], + [ + -97.7634124758312, + 78.02873229919172 + ], + [ + -96.8559722901356, + 78.10609436024465 + ], + [ + -97.82945251535169, + 78.21914672925904 + ], + [ + -98.35721588136329, + 78.44622802680449 + ], + [ + -98.02069854784148, + 78.5395660404638 + ], + [ + -98.3654098505322, + 78.76583099384274 + ], + [ + -97.078063963987, + 78.74971008231024 + ], + [ + -94.8346939087747, + 78.35744476372409 + ], + [ + -95.39368438719929, + 78.22921752984595 + ], + [ + -94.88847351105369, + 78.10581970247985 + ], + [ + -95.1065292351761, + 77.95249176024562 + ], + [ + -96.8499908450051, + 77.78720092775019 + ] + ] + ], + [ + [ + [ + -77.68112182811649, + 19.821941377898487 + ], + [ + -77.596672057434, + 20.046665193134558 + ], + [ + -77.1145935063528, + 20.367359159679946 + ], + [ + -77.2363891620835, + 20.663055420142996 + ], + [ + -78.0722351049471, + 20.713886263572903 + ], + [ + -78.4951477069863, + 21.03180313096385 + ], + [ + -78.7402801489464, + 21.63471984620839 + ], + [ + -79.2319488538398, + 21.541110990809813 + ], + [ + -79.9877929710758, + 21.723609923476182 + ], + [ + -80.4919586166215, + 22.17721938898843 + ], + [ + -80.89111328383909, + 22.039718629897948 + ], + [ + -81.8230590823275, + 22.18360900747614 + ], + [ + -82.1626510601741, + 22.39527511419162 + ], + [ + -81.6488952663595, + 22.4913864108912 + ], + [ + -81.81278991957939, + 22.663608553426293 + ], + [ + -82.78778839343289, + 22.660831448728487 + ], + [ + -83.36806487927107, + 22.20166397121553 + ], + [ + -83.9082031261403, + 22.170692444345534 + ], + [ + -84.32833862348171, + 21.86277770923236 + ], + [ + -84.95292663549019, + 21.863191605629975 + ], + [ + -84.37187957885939, + 22.04145622094377 + ], + [ + -84.40055847289601, + 22.33277511736153 + ], + [ + -84.0699386589904, + 22.661525729060283 + ], + [ + -83.2291717513686, + 22.998886109767867 + ], + [ + -82.22056579688049, + 23.187496183833634 + ], + [ + -81.5008392345063, + 23.055553436743846 + ], + [ + -81.2269592298889, + 23.161663057572436 + ], + [ + -81.1314010625881, + 23.02333068645187 + ], + [ + -80.6330566402789, + 23.09833144871215 + ], + [ + -80.27862548878349, + 22.905277254369466 + ], + [ + -80.03764343524578, + 22.95124816873598 + ], + [ + -79.25903320352299, + 22.372638704020122 + ], + [ + -78.79055786297779, + 22.39499664264652 + ], + [ + -77.74694823980832, + 21.79944229222359 + ], + [ + -77.455001830377, + 21.710277557102078 + ], + [ + -77.46528625343448, + 21.826110838663382 + ], + [ + -77.22917175080029, + 21.686664581362194 + ], + [ + -77.364311219523, + 21.614095690479314 + ], + [ + -77.2562561060267, + 21.472497940191303 + ], + [ + -77.0619506827188, + 21.5849990863535 + ], + [ + -76.02166747995429, + 21.084163663817954 + ], + [ + -75.7072296138896, + 21.121944426110552 + ], + [ + -75.5797271733852, + 21.006942751036473 + ], + [ + -75.7366790787186, + 20.6969413778657 + ], + [ + -74.9555664056948, + 20.685276032613988 + ], + [ + -74.1319580059394, + 20.22110748064754 + ], + [ + -74.28431701822281, + 20.056526185565357 + ], + [ + -75.1213989241991, + 19.88749695097148 + ], + [ + -75.09278869878341, + 20.056388853867055 + ], + [ + -75.3555603012394, + 19.875553128631587 + ], + [ + -76.24890136941761, + 19.990833280794075 + ], + [ + -77.68112182811649, + 19.821941377898487 + ] + ] + ], + [ + [ + [ + -112.08361816326101, + 77.32304382245125 + ], + [ + -113.20137786849702, + 77.5266571050622 + ], + [ + -113.318611144933, + 77.81011962929459 + ], + [ + -111.318336486068, + 78.08027648851646 + ], + [ + -109.584312439272, + 78.06150817887915 + ], + [ + -110.89944457992799, + 77.85144042968491 + ], + [ + -110.085289001238, + 77.76623535217661 + ], + [ + -110.20333862348201, + 77.51138305726316 + ], + [ + -112.08361816326101, + 77.32304382245125 + ] + ] + ], + [ + [ + [ + -94.5475006106083, + 74.62136840748921 + ], + [ + -96.35749816880119, + 74.90664672866914 + ], + [ + -96.60472106862481, + 75.06330871524946 + ], + [ + -95.8345642097319, + 75.37300109913662 + ], + [ + -96.0624999994085, + 75.4249877937298 + ], + [ + -94.9097213749814, + 75.63735198958935 + ], + [ + -93.4947891229017, + 75.25831603941762 + ], + [ + -93.4904174809699, + 74.68484497019902 + ], + [ + -94.5475006106083, + 74.62136840748921 + ] + ] + ], + [ + [ + [ + -96.53056335493861, + 68.44497680748083 + ], + [ + -98.51945495548061, + 68.74748229934177 + ], + [ + -98.84944152851338, + 68.93359374956545 + ], + [ + -99.1823501582745, + 68.82498931985964 + ], + [ + -99.59168243398001, + 69.0219345090862 + ], + [ + -98.4069442748027, + 69.30344390870502 + ], + [ + -98.61041259699509, + 69.44692230121623 + ], + [ + -98.5313873298141, + 69.58499145460445 + ], + [ + -98.00145721377581, + 69.44380187933882 + ], + [ + -98.3641586297228, + 69.5988693229233 + ], + [ + -97.9455413809467, + 69.89360046360947 + ], + [ + -96.20249939036749, + 69.3013763421321 + ], + [ + -96.1952667231128, + 69.03831481831186 + ], + [ + -96.04444122226009, + 69.22609710705531 + ], + [ + -95.8202819825606, + 68.87025451583338 + ], + [ + -95.20972442637158, + 68.85109710799065 + ], + [ + -96.53056335493861, + 68.44497680748083 + ] + ] + ], + [ + [ + [ + -71.42388915922841, + 17.604166030556833 + ], + [ + -72.0723648062553, + 18.239997863254867 + ], + [ + -72.8158340466843, + 18.138471604856086 + ], + [ + -73.4514007568002, + 18.256942750178467 + ], + [ + -73.88166809202409, + 18.02277755649711 + ], + [ + -74.4466705309307, + 18.341939927634968 + ], + [ + -74.42236328076739, + 18.610137939421527 + ], + [ + -72.73667144828201, + 18.424581526940237 + ], + [ + -72.34674072408859, + 18.535968780430427 + ], + [ + -72.32972717302539, + 18.683469773618704 + ], + [ + -72.80029296763959, + 19.033054352806083 + ], + [ + -72.7233428968356, + 19.45499801739484 + ], + [ + -73.46528625420859, + 19.687774659446905 + ], + [ + -73.4051437389018, + 19.831804275135585 + ], + [ + -72.7983398434972, + 19.94277572579188 + ], + [ + -71.7196578988348, + 19.701316833010296 + ], + [ + -71.66584014868171, + 19.893747330056176 + ], + [ + -70.99445342967189, + 19.930692672274485 + ], + [ + -70.2908477778481, + 19.649164198469208 + ], + [ + -69.94931793186419, + 19.676803590428595 + ], + [ + -69.7559814458851, + 19.290832519262334 + ], + [ + -69.1579284653496, + 19.29499816785525 + ], + [ + -69.23001098676869, + 19.18027496401497 + ], + [ + -69.6157684326705, + 19.22437286220505 + ], + [ + -69.6201477065281, + 19.088470458708567 + ], + [ + -68.9238967882454, + 19.029859542436377 + ], + [ + -68.325561524601, + 18.616664885292018 + ], + [ + -68.4513931288861, + 18.353887557150667 + ], + [ + -68.7616729728548, + 18.236942291736458 + ], + [ + -68.89527893151148, + 18.39638519216665 + ], + [ + -69.8847274785604, + 18.469026566972243 + ], + [ + -70.1541748031251, + 18.233055114550556 + ], + [ + -70.50750732379458, + 18.194721220703173 + ], + [ + -70.69194793692719, + 18.432359696161335 + ], + [ + -71.0812530510192, + 18.29916572548895 + ], + [ + -71.42388915922841, + 17.604166030556833 + ] + ] + ], + [ + [ + [ + -123.598342895029, + 48.31166076589036 + ], + [ + -125.10152435427501, + 48.72484970158245 + ], + [ + -125.184715272071, + 48.79846572996765 + ], + [ + -124.843330382029, + 49.01575851483745 + ], + [ + -124.780487061458, + 49.13943481446046 + ], + [ + -124.80700683594002, + 49.23561477714456 + ], + [ + -124.93694305546602, + 48.988044739022946 + ], + [ + -125.50473022388599, + 48.91902160705514 + ], + [ + -125.75110626330603, + 49.055267334206455 + ], + [ + -125.796661378143, + 49.31027221610127 + ], + [ + -126.021942137444, + 49.265552521542574 + ], + [ + -125.94721984774202, + 49.39554596030206 + ], + [ + -126.535697936682, + 49.37408447287937 + ], + [ + -126.67971801646101, + 49.87887573259889 + ], + [ + -127.12680053673402, + 49.85461425666267 + ], + [ + -127.17444610685502, + 50.06304931686098 + ], + [ + -127.894447327671, + 50.10881423906206 + ], + [ + -127.78888702517902, + 50.22221374492539 + ], + [ + -127.97902679377302, + 50.344852448417186 + ], + [ + -127.92332458403503, + 50.4617271434306 + ], + [ + -127.41694641196702, + 50.579608916423005 + ], + [ + -127.874229431934, + 50.6215858469631 + ], + [ + -127.59620666578901, + 50.545303345993794 + ], + [ + -128.051422119744, + 50.446693419171496 + ], + [ + -128.413269042849, + 50.7708930959963 + ], + [ + -127.91402435273302, + 50.87179565395651 + ], + [ + -125.45639038092703, + 50.32666397166078 + ], + [ + -124.78943634058602, + 49.46415710379106 + ], + [ + -123.94304656902003, + 49.21110534681135 + ], + [ + -123.40756988464099, + 48.68200302080256 + ], + [ + -123.292984008956, + 48.412071226866146 + ], + [ + -123.598342895029, + 48.31166076589036 + ] + ] + ], + [ + [ + [ + -53.578472136961395, + 69.22970581049479 + ], + [ + -54.2694473274228, + 69.39610290475271 + ], + [ + -53.5908355719855, + 69.44386291570292 + ], + [ + -53.5461120602466, + 69.51470947268714 + ], + [ + -54.98791503898911, + 69.69025421202393 + ], + [ + -54.40270614644041, + 69.68056488032153 + ], + [ + -54.9219436648439, + 69.82360839804106 + ], + [ + -54.8177795402713, + 69.95387268132887 + ], + [ + -54.24083328239709, + 69.91425323548789 + ], + [ + -54.785987854360194, + 70.04180145197259 + ], + [ + -54.8273620600948, + 70.19748687687131 + ], + [ + -54.30194091858258, + 70.3163757329965 + ], + [ + -53.45999908508641, + 70.2330474858443 + ], + [ + -51.83652496345231, + 69.63442230201262 + ], + [ + -53.578472136961395, + 69.22970581049479 + ] + ] + ], + [ + [ + [ + -111.505279540758, + 78.26693725654825 + ], + [ + -113.33332824697501, + 78.33081817699117 + ], + [ + -110.460281372772, + 78.75749206639145 + ], + [ + -109.257919311618, + 78.4838638303686 + ], + [ + -109.428596496071, + 78.30331420922198 + ], + [ + -111.141387939079, + 78.38610839752357 + ], + [ + -111.505279540758, + 78.26693725654825 + ] + ] + ], + [ + [ + [ + -76.6636199948285, + 67.21998596156779 + ], + [ + -77.07444763127309, + 67.28082275358199 + ], + [ + -77.32083892816868, + 67.70470428489266 + ], + [ + -76.726104736164, + 68.23887634231099 + ], + [ + -75.8180694579692, + 68.33665466355771 + ], + [ + -75.00750732398839, + 68.13998413095588 + ], + [ + -75.1613159174053, + 67.95421600310247 + ], + [ + -75.02514648493401, + 67.62248229972205 + ], + [ + -75.16111755364129, + 67.46388244685741 + ], + [ + -76.6636199948285, + 67.21998596156779 + ] + ] + ], + [ + [ + [ + -105.282775879292, + 72.8466491694595 + ], + [ + -106.45429992687002, + 73.39624023423086 + ], + [ + -107.030754089296, + 73.48554229701676 + ], + [ + -106.618331909431, + 73.70526123095031 + ], + [ + -105.525970459106, + 73.76304626409761 + ], + [ + -104.48826599127001, + 73.54830932611819 + ], + [ + -104.57235717714101, + 73.32589721626367 + ], + [ + -105.34749603278999, + 72.95304107625093 + ], + [ + -105.282775879292, + 72.8466491694595 + ] + ] + ], + [ + [ + [ + -179.324737548673, + 70.90524291954189 + ], + [ + -179.99999999994, + 70.9972076410874 + ], + [ + -179.99999999994, + 71.53584289564834 + ], + [ + -178.568603515173, + 71.56414794864374 + ], + [ + -177.44154357916102, + 71.2293472293581 + ], + [ + -177.93043518037902, + 71.0394287106002 + ], + [ + -179.324737548673, + 70.90524291954189 + ] + ] + ], + [ + [ + [ + -22.3113899236021, + 72.11276245150711 + ], + [ + -24.3474998475725, + 72.58360290539467 + ], + [ + -24.476526260316604, + 72.8335952759528 + ], + [ + -23.1491680144529, + 72.83679962193561 + ], + [ + -21.928194046079792, + 72.46470642127257 + ], + [ + -22.760974884428588, + 72.43761444139864 + ], + [ + -22.134166716881307, + 72.27165222142935 + ], + [ + -22.3113899236021, + 72.11276245150711 + ] + ] + ], + [ + [ + [ + -28.035835265879392, + 70.42637634225312 + ], + [ + -28.1341667174629, + 70.46499633843715 + ], + [ + -28.027225494535013, + 70.60054016102006 + ], + [ + -27.149589538797688, + 70.87438964860299 + ], + [ + -26.429164885748207, + 70.91526794383871 + ], + [ + -25.80250167822679, + 71.0552520745476 + ], + [ + -25.397638320709397, + 70.91442871025367 + ], + [ + -25.2813911438652, + 70.67747497594507 + ], + [ + -26.195831298474804, + 70.44999694835013 + ], + [ + -26.384723663882408, + 70.48692321732302 + ], + [ + -26.213333129275906, + 70.58526611357203 + ], + [ + -28.035835265879392, + 70.42637634225312 + ] + ] + ], + [ + [ + [ + -153.98596191404602, + 56.73846435576365 + ], + [ + -154.13888549827996, + 56.74165725683285 + ], + [ + -153.904174804968, + 57.06360244791316 + ], + [ + -154.12442016588605, + 57.143051147175875 + ], + [ + -154.44467163020502, + 57.11518096892148 + ], + [ + -154.10609436100398, + 57.11547851494667 + ], + [ + -154.29779052671202, + 56.84887695369736 + ], + [ + -154.60957336400503, + 57.26096725469169 + ], + [ + -154.79945373529006, + 57.28332901042558 + ], + [ + -154.72778320327, + 57.42221832284599 + ], + [ + -154.02999877865, + 57.651382446815816 + ], + [ + -153.89044189481098, + 57.40971374496761 + ], + [ + -153.760299682708, + 57.309852600304 + ], + [ + -153.63500976589, + 57.27596664394927 + ], + [ + -153.92932128955502, + 57.80832672073274 + ], + [ + -153.64306640642502, + 57.86610412540045 + ], + [ + -153.50619506807502, + 57.62846374449781 + ], + [ + -153.05117797865805, + 57.830268860068735 + ], + [ + -153.116943358767, + 57.949996947731044 + ], + [ + -152.477218627738, + 57.90318298282445 + ], + [ + -152.329925537753, + 57.81891632082472 + ], + [ + -152.551605224874, + 57.704227446924605 + ], + [ + -152.152297973694, + 57.60818862928311 + ], + [ + -152.36180114723302, + 57.423049927091 + ], + [ + -152.73101806644001, + 57.50416183484361 + ], + [ + -153.02445983903797, + 57.4712409972888 + ], + [ + -152.600784302236, + 57.3736343388903 + ], + [ + -153.166885376637, + 57.3460311883899 + ], + [ + -153.98596191404602, + 56.73846435576365 + ] + ] + ], + [ + [ + [ + -134.26779174810602, + 68.69581604022784 + ], + [ + -134.825836182008, + 68.97886657725009 + ], + [ + -135.905853271141, + 68.91137695323266 + ], + [ + -135.98547363273903, + 69.03373718253559 + ], + [ + -135.52459716746702, + 69.02325439441546 + ], + [ + -135.966522216823, + 69.20623016372139 + ], + [ + -135.491378784511, + 69.11872863794679 + ], + [ + -135.84443664595503, + 69.29901123088119 + ], + [ + -135.175964355394, + 69.2593612671186 + ], + [ + -135.283340453708, + 69.42047119137992 + ], + [ + -135.152572632329, + 69.47567748966861 + ], + [ + -134.438323974647, + 69.45471191458084 + ], + [ + -134.486785888098, + 69.71203613298854 + ], + [ + -133.78501892108198, + 69.57666015623053 + ], + [ + -134.674652100107, + 69.01318359394855 + ], + [ + -134.26779174810602, + 68.69581604022784 + ] + ] + ], + [ + [ + [ + -83.6780471806715, + 62.14041137670095 + ], + [ + -83.9444351195806, + 62.44478225681006 + ], + [ + -83.40028381380368, + 62.897491455506 + ], + [ + -81.86798095707961, + 62.92499160804261 + ], + [ + -81.96597290014338, + 62.69374084521547 + ], + [ + -82.76916503874742, + 62.29027557370666 + ], + [ + -83.6780471806715, + 62.14041137670095 + ] + ] + ], + [ + [ + [ + -61.16833496088291, + 45.55138397237753 + ], + [ + -61.45611190794239, + 45.710411071481126 + ], + [ + -61.4555587772202, + 46.13749694813133 + ], + [ + -60.640281677151094, + 46.99999999968764 + ], + [ + -60.4608306887523, + 46.99916076689803 + ], + [ + -60.302917480458, + 46.82360458340963 + ], + [ + -60.4438858030953, + 46.32694244427552 + ], + [ + -61.1465301512433, + 45.70152282694041 + ], + [ + -60.466941833874415, + 45.93804168727211 + ], + [ + -60.7872238163407, + 45.93616867024523 + ], + [ + -60.28527831994642, + 46.321380615193036 + ], + [ + -59.87305450438921, + 46.17582702659303 + ], + [ + -59.84055328366478, + 45.93832397465683 + ], + [ + -60.3797225953162, + 45.64499664344251 + ], + [ + -61.16833496088291, + 45.55138397237753 + ] + ] + ], + [ + [ + [ + -169.670425414366, + 62.94414901783058 + ], + [ + -170.50944519002203, + 63.37526321350664 + ], + [ + -171.549163818277, + 63.327766418297536 + ], + [ + -171.84097290010004, + 63.57429504394455 + ], + [ + -171.724456787688, + 63.750267028006135 + ], + [ + -170.92999267540202, + 63.57110595624825 + ], + [ + -170.300018310912, + 63.69415283252117 + ], + [ + -169.52444458002702, + 63.35415649468614 + ], + [ + -168.70086669929205, + 63.29054260259943 + ], + [ + -168.850006103633, + 63.15526580817831 + ], + [ + -169.321151733146, + 63.184574127328325 + ], + [ + -169.670425414366, + 62.94414901783058 + ] + ] + ], + [ + [ + [ + -132.12638854944203, + 54.68818283070897 + ], + [ + -132.596023559455, + 54.969085693401354 + ], + [ + -132.511962890633, + 55.10638427754747 + ], + [ + -132.650726318205, + 55.24381256102619 + ], + [ + -132.655136108442, + 55.138740539127085 + ], + [ + -133.21284484867303, + 55.27783966086328 + ], + [ + -133.209777831648, + 55.38110351519128 + ], + [ + -132.867492676046, + 55.35388183601128 + ], + [ + -133.126983642261, + 55.491031646303306 + ], + [ + -132.921142578449, + 55.6246414186775 + ], + [ + -133.36596679707802, + 55.615615845095085 + ], + [ + -133.143859862866, + 55.8797836301934 + ], + [ + -133.26507568322702, + 56.15485000568042 + ], + [ + -133.611648559714, + 56.20520019517093 + ], + [ + -133.61053466783, + 56.34832763654133 + ], + [ + -133.180206298486, + 56.32728576698865 + ], + [ + -133.072906494542, + 56.05131149272531 + ], + [ + -132.62179565431, + 55.91957473715743 + ], + [ + -132.141799926622, + 55.47568511922069 + ], + [ + -132.562499999573, + 55.56777191169759 + ], + [ + -132.088287353533, + 55.267597198842374 + ], + [ + -132.235336303424, + 55.19311523455456 + ], + [ + -131.985824585143, + 55.259578705168586 + ], + [ + -132.21353149439, + 54.99374389637196 + ], + [ + -131.972564697094, + 55.029712676810064 + ], + [ + -131.94943237308598, + 54.788330077876076 + ], + [ + -132.12638854944203, + 54.68818283070897 + ] + ] + ], + [ + [ + [ + -135.688049316278, + 57.362770080556025 + ], + [ + -136.35305786118002, + 57.833053588825045 + ], + [ + -136.34790039083902, + 58.22040557826955 + ], + [ + -135.48345947286, + 58.15804672271226 + ], + [ + -135.778961181885, + 58.042564391692856 + ], + [ + -135.647247314577, + 57.962211608851824 + ], + [ + -135.406539917201, + 58.13749313376974 + ], + [ + -134.92056274452702, + 58.01707839935714 + ], + [ + -135.1235961912, + 57.77443695100991 + ], + [ + -135.880340576265, + 57.99248886124665 + ], + [ + -135.296966553036, + 57.73165893531102 + ], + [ + -134.93112182648002, + 57.75943756095832 + ], + [ + -134.844238281287, + 57.596450805908894 + ], + [ + -134.85449218787, + 57.458740234569106 + ], + [ + -135.05929565429201, + 57.459506988591116 + ], + [ + -135.800872802891, + 57.759891510042934 + ], + [ + -135.552490234103, + 57.53416442839391 + ], + [ + -135.688049316278, + 57.362770080556025 + ] + ] + ], + [ + [ + [ + -132.39932251009802, + 53.142494201899176 + ], + [ + -132.733886718461, + 53.3372116088164 + ], + [ + -132.40550231949703, + 53.337421416903794 + ], + [ + -132.972503662234, + 53.55582427960113 + ], + [ + -133.13821411129402, + 53.87763214129673 + ], + [ + -133.06944274914, + 54.17138290417142 + ], + [ + -132.228332519219, + 54.065826415734215 + ], + [ + -132.129730224722, + 53.848464966052504 + ], + [ + -132.65861511213404, + 53.682281493763305 + ], + [ + -132.418060302608, + 53.60610198941299 + ], + [ + -131.663742065464, + 54.140270233487435 + ], + [ + -131.9637451175, + 53.27138519259418 + ], + [ + -132.39932251009802, + 53.142494201899176 + ] + ] + ], + [ + [ + [ + -62.024581908851495, + 49.06944274860456 + ], + [ + -63.093887328625385, + 49.229293822541685 + ], + [ + -64.51251220696491, + 49.86110687197438 + ], + [ + -64.1356201172946, + 49.94713973998699 + ], + [ + -63.136116027580194, + 49.78082275406328 + ], + [ + -61.88389205890681, + 49.34819030708586 + ], + [ + -61.664791107244, + 49.14422988910026 + ], + [ + -62.024581908851495, + 49.06944274860456 + ] + ] + ], + [ + [ + [ + -166.253112793061, + 59.795429229910354 + ], + [ + -167.130447387397, + 59.99887466438857 + ], + [ + -167.418060302691, + 60.1894226078427 + ], + [ + -166.10916137655502, + 60.4102706908004 + ], + [ + -165.68434143064002, + 60.29652023329078 + ], + [ + -165.555435180724, + 59.928737640070565 + ], + [ + -166.253112793061, + 59.795429229910354 + ] + ] + ], + [ + [ + [ + -134.57638549794, + 57.02721405032137 + ], + [ + -134.496124267255, + 57.37124252332019 + ], + [ + -134.95013427706002, + 58.40547561641946 + ], + [ + -134.705337524247, + 58.21450424162373 + ], + [ + -134.173126220365, + 58.159778595035355 + ], + [ + -133.89501953113802, + 57.75666046118373 + ], + [ + -133.893341064167, + 57.65526580777123 + ], + [ + -134.31958007827902, + 58.03096771245235 + ], + [ + -133.86262512241905, + 57.365547180458066 + ], + [ + -134.57638549794, + 57.02721405032137 + ] + ] + ], + [ + [ + [ + -79.8058319093424, + 61.56805419902317 + ], + [ + -80.2777786254423, + 61.81242370579369 + ], + [ + -80.2676391602855, + 62.10929870594195 + ], + [ + -79.94263458245132, + 62.387355804291836 + ], + [ + -79.44638061512418, + 62.38137817381354 + ], + [ + -79.2618103025285, + 62.161243438641634 + ], + [ + -79.8058319093424, + 61.56805419902317 + ] + ] + ], + [ + [ + [ + -134.654586791673, + 56.16610336306563 + ], + [ + -135.367355346403, + 56.832214355662266 + ], + [ + -135.33825683623402, + 57.24520111086179 + ], + [ + -135.66752624503602, + 57.34578704802579 + ], + [ + -135.515716552804, + 57.5049972535674 + ], + [ + -134.83610534648702, + 57.25027084331048 + ], + [ + -134.61888122569, + 56.728740692030364 + ], + [ + -134.654586791673, + 56.16610336306563 + ] + ] + ], + [ + [ + [ + -62.76111602828862, + 45.95416259703602 + ], + [ + -62.97083282532298, + 46.07416534382303 + ], + [ + -62.99701309255381, + 46.294158935882905 + ], + [ + -63.231525421122114, + 46.13888168306483 + ], + [ + -63.6462516785561, + 46.226516723557694 + ], + [ + -64.12734985394688, + 46.41092681862493 + ], + [ + -64.10556030255088, + 46.618049621802726 + ], + [ + -64.40528106744772, + 46.71929550176703 + ], + [ + -64.0208435053029, + 47.03860473588784 + ], + [ + -63.78028106726529, + 46.444992065246126 + ], + [ + -63.65472030684541, + 46.56679916385002 + ], + [ + -63.21639251761041, + 46.41220855650103 + ], + [ + -61.9746170044514, + 46.45471191455781 + ], + [ + -62.33472442646319, + 46.311935424702014 + ], + [ + -62.466388702722185, + 46.000549316664 + ], + [ + -62.76111602828862, + 45.95416259703602 + ] + ] + ], + [ + [ + [ + -164.66390991202402, + 54.39193725614994 + ], + [ + -164.95234680171404, + 54.58020019513246 + ], + [ + -164.49108886737704, + 54.91457366962686 + ], + [ + -163.926177978747, + 55.03172683721317 + ], + [ + -163.536392212135, + 55.04728698742807 + ], + [ + -163.374984741013, + 54.79179763816255 + ], + [ + -163.05488586430198, + 54.668117522807144 + ], + [ + -164.084991455047, + 54.62193298369466 + ], + [ + -164.66390991202402, + 54.39193725614994 + ] + ] + ], + [ + [ + [ + -77.1657028194413, + 17.697219849076745 + ], + [ + -77.73556518525608, + 17.849998474432414 + ], + [ + -78.0572357179063, + 18.196388244177665 + ], + [ + -78.3622283933908, + 18.234722137451264 + ], + [ + -78.3397979737693, + 18.360692978030364 + ], + [ + -77.8644561769708, + 18.522499085020147 + ], + [ + -76.94528198257608, + 18.394443512157455 + ], + [ + -76.3416748046283, + 18.149719238270375 + ], + [ + -76.2211151123548, + 17.90416336092902 + ], + [ + -76.83292388937402, + 17.987081527826405 + ], + [ + -76.95153045633, + 17.829303741045706 + ], + [ + -77.1319580073083, + 17.87888717609461 + ], + [ + -77.1657028194413, + 17.697219849076745 + ] + ] + ], + [ + [ + [ + -155.663146972725, + 18.925477981596384 + ], + [ + -155.900299071983, + 19.090339660874683 + ], + [ + -156.048980712642, + 19.735059738288097 + ], + [ + -155.81326293917598, + 20.004024505356384 + ], + [ + -155.84654235806602, + 20.277633666958145 + ], + [ + -155.183349609568, + 19.98513221715348 + ], + [ + -154.797821045235, + 19.53808593727761 + ], + [ + -155.663146972725, + 18.925477981596384 + ] + ] + ], + [ + [ + [ + -66.20445251478772, + 17.922222137303514 + ], + [ + -67.1847305295471, + 17.932498931475408 + ], + [ + -67.2663955688089, + 18.36541557276826 + ], + [ + -67.0833435062255, + 18.519443512318027 + ], + [ + -65.62695312468502, + 18.36499786351957 + ], + [ + -65.8868179321248, + 17.987913131399303 + ], + [ + -66.20445251478772, + 17.922222137303514 + ] + ] + ], + [ + [ + [ + -131.20527648923002, + 55.18679428088589 + ], + [ + -131.45492553694302, + 55.278602600108876 + ], + [ + -131.273544311734, + 55.4331169128735 + ], + [ + -131.347702026397, + 55.64311981207401 + ], + [ + -131.328598022529, + 55.42582702649439 + ], + [ + -131.518615722795, + 55.29457855234047 + ], + [ + -131.8191680908, + 55.453632354747 + ], + [ + -131.68486022953599, + 55.830272674573116 + ], + [ + -131.25959777825202, + 55.96026992780072 + ], + [ + -131.055984497085, + 55.8062438966713 + ], + [ + -130.96806335449702, + 55.38818740825378 + ], + [ + -131.20527648923002, + 55.18679428088589 + ] + ] + ], + [ + [ + [ + -133.575561523639, + 56.43360137924283 + ], + [ + -133.748596191595, + 56.874160766733475 + ], + [ + -134.008132934808, + 57.05457687387018 + ], + [ + -132.97276306136501, + 56.924434662077076 + ], + [ + -132.93376159651203, + 56.62978363028985 + ], + [ + -133.347213745221, + 56.837627410734164 + ], + [ + -133.082702636799, + 56.532630920683054 + ], + [ + -133.575561523639, + 56.43360137924283 + ] + ] + ], + [ + [ + [ + -131.26473999042202, + 52.11971282977185 + ], + [ + -132.21916198705298, + 52.80853271473136 + ], + [ + -132.378601074187, + 53.12943267793548 + ], + [ + -131.799514770741, + 53.25138473480199 + ], + [ + -131.597732543719, + 53.04079055781878 + ], + [ + -131.85638427727102, + 52.85610198963317 + ], + [ + -131.77154541008701, + 52.71527099614196 + ], + [ + -131.01069641116501, + 52.21873855624736 + ], + [ + -131.26473999042202, + 52.11971282977185 + ] + ] + ], + [ + [ + [ + -167.66333007813003, + 53.25554656981447 + ], + [ + -167.842559814415, + 53.306373596222194 + ], + [ + -167.216033935952, + 53.46440887453071 + ], + [ + -167.025726318089, + 53.702625274600116 + ], + [ + -166.76644897430302, + 53.6858215331018 + ], + [ + -167.152374267205, + 53.82387924174401 + ], + [ + -167.020431518377, + 53.956653595230215 + ], + [ + -166.63154602012503, + 53.9997100833223 + ], + [ + -166.603607177603, + 53.82902526889872 + ], + [ + -166.375152587707, + 54.001029968467925 + ], + [ + -166.21514892581897, + 53.9209594726897 + ], + [ + -166.28475952186002, + 53.67638397256241 + ], + [ + -166.650177001793, + 53.49207305938211 + ], + [ + -167.66333007813003, + 53.25554656981447 + ] + ] + ], + [ + [ + [ + -80.70944213866639, + 52.69144821131677 + ], + [ + -81.9249877926979, + 52.96374511738428 + ], + [ + -82.0529785155576, + 53.04179763793198 + ], + [ + -81.856246948044, + 53.1801338196933 + ], + [ + -81.1112518309867, + 53.2002716067609 + ], + [ + -80.7691726684326, + 52.937908172441254 + ], + [ + -80.70944213866639, + 52.69144821131677 + ] + ] + ], + [ + [ + [ + -134.10943603532098, + 55.99707794191271 + ], + [ + -134.28230285631201, + 56.348461151048355 + ], + [ + -134.089431762542, + 56.53818893411804 + ], + [ + -134.393341064536, + 56.72137451187297 + ], + [ + -134.261550903133, + 56.93873977673399 + ], + [ + -133.754211425986, + 56.785923003995755 + ], + [ + -133.708496093933, + 56.60158920271694 + ], + [ + -133.921249389492, + 56.61110305780686 + ], + [ + -133.862213134721, + 56.27748870868923 + ], + [ + -133.959152221719, + 56.08249664325882 + ], + [ + -134.06141662584702, + 56.24607849135862 + ], + [ + -134.10943603532098, + 55.99707794191271 + ] + ] + ], + [ + [ + [ + -152.85221862812, + 57.992908478037755 + ], + [ + -153.221252441511, + 58.193599700988756 + ], + [ + -152.90223693845599, + 58.16749191311534 + ], + [ + -153.10430908191498, + 58.261665344396334 + ], + [ + -152.797775268782, + 58.28277206407724 + ], + [ + -152.638610840117, + 58.47971344016516 + ], + [ + -151.96568298319, + 58.32332611063135 + ], + [ + -152.08029174784104, + 58.15637969946375 + ], + [ + -152.27418518090704, + 58.262218475115745 + ], + [ + -152.27722167969299, + 58.129436492743956 + ], + [ + -152.85221862812, + 57.992908478037755 + ] + ] + ], + [ + [ + [ + -79.7819519041497, + 55.7880477903202 + ], + [ + -79.47569274888411, + 56.120128631384716 + ], + [ + -79.86486053466709, + 55.849021911449114 + ], + [ + -79.96194457993332, + 55.96027374291901 + ], + [ + -79.4687500002353, + 56.546386718475745 + ], + [ + -79.4616699219517, + 56.19332122828473 + ], + [ + -79.28639221193279, + 56.57027435311485 + ], + [ + -78.9237442018502, + 56.41735458366152 + ], + [ + -79.2828445434275, + 55.8678398131455 + ], + [ + -79.1582260130179, + 56.203323363989846 + ], + [ + -79.45249938987362, + 55.879989623826425 + ], + [ + -79.7819519041497, + 55.7880477903202 + ] + ] + ], + [ + [ + [ + -74.0044479369145, + 40.580413818192675 + ], + [ + -73.9169464116586, + 40.79235839843236 + ], + [ + -73.5894470213155, + 40.92054748575887 + ], + [ + -72.6376419068569, + 40.98165893597315 + ], + [ + -72.28527832036909, + 41.16193389883416 + ], + [ + -72.61711120553741, + 40.91759491004315 + ], + [ + -71.8667984009293, + 41.07478332529186 + ], + [ + -74.0044479369145, + 40.580413818192675 + ] + ] + ], + [ + [ + [ + -128.75027465813102, + 52.599021911633656 + ], + [ + -128.64674377446002, + 52.96193695072996 + ], + [ + -128.778900146486, + 52.66415405279908 + ], + [ + -129.03277587903202, + 52.71971130384157 + ], + [ + -129.120956420757, + 52.86610412603599 + ], + [ + -128.838607788236, + 53.032634735237075 + ], + [ + -128.993118286006, + 53.127658843829884 + ], + [ + -128.86332702628005, + 53.036525726276686 + ], + [ + -129.163543701065, + 52.922492981002485 + ], + [ + -129.082916259934, + 53.29513549787859 + ], + [ + -128.531677246056, + 53.02110290532109 + ], + [ + -128.59222412100402, + 52.613883972063654 + ], + [ + -128.75027465813102, + 52.599021911633656 + ] + ] + ], + [ + [ + [ + -169.08670043942303, + 52.828048706144976 + ], + [ + -168.62139892545403, + 53.27221679662921 + ], + [ + -168.357238769688, + 53.26235580427639 + ], + [ + -168.354049682917, + 53.47332382197388 + ], + [ + -167.795318603546, + 53.49553680391479 + ], + [ + -169.08670043942303, + 52.828048706144976 + ] + ] + ], + [ + [ + [ + -61.90951538094771, + 10.04034614544349 + ], + [ + -61.453754425304005, + 10.294164657695566 + ], + [ + -61.473617553745484, + 10.597776412816112 + ], + [ + -61.662017822215816, + 10.708401680035601 + ], + [ + -60.909236907982624, + 10.827013015550376 + ], + [ + -61.03416824338519, + 10.678194046133596 + ], + [ + -61.0044479369024, + 10.149581909060684 + ], + [ + -61.90951538094771, + 10.04034614544349 + ] + ] + ], + [ + [ + [ + -78.0196609497395, + 24.27465057374912 + ], + [ + -78.4401474000242, + 24.61666488635241 + ], + [ + -78.17723083482151, + 24.917221069388795 + ], + [ + -78.2050018312365, + 25.201942443955467 + ], + [ + -77.9877166747006, + 25.15020561226606 + ], + [ + -77.7216796876363, + 24.52888870215572 + ], + [ + -78.0196609497395, + 24.27465057374912 + ] + ] + ], + [ + [ + [ + -175.079711914092, + 51.99832153315406 + ], + [ + -175.33403015133604, + 52.01651763949495 + ], + [ + -174.504486083641, + 52.13457489032347 + ], + [ + -174.18003845225098, + 52.41762924206246 + ], + [ + -173.990753173859, + 52.32213974006605 + ], + [ + -174.20944213883004, + 52.098876953461534 + ], + [ + -175.079711914092, + 51.99832153315406 + ] + ] + ], + [ + [ + [ + -82.89723205560371, + 21.43277740468121 + ], + [ + -83.0729904176357, + 21.462707519680823 + ], + [ + -83.1913986205904, + 21.623399734487297 + ], + [ + -82.93507385250992, + 21.586595535409796 + ], + [ + -83.08944702137049, + 21.78555297866838 + ], + [ + -82.97445678714737, + 21.94277572618207 + ], + [ + -82.7158355713151, + 21.890274047852184 + ], + [ + -82.5430603027495, + 21.589721679845315 + ], + [ + -82.89723205560371, + 21.43277740468121 + ] + ] + ], + [ + [ + [ + -176.93862915053302, + 51.58443450918815 + ], + [ + -176.758361816348, + 51.950828552157326 + ], + [ + -176.55976867682102, + 51.984710693325844 + ], + [ + -176.642242431643, + 51.857215881405544 + ], + [ + -176.42362976066806, + 51.82777023311083 + ], + [ + -176.93862915053302, + 51.58443450918815 + ] + ] + ], + [ + [ + [ + -73.6627807615417, + 20.915275573550076 + ], + [ + -73.5306320190391, + 21.18576240535975 + ], + [ + -73.258483886603, + 21.134996414196962 + ], + [ + -73.0075073242476, + 21.32374763474152 + ], + [ + -73.14972686771722, + 20.97388839725998 + ], + [ + -73.6627807615417, + 20.915275573550076 + ] + ] + ], + [ + [ + [ + -61.6888923645781, + 15.947776794300731 + ], + [ + -61.78361511219719, + 16.333053588915195 + ], + [ + -61.54187011712141, + 16.2902488708093 + ], + [ + -61.46333694455309, + 16.512914657565673 + ], + [ + -61.20555877686921, + 16.267219543479992 + ], + [ + -61.6888923645781, + 15.947776794300731 + ] + ] + ], + [ + [ + [ + -157.81307983411702, + 21.258884429954332 + ], + [ + -158.10057067878301, + 21.29444313048293 + ], + [ + -158.273498535142, + 21.577772140418308 + ], + [ + -157.94390869143402, + 21.68444061268059 + ], + [ + -157.66558837891998, + 21.32416152954444 + ], + [ + -157.81307983411702, + 21.258884429954332 + ] + ] + ], + [ + [ + [ + -159.451416015726, + 21.86999130247527 + ], + [ + -159.754196166931, + 21.97916030893167 + ], + [ + -159.71461486819302, + 22.154163360591042 + ], + [ + -159.32748413092602, + 22.201656341671036 + ], + [ + -159.451416015726, + 21.86999130247527 + ] + ] + ], + [ + [ + [ + -77.6090393066013, + 23.727357864390193 + ], + [ + -77.77375030511489, + 23.744859695304992 + ], + [ + -77.66964721690958, + 23.766368865867374 + ], + [ + -77.5759124755166, + 23.84388732908588 + ], + [ + -77.73028564443389, + 23.786941528328782 + ], + [ + -77.87667846668771, + 24.073055267333963 + ], + [ + -77.67792510984701, + 24.295135498030643 + ], + [ + -77.74166870125839, + 24.030277252302966 + ], + [ + -77.60931396474501, + 24.21499824521774 + ], + [ + -77.51681518558, + 23.92472076419686 + ], + [ + -77.6090393066013, + 23.727357864390193 + ] + ] + ], + [ + [ + [ + -77.2180633544135, + 25.879165649435386 + ], + [ + -77.39805603011919, + 26.026386261136178 + ], + [ + -77.2208404539321, + 26.145275116044264 + ], + [ + -77.15417480485979, + 26.55458259556832 + ], + [ + -77.34305572530249, + 26.60513496393532 + ], + [ + -77.54278564436102, + 26.865552902002207 + ], + [ + -77.95028686516189, + 26.897777557313795 + ], + [ + -77.54667663570478, + 26.89666366602631 + ], + [ + -77.0422363279857, + 26.50888824445294 + ], + [ + -77.2180633544135, + 25.879165649435386 + ] + ] + ], + [ + [ + [ + -78.70861816407601, + 26.489719390963746 + ], + [ + -78.97889709470161, + 26.695274353104427 + ], + [ + -78.7011184689665, + 26.584442138790013 + ], + [ + -78.5188903810079, + 26.734165191788133 + ], + [ + -77.9172363279631, + 26.74527740476522 + ], + [ + -78.70861816407601, + 26.489719390963746 + ] + ] + ], + [ + [ + [ + -60.860839843778784, + 14.40277671814882 + ], + [ + -61.03388977055759, + 14.46583175668983 + ], + [ + -61.174728393498306, + 14.876943588323257 + ], + [ + -60.940834045332004, + 14.740833282427795 + ], + [ + -60.860839843778784, + 14.40277671814882 + ] + ] + ], + [ + [ + [ + -64.52171325674459, + 60.310729980391095 + ], + [ + -64.72888183584222, + 60.36332702637668 + ], + [ + -64.8679122924701, + 60.453186035230694 + ], + [ + -64.4254150391128, + 60.39929962148121 + ], + [ + -64.52171325674459, + 60.310729980391095 + ] + ] + ], + [ + [ + [ + -56.339164733921194, + 46.77985382080502 + ], + [ + -56.396461486892015, + 46.829578399631735 + ], + [ + -56.3611145019652, + 47.135826110827516 + ], + [ + -56.2326354979867, + 46.85305023195974 + ], + [ + -56.339164733921194, + 46.77985382080502 + ] + ] + ], + [ + [ + [ + -61.363616943357606, + 15.198055267342022 + ], + [ + -61.4913940429364, + 15.540554046612685 + ], + [ + -61.4522247314524, + 15.631942749011177 + ], + [ + -61.253334045494896, + 15.461387634336702 + ], + [ + -61.363616943357606, + 15.198055267342022 + ] + ] + ], + [ + [ + [ + -76.16833496104131, + 24.689998626726183 + ], + [ + -76.3368835451001, + 24.817705154603484 + ], + [ + -76.16334533692219, + 25.127777099806355 + ], + [ + -76.71583557131571, + 25.44166564945362 + ], + [ + -76.73529052753919, + 25.559165954566524 + ], + [ + -76.1202850339626, + 25.133192062362156 + ], + [ + -76.16833496104131, + 24.689998626726183 + ] + ] + ], + [ + [ + [ + -60.95472717294932, + 13.70944404602792 + ], + [ + -61.07958602904488, + 13.8766660689537 + ], + [ + -60.9333381652923, + 14.109304428089374 + ], + [ + -60.87805938724639, + 13.956665039020079 + ], + [ + -60.95472717294932, + 13.70944404602792 + ] + ] + ], + [ + [ + [ + -75.46250915538539, + 24.122497558604053 + ], + [ + -75.4661178589419, + 24.290346145601237 + ], + [ + -75.735565185523, + 24.696525573714105 + ], + [ + -75.31472778310179, + 24.213886261101635 + ], + [ + -75.46250915538539, + 24.122497558604053 + ] + ] + ], + [ + [ + [ + -68.7469482421972, + 12.040276527313727 + ], + [ + -69.06249999997661, + 12.188331604004505 + ], + [ + -69.1636199951075, + 12.36638832090499 + ], + [ + -68.82417297353709, + 12.160276412894612 + ], + [ + -68.7469482421972, + 12.040276527313727 + ] + ] + ], + [ + [ + [ + -59.53305816653842, + 13.050554275517602 + ], + [ + -59.6427803039618, + 13.146388053883687 + ], + [ + -59.6311111449996, + 13.334999084526261 + ], + [ + -59.42916870113469, + 13.164999008212986 + ], + [ + -59.53305816653842, + 13.050554275517602 + ] + ] + ], + [ + [ + [ + -61.7380599976034, + 16.989719390838502 + ], + [ + -61.88153076168291, + 17.022081375062797 + ], + [ + -61.82958602903802, + 17.165554046605397 + ], + [ + -61.67055892944332, + 17.088470458998213 + ], + [ + -61.7380599976034, + 16.989719390838502 + ] + ] + ], + [ + [ + [ + -61.7497253418216, + 11.996942520145533 + ], + [ + -61.72472381594861, + 12.172222137452925 + ], + [ + -61.6147232055288, + 12.231943130469 + ], + [ + -61.6301422119281, + 12.046110153222028 + ], + [ + -61.7497253418216, + 11.996942520145533 + ] + ] + ], + [ + [ + [ + -61.18444824223119, + 13.130277633671081 + ], + [ + -61.2801437377647, + 13.205693244962973 + ], + [ + -61.1798629761249, + 13.38319301604455 + ], + [ + -61.1202850342347, + 13.307498931819463 + ], + [ + -61.18444824223119, + 13.130277633671081 + ] + ] + ], + [ + [ + [ + -118.30374145501601, + 33.30985260010895 + ], + [ + -118.44964599604201, + 33.32860565181283 + ], + [ + -118.58992767333298, + 33.48381042475684 + ], + [ + -118.34973144538101, + 33.39833068853896 + ], + [ + -118.30374145501601, + 33.30985260010895 + ] + ] + ], + [ + [ + [ + -97.3879852293554, + 27.22242546082658 + ], + [ + -97.3172302244751, + 27.495826721115957 + ], + [ + -97.0431900025373, + 27.83985710144652 + ], + [ + -97.26695251472219, + 27.509719848761755 + ], + [ + -97.3879852293554, + 27.22242546082658 + ] + ] + ], + [ + [ + [ + -64.8961181640547, + 17.676666259821832 + ], + [ + -64.7641754151243, + 17.77861022952123 + ], + [ + -64.56257629395309, + 17.751178741414833 + ], + [ + -64.66833496098371, + 17.710830688504117 + ], + [ + -64.8961181640547, + 17.676666259821832 + ] + ] + ], + [ + [ + [ + -81.263618469223, + 19.264997482342338 + ], + [ + -81.3913955688497, + 19.26721954349216 + ], + [ + -81.3950042724162, + 19.326110839890237 + ], + [ + -81.097640991195, + 19.345415115312733 + ], + [ + -81.263618469223, + 19.264997482342338 + ] + ] + ], + [ + [ + [ + -62.65389251709801, + 17.208885192865786 + ], + [ + -62.837226867617694, + 17.326108932471264 + ], + [ + -62.85639190676918, + 17.385829925502275 + ], + [ + -62.73236465447989, + 17.36666488647367 + ], + [ + -62.65389251709801, + 17.208885192865786 + ] + ] + ], + [ + [ + [ + -69.8822326659848, + 12.411109924319673 + ], + [ + -70.05903625490609, + 12.540207862817057 + ], + [ + -70.05966186524009, + 12.627776145928264 + ], + [ + -69.93223571779939, + 12.528055190989857 + ], + [ + -69.8822326659848, + 12.411109924319673 + ] + ] + ], + [ + [ + [ + -75.6100006102714, + 35.22221374512624 + ], + [ + -75.491943359497, + 35.41805267344425 + ], + [ + -75.51480102529419, + 35.77596282957303 + ], + [ + -75.4830627442551, + 35.34582519528106 + ], + [ + -75.6100006102714, + 35.22221374512624 + ] + ] + ], + [ + [ + [ + -97.0252838135181, + 27.86944198608682 + ], + [ + -96.9219360351139, + 28.089717864931384 + ], + [ + -96.8427810668969, + 28.11833000187419 + ], + [ + -96.84861755372269, + 28.083885192846115 + ], + [ + -97.0252838135181, + 27.86944198608682 + ] + ] + ], + [ + [ + [ + -71.6588897705181, + 21.739719390816006 + ], + [ + -71.82528686521229, + 21.7754135131325 + ], + [ + -71.84777832026919, + 21.854721069384876 + ], + [ + -71.6677856444999, + 21.831525802654667 + ], + [ + -71.6588897705181, + 21.739719390816006 + ] + ] + ], + [ + [ + [ + -62.171394348124196, + 16.67138671875115 + ], + [ + -62.236949920680395, + 16.714719772324145 + ], + [ + -62.20458984376091, + 16.812358856195623 + ], + [ + -62.14722442624681, + 16.749164581301244 + ], + [ + -62.171394348124196, + 16.67138671875115 + ] + ] + ], + [ + [ + [ + -80.5951461791942, + 24.946384429937996 + ], + [ + -80.28680419929528, + 25.341802597133533 + ], + [ + -80.2609786986604, + 25.348052978607537 + ], + [ + -80.39079284676419, + 25.142774581856962 + ], + [ + -80.5951461791942, + 24.946384429937996 + ] + ] + ], + [ + [ + [ + -63.16777801513219, + 18.164443969709968 + ], + [ + -63.0520172118795, + 18.25958061213378 + ], + [ + -62.97270965576631, + 18.272983551024456 + ], + [ + -62.993057250992685, + 18.22721862791147 + ], + [ + -63.16777801513219, + 18.164443969709968 + ] + ] + ], + [ + [ + [ + -64.6608428954934, + 18.383888244594765 + ], + [ + -64.6525115966802, + 18.441108703597436 + ], + [ + -64.5602798462128, + 18.453609466574743 + ], + [ + -64.5651397705025, + 18.420969009401542 + ], + [ + -64.6608428954934, + 18.383888244594765 + ] + ] + ], + [ + [ + [ + -64.8230590820278, + 32.26055145262029 + ], + [ + -64.7823715210048, + 32.2801361083808 + ], + [ + -64.67681121826512, + 32.37950897219441 + ], + [ + -64.7611236572562, + 32.28499603271802 + ], + [ + -64.8230590820278, + 32.26055145262029 + ] + ] + ] + ], + "type": "MultiPolygon" + }, + "properties": { + "name": "North America", + "shortName": "North America", + "code": null, + "abbreviation": null, + "description": "", + "notes": "", + "promotedForReuse": true, + "extentType": "Continent" + } + } + ] + } + ] + } + ] + }, + "resourceLineage": [ + { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "scope": { + "scopeCode": "scopeCode" + }, + "citation": [ + { + "title": "Lineage Title 1" + }, + { + "title": "Lineage Title 2" + } + ], + "source": [ + { + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "sourceCitation": { + "title": "Source Citation Title" + }, + "metadataCitation": [ + { + "title": "First Source Metadata Citation" + }, + { + "title": "Next Source Metadata Citation" + } + ], + "spatialResolution": { + "scaleFactor": 99999 + }, + "referenceSystem": { + "referenceSystemType": "referenceSystemType", + "referenceSystemIdentifier": { + "identifier": "identifier" + } + }, + "sourceProcessStep": [ + { + "description": "description" + }, + { + "description": "description" + } + ], + "scope": { + "scopeCode": "scopeCode" + } + }, + { + "description": "description" + } + ], + "processStep": [ + { + "stepId": "stepId", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "rationale": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "timePeriod": { + "startDateTime": "2016-10-14T11:10:15.2-10:00", + "endDateTime": "2016-12-31", + "id": "TimePeriod001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "TimePeriod Identifier", + "namespace": "namespace" + }, + "periodName": [ + "periodName0", + "periodName1" + ], + "timeInterval": { + "interval": 9.9, + "units": "year" + }, + "duration": { + "months": 9 + } + }, + "processor": [ + { + "role": "processor", + "party": [ + { + "contactId": "CID006" + } + ] + }, + { + "role": "reviewer", + "party": [ + { + "contactId": "CID004" + } + ] + } + ], + "reference": [ + { + "title": "Process Step Reference" + }, + { + "title": "Another Process Step Reference" + } + ], + "scope": { + "scopeCode": "scopeCode" + } + }, + { + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + } + ] + }, + { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + ], + "resourceDistribution": [ + { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "distributor": [ + { + "contact": { + "role": "distributor", + "party": [ + { + "contactId": "CID002" + } + ] + }, + "orderProcess": [ + { + "fees": "10.00USD", + "plannedAvailability": "2016-10-21T00:00:00", + "orderingInstructions": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "turnaround": "turnaround" + }, + { + "fees": "2.00USD" + } + ], + "transferOption": [ + { + "unitsOfDistribution": "units of distribution", + "transferSize": 9.9, + "onlineOption": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "offlineOption": [ + { + "mediumSpecification": { + "title": "My Medium Specification Title" + }, + "density": 9.9, + "units": "units", + "numberOfVolumes": 9, + "mediumFormat": [ + "mediumFormat0", + "mediumFormat1" + ], + "note": "note", + "identifier": { + "identifier": "Medium Identifier" + } + }, + { + "mediumSpecification": { + "title": "dium specification title 1" + } + } + ], + "transferFrequency": { + "months": 9 + }, + "distributionFormat": [ + { + "formatSpecification": { + "title": "CSV" + }, + "amendmentNumber": "2.0.8-beta", + "compressionMethod": "7ZipUp" + }, + { + "formatSpecification": { + "title": "format specification title 1" + } + } + ] + }, + { + "transferSize": 10.9 + } + ] + }, + { + "contact": { + "role": "distributor", + "party": [ + { + "contactId": "CID003" + } + ] + } + } + ] + } + ], + "associatedResource": [ + { + "resourceType": [ + { + "type": "modelHardcopy", + "name": "Hardcopy of Model" + }, + { + "type": "videoDigital", + "name": "Video of the Making" + } + ], + "associationType": "partOfSeamlessDatabase", + "initiativeType": "investigation", + "resourceCitation": { + "title": "Resource Citation Title" + }, + "metadataCitation": { + "title": "Metadata Citation Title" + } + }, + { + "resourceType": [ + { + "type": "type0", + "name": "name0" + }, + { + "type": "type1", + "name": "name1" + } + ], + "associationType": "associationType", + "initiativeType": "initiativeType", + "resourceCitation": { + "title": "title" + }, + "metadataCitation": { + "title": "title" + } + } + ], + "additionalDocumentation": [ + { + "resourceType": [ + { + "type": "webService", + "name": "ADIwg API" + }, + { + "type": "databaseDigital", + "name": "DMV Data" + } + ], + "citation": [ + { + "title": "A Good Additional Document" + }, + { + "title": "A More Better Additional Document" + } + ] + }, + { + "resourceType": [ + { + "type": "multimediaHardcopy", + "name": "Multi-Media Hard-Copy" + }, + { + "type": "physicalObject", + "name": "Lab Specimen" + } + ], + "citation": [ + { + "title": "A Much Mo Betha Additional Document" + } + ] + } + ], + "funding": [ + { + "allocation": [ + { + "amount": 9999.99, + "currency": "USD", + "sourceId": "CID005", + "recipientId": "CID006", + "matching": true, + "comment": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "amount": 999.99, + "currency": "CAD" + } + ], + "timePeriod": { + "startDateTime": "2016-10-14T11:10:15.2-10:00", + "endDateTime": "2016-12-31", + "id": "TimePeriod001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "TimePeriod Identifier", + "namespace": "namespace" + }, + "periodName": [ + "periodName0", + "periodName1" + ], + "timeInterval": { + "interval": 9.9, + "units": "year" + }, + "duration": { + "months": 9 + } + } + }, + { + "allocation": [ + { + "amount": 9999.99, + "currency": "EUR" + } + ], + "timePeriod": { + "startDateTime": "2016-10-14" + } + } + ] + }, + "dataDictionary": [ + { + "citation": { + "title": "title" + }, + "subject": [ + "subject0", + "subject1" + ], + "recommendedUse": [ + "use0", + "use1" + ], + "locale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "responsibleParty": { + "role": "author", + "party": [ + { + "contactId": "CID001" + } + ] + }, + "dictionaryFormat": "format", + "dictionaryIncludedWithResource": true, + "domain": [ + { + "domainId": "domainId0", + "commonName": "commonName", + "codeName": "codeName", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "domainItem": [ + { + "name": "name0", + "value": "value0", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + }, + { + "name": "name1", + "value": "value1", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + }, + { + "name": "name2", + "value": "value2", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + } + ] + }, + { + "domainId": "domainId1", + "commonName": "commonName", + "codeName": "codeName", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "domainItem": [ + { + "name": "name0", + "value": "value0", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + } + ] + } + ], + "entity": [ + { + "entityId": "entityId0", + "commonName": "commonName", + "codeName": "codeName", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "primaryKeyAttributeCodeName": [ + "primaryAttribute0", + "primaryAttribute1" + ], + "index": [ + { + "codeName": "codeName0", + "allowDuplicates": false, + "attributeCodeName": [ + "attributeCodeName00", + "attributeCodeName01" + ] + }, + { + "codeName": "codeName1", + "allowDuplicates": true, + "attributeCodeName": [ + "attributeCodeName1" + ] + } + ], + "attribute": [ + { + "commonName": "Common Name for Attribute", + "codeName": "codeName", + "alias": [ + "alias0", + "alias1" + ], + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "dataType": "dataType", + "allowNull": true, + "mustBeUnique": false, + "units": "units", + "domainId": "domainId", + "minValue": "minValue", + "maxValue": "maxValue" + }, + { + "commonName": "Employee ID", + "codeName": "empId", + "alias": [ + "employeeId", + "employeeNumber" + ], + "definition": "Numeric code to uniquely identify an employee of Acme Oil", + "dataType": "numeric", + "allowNull": false, + "mustBeUnique": true, + "units": "meters", + "domainId": "dom042", + "minValue": "1000000", + "maxValue": "5000000" + } + ], + "foreignKey": [ + { + "localAttributeCodeName": [ + "localAttributeCodeName0", + "localAttributeCodeName1" + ], + "referencedEntityCodeName": "referencedEntityCodeName", + "referencedAttributeCodeName": [ + "referencedAttributeCodeName0", + "referencedAttributeCodeName1" + ] + }, + { + "localAttributeCodeName": [ + "employeeID" + ], + "referencedEntityCodeName": "EMPLOYEE", + "referencedAttributeCodeName": [ + "employeeID" + ] + } + ] + }, + { + "entityId": "entityId1", + "commonName": "commonName", + "codeName": "codeName", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "primaryKeyAttributeCodeName": [ + "primaryAttribute" + ], + "attribute": [ + { + "commonName": "commonName", + "codeName": "codeName", + "alias": [ + "alias0", + "alias1" + ], + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "dataType": "dataType", + "allowNull": true, + "mustBeUnique": false, + "units": "units", + "domainId": "domainId", + "minValue": "minValue", + "maxValue": "maxValue" + }, + { + "commonName": "Employee ID", + "codeName": "empId", + "alias": [ + "employeeId", + "employeeNumber" + ], + "definition": "Numeric code to uniquely identify an employee of Acme Oil", + "dataType": "numeric", + "allowNull": false, + "mustBeUnique": true, + "units": "meters", + "domainId": "dom042", + "minValue": "1000000", + "maxValue": "5000000" + } + ] + } + ] + }, + { + "citation": { + "title": "My Dictionary Title" + }, + "subject": [ + "birds", + "loons" + ], + "recommendedUse": [ + "Reconstruct database" + ], + "locale": [ + { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + } + ], + "responsibleParty": { + "role": "author", + "party": [ + { + "contactId": "CID006" + } + ] + }, + "dictionaryFormat": "MSSQL", + "dictionaryIncludedWithResource": false + } + ], + "metadataRepository": [ + { + "repository": "data.gov", + "citation": { + "title": "My Repository Citation Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "identifier": [ + { + "identifier": "identifier 0" + }, + { + "identifier": "identifier 1" + } + ] + }, + "metadataStandard": "FGDC" + }, + { + "repository": "dataOne", + "metadataStandard": "iso19115_2" + } + ] +} From e213959cbfde97ced37cf6ba4d6d61741950b4ea Mon Sep 17 00:00:00 2001 From: Johnathan Date: Tue, 10 Dec 2024 16:32:48 -0700 Subject: [PATCH 2/2] Feature: DCAT-US v1 (v2.20.0) (#383) * 264 dcat us writer required fields (#274) * Add DCAT-US Writer Migrating changes from another branch. Unit tests and writers for most required fields and some if-applicable fileds. * Add DCAT-US.md * Remove Whitespace * New Access Level Unit Test Fix accessLevel writer. * Add Unit Tests Access Level New tests for public and restricted public. * New Unit Test For License * New Unit Test Spatial * Remove Comment Headers * New Temporal Unit Test * Remove Comment Header * Add DCAT-US Tests to Rakefile * Update MiniTest to Minitest * New Distribution Unit Test * Complete Temporal Unit Test & Writer * Update Rights Unit Test & Writer * Remove Sample Files * 269 dcat us writer optional fields (#282) * Add DCAT-US Writer Migrating changes from another branch. Unit tests and writers for most required fields and some if-applicable fileds. * Add DCAT-US.md * Remove Whitespace * New Access Level Unit Test Fix accessLevel writer. * Add Unit Tests Access Level New tests for public and restricted public. * New Unit Test For License * New Unit Test Spatial * Remove Comment Headers * New Temporal Unit Test * Remove Comment Header * Add DCAT-US Tests to Rakefile * Update MiniTest to Minitest * New Distribution Unit Test * Complete Temporal Unit Test & Writer * Update Rights Unit Test & Writer * Remove Sample Files * New Issued Field Writer, unit test, and test file. Enabled issue field in main dcat_us writer. * New Theme Field Writer, unit test, and test file. Enabled theme in main dcat_us writer. * New Landing Page Field Writer, unit test, and test file. Enabled landingPage in main writer. * New IsPartOf Field Writer, unit test, and test file. Enabled isPartOf in main writer. * Update DCAT-US.md * New Described By Field Writer, unit test, and test file. Enabled describedBy in the main writer. * New References Field Writer, unit test, and test file. Enabled references field in main writer. * New System of Records Field Writer, unit test, and test file. Enabled systemOfRecords field in main writer. * Update description mapping * Update test data * Enable Fields * Fix Conditional includedWithDataset is the internal version of the dictionaryIncludedWithResource field in mdJson. * Fix Description Moved into its own file and fixed the mapping. * Update version * Add sbJson External Contact Identifiers Reader and writer. Reader looks for orcId and maps to external identifier. Writer looks for external identifier with namespace ORCID and maps associated id to orcId. Both only work for contact type of person, disabled for organizations. * Update Version * Add Data Quality Reports Array * Fix internal metadata object * Cleanup & Fix * Fix Data Quality Reader - mdJson * Cleanup * Fix Data Quality * Implement Data Quality Report * Implement Coverage Result - mdJson writer * Fix & Cleanup Data Quality * Fix Spatial Representation * Fix HTML citation Writer * Cleanup * Update Version * Update Version * Fix Internal Metadata Object - Data Quality Coverage Result * Fix Refereence Typo * Add Data Quality Link * Handle Empty Citation * Improve Data Quality Add Reports Section * Implement Data Quality Reports * Add Null Checks * Handle nil and empty * Handle nil & empty * New Generator newRangeElementDescription * close out function * fix reader to recognize rangeElement key from mdJson file (#317) * fix key retrieval for Html_RangeElementDescription writer class (#318) * fix key retrieval for Html_RangeElementDescription writer class * fix br in rangeElement * fix rangeElementDescription class for iso-3 (#321) * add contact - external identifiers * Fix Simple HTML and mdJson hash objects rangeElements -> rangeElement * Fix misplaced br tag * make changes based on feedback found in release v2.18.5 branch (#325) * make changes based on feedback found in release v2.18.5 branch * Fix evaluationMethod in mdJson * remove extra argument * Revert Changes * Reorder and Add derivedElementReport * Add Report Fields type standaloneQualityReportDetails * Change dateTime to array * Revert * Add standaloneQualityReportDetails * Add derivedElementReport * add posacc w hori and vert tags. fix key retrieval from qualityMeasure (#327) * Update Gemfile.lock * Dcat us v1/cleanup (#326) * Updated Gemfile to work with tests. Added test documentation. * Added github action to run automated tests * Updated DCAT-US to not use namespace See examples of what DCAT-US and data.gov expect here: https://github.com/GSA/ckanext-datajson/tree/main/ckanext/datajson/tests/datajson-samples * New GitHub Test Action (#328) This merge is not intended to have the tests passing yet, just adding the test action workflow file. * Bugfix/unit tests (#329) * Update Internal Object * Fix Data Quality Order * Fix Data Quality Order * Fixing Legal Constraint Order * Fix Allocation Order * Fix Funding Order * Fix Data Quality Order * Update Data Quality Object * And standaloneQualityReportDetails to mdJson Reader * Fix Order * Fix Standalone Quality Report * Update Version for mdJson-schemas * Add Quality Result File to Coverage Result * Update Gemfile.lock * Update nokogiri * Rename standaloneQualityReport.rb Need to fix naming case. * Fix File Name * Fix Typo * Fix Internal Object resultContent --> resultContentDescription and { } not [ ] * Completed Feature: Coverage Result (#330) * Add Quality Result File to Coverage Result * add resultFile to coverageResult in mdJson reader (#331) * add resultFile to coverageResult in mdJson reader * remove pp lib * revert files * generate resourceFormat file and add to CR. fix metadata object in resultFile * fix internal metadata obj in resultFile * fix qualityResultFile class and reference * revert files * fix relative import * remove writer changes * Remove module_resourceFormat * Injection/md json writer cr (#332) * rename to qualityResultFile * add format and QualityResultFile classes to coverageResult in writer * revert files * add qualityResultFile * Fixed Names fileName was repeated in place of fileDescription and fileType. * Fix Result Content resultContent -> resultContentDescription Uses coverageDescription * Change nil? to empty? --------- Co-authored-by: Johnathan Aspinwall * Injection/html writer cr (#336) * add qualityMeasure to mdJson reader * fix qualityMeasure key * add resultFile class to dataQualityReport html writer * Fix Quality Measure Identifier needs to be built not directly assigned. * Improve Quality Measure Name and description will only be populated if they exist. --------- Co-authored-by: Jonathan Oliveros * Injection/simple html writer cr (#335) * add dataQualityReport and resultFile classes * fix file format comment * reference resultFile class * change details to div * change details to div in dataQualityReport * change module to simple_html. Add nil or empty to citation within identifier. * add simple_html test * Add Coverage Result New class_qualityResultFile for iso19115-3 writer. * Fix Data Quality Report Fixed the order. Fixed quality measure. * Fix Quality Measure * Fix Quality Measure * Fix Evaluation Method * New Conformance Result ISO 19115-3 Writer --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> Co-authored-by: Jonathan Oliveros * Increment Minor Version * Update Version * Revert Changes * Revert Changes * Revert Changes * Revert Changes * Remove nil Check Including the check for nil can actually cause errors. If there is an error then the problem is somewhere else. * Remove nil Check Should not check for nil, if it is nil then there's a problem with the reader. * Revert Changes * change divs to headers (#337) * change divs to headers * fix key within qualityMeasure. change to header tags * Update mdCodes Version * Update Gemfile.lock * Fix Data Quality fgdc reader needed some refactoring. Added/fixed checks for nil/empty. * Fix name -> nameOfMeasure * Increment Patch Version * Fix FGDC Reader quantitativeResult was being set to the qualityMeasure and using the qualityMeasure object. Fixed to use the correct object and location. * Fix Data Quality (#342) * Increment Patch Version * Simple HTML Enhancements (#339) * add geographicExtent to simple_html writer (#338) * add geographicExtent to simple_html writer * Fix Data Quality Fixed checks for nil and empty. Fixed tags. Fixed structures. * Fix Data Quality * Remove bodyScript and other js * Fix Typo referenceDocument -> referenceDocuments --------- Co-authored-by: Johnathan Aspinwall * add bookmark span tags to headers (#340) Co-authored-by: Johnathan Aspinwall * Increment Patch Version * Increment Minor Version --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> * Bugfixes for Simple HTML (#343) * change divs to headers (#337) * change divs to headers * fix key within qualityMeasure. change to header tags * Simple HTML Enhancements (#339) * add geographicExtent to simple_html writer (#338) * add geographicExtent to simple_html writer * Fix Data Quality Fixed checks for nil and empty. Fixed tags. Fixed structures. * Fix Data Quality * Remove bodyScript and other js * Fix Typo referenceDocument -> referenceDocuments --------- Co-authored-by: Johnathan Aspinwall * add bookmark span tags to headers (#340) Co-authored-by: Johnathan Aspinwall * Increment Patch Version * Increment Minor Version --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> * Increment Patch Version * Fix Data Quality * Increment Patch Version * Feature/simple html (#345) * add geographicExtent to simple_html writer (#338) * add geographicExtent to simple_html writer * Fix Data Quality Fixed checks for nil and empty. Fixed tags. Fixed structures. * Fix Data Quality * Remove bodyScript and other js * Fix Typo referenceDocument -> referenceDocuments --------- Co-authored-by: Johnathan Aspinwall * add bookmark span tags to headers (#340) Co-authored-by: Johnathan Aspinwall * Increment Patch Version * Increment Minor Version * Bugfixes for Simple HTML (#343) * change divs to headers (#337) * change divs to headers * fix key within qualityMeasure. change to header tags * Simple HTML Enhancements (#339) * add geographicExtent to simple_html writer (#338) * add geographicExtent to simple_html writer * Fix Data Quality Fixed checks for nil and empty. Fixed tags. Fixed structures. * Fix Data Quality * Remove bodyScript and other js * Fix Typo referenceDocument -> referenceDocuments --------- Co-authored-by: Johnathan Aspinwall * add bookmark span tags to headers (#340) Co-authored-by: Johnathan Aspinwall * Increment Patch Version * Increment Minor Version --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> * Increment Patch Version * Fix Data Quality * Increment Patch Version * simple_html output formatting (#344) --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> * Update mdJson-schemas version mdJson-schemas -> 2.8.3 * Increment Patch Version * Feature/fgdc reader lineage process (#347) * add references to process * redirect citation to processSteps * revert to lineageCitation * Fix newLineage Order dataSources after processSteps * Moving Methodology to Process Steps * Restore hResourceInfo Variable * Commented Keyword - Method Required Warning * Upgrade adiwg-mdjson_schemas adiwg-mdjson_schemas -> 2.9.0 * Update Gemfile.lock * commented out mdJson reader minor version test * Refactor lineage module and process module. Updated tests. * Add comment about test being disabled. * Add comment to explain why code is disabled --------- Co-authored-by: Johnathan Aspinwall * Update mdtranslator version to 2.20.0 * Update ruby/setup-ruby version in test.yml * Update adiwg-mdtranslator and adiwg-mdjson_schemas versions * Update mdtranslator version to 2.21.0 * Update adiwg-mdtranslator gem dependencies * Update adiwg-mdcodes gem dependency to version 2.9.1 * Disable test_mdJson_reader_schema_version_future_minor method * Update mdtranslator version to 2.19.0-beta.6 * Update adiwg-mdcodes gem dependency to version 2.9.1 * Fix data quality report type Remove DQ_ prefix. * Add mapping to accessLevel (#352) * Add mapping to accessLevel * Formatting * Update tests to reflect mapping * remove unnecessary print statement * fix legal and security accessLevel codes in tests * Add test cases for accessLevel. fix array append to accessLevelCodes. * Add language support to DCAT-US writer (#349) * Update accrualPeriodicity field in DCAT-US writer (#350) * Update accrualPeriodicity field in DCAT-US writer * Break out accrualPeriodicity and add mapping * add nil check to frequency * Add primaryITInvestmentUII in DCAT-US writer (#351) * Add primaryITInvestmentUII in DCAT-US writer * add support for primaryITInvestmentUII --------- Co-authored-by: Johnathan Aspinwall * Update mdtranslator version to 2.19.0-beta.7 * Update adiwg-mdjson_schemas and adiwg-mdcodes gem dependencies * Update adiwg-mdjson_schemas and adiwg-mdcodes gem dependencies * Add support to describedByType in DCAT-US writer (#355) * Add AccessURL, DownloadURL, and MediaType modules to DCAT-US writer (#354) * Release Version 2.20.0 (#346) * change divs to headers (#337) * change divs to headers * fix key within qualityMeasure. change to header tags * Simple HTML Enhancements (#339) * add geographicExtent to simple_html writer (#338) * add geographicExtent to simple_html writer * Fix Data Quality Fixed checks for nil and empty. Fixed tags. Fixed structures. * Fix Data Quality * Remove bodyScript and other js * Fix Typo referenceDocument -> referenceDocuments --------- Co-authored-by: Johnathan Aspinwall * add bookmark span tags to headers (#340) Co-authored-by: Johnathan Aspinwall * Increment Patch Version * Increment Minor Version --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> * Feature/simple html (#345) * add geographicExtent to simple_html writer (#338) * add geographicExtent to simple_html writer * Fix Data Quality Fixed checks for nil and empty. Fixed tags. Fixed structures. * Fix Data Quality * Remove bodyScript and other js * Fix Typo referenceDocument -> referenceDocuments --------- Co-authored-by: Johnathan Aspinwall * add bookmark span tags to headers (#340) Co-authored-by: Johnathan Aspinwall * Increment Patch Version * Increment Minor Version * Bugfixes for Simple HTML (#343) * change divs to headers (#337) * change divs to headers * fix key within qualityMeasure. change to header tags * Simple HTML Enhancements (#339) * add geographicExtent to simple_html writer (#338) * add geographicExtent to simple_html writer * Fix Data Quality Fixed checks for nil and empty. Fixed tags. Fixed structures. * Fix Data Quality * Remove bodyScript and other js * Fix Typo referenceDocument -> referenceDocuments --------- Co-authored-by: Johnathan Aspinwall * add bookmark span tags to headers (#340) Co-authored-by: Johnathan Aspinwall * Increment Patch Version * Increment Minor Version --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> * Increment Patch Version * Fix Data Quality * Increment Patch Version * simple_html output formatting (#344) --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> * Feature/fgdc reader lineage process (#347) * add references to process * redirect citation to processSteps * revert to lineageCitation * Fix newLineage Order dataSources after processSteps * Moving Methodology to Process Steps * Restore hResourceInfo Variable * Commented Keyword - Method Required Warning * Upgrade adiwg-mdjson_schemas adiwg-mdjson_schemas -> 2.9.0 * Update Gemfile.lock * commented out mdJson reader minor version test * Refactor lineage module and process module. Updated tests. * Add comment about test being disabled. * Add comment to explain why code is disabled --------- Co-authored-by: Johnathan Aspinwall * Update 19115-3 test data (#334) * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * upate attributeGroup * update 19115_3_citation.xml * update 19115_3_constraintCommon.xml * update 19115_3_constraintCommon.xml and 19115_3_citation.xml * update 19115_3_dataIdentification.xml * update 19115_3_leProcessStep.xml * update 19115_3_maintenance.xml * update 19115_3_mdBand.xml * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update 19115-3 test data * Update remoteSchema URL in class_mdMetadata.rb * Add fix for 19115-3 writer in class_rangeElementDescription and class_sampleDimension * fix unit definition identifiers in test cases * fix attributeGroup test data * Refactor algorithm element to LE_Processing in 19115_3_leProcessStep.xml and 19115_3_processing.xml * Refactor algorithm element to LE_Processing in 19115_3_processing.xml * Remove underscore from id's in iso19115-3 writer tests * Update organization external identifier namespace from ORCID to ROR Remove duplicate external contact identifier in iso19115-3 writer * Update to ROR on feature xml and proper capitalization of multiPoint * Removed partyIdentifier duplicate in expected organization output * Remove duplicate partyIdentifier in expected constraintCommon xml * Fix Spacing * Fix spacing and remove duplicate partyIdentifier in expected constraintCommon xml --------- Co-authored-by: Johnathan Aspinwall Co-authored-by: Jonathan Oliveros * Fix version comparison bug in mdJson_reader.rb (#356) * Fix version comparison bug in mdJson_reader.rb * Fix version comparison logic * Update adiwg-mdtranslator version to 2.20.0-beta.0 * Update adiwg-mdtranslator version to 2.19.0-beta.8 --------- Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> Co-authored-by: Chris MacDermaid <64213093+chris-macdermaid@users.noreply.github.com> Co-authored-by: Jonathan Oliveros * Update adiwg-mdjson_schemas and adiwg-mdcodes gem dependencies * Update adiwg-mdtranslator version to 2.20.0-beta.1 * Update adiwg-mdcodes gem dependency to version 2.9.3.pre.beta.3 * Update adiwg-mdjson_schemas gem dependency to version 2.9.2.pre.beta.19 * Update mdtranslator version to 2.19.0-beta.9 * Update adiwg-mdtranslator version to 2.19.0.pre.beta.9 * Fix data quality report type * Update adiwg-mdtranslator version to 2.19.0.pre.beta.10 * Update adiwg-mdtranslator version to 2.20.0.pre.beta.1 * Fix evaluationMethodType in class_dataQualityReport.rb * Update adiwg-mdtranslator version to 2.20.0-beta.0 * Update adiwg-mdjson_schemas and adiwg-mdcodes gem dependencies to latest versions * Update adiwg-mdtranslator version to 2.19.0.pre.beta.11 * Update adiwg-mdtranslator and adiwg-mdjson_schemas gem dependencies to latest versions * Fix evaluationMethodType in class_dataQualityReport.rb * Fix data quality report type * Update adiwg-mdtranslator version to 2.19.0.pre.beta.13 * Update adiwg-mdtranslator and adiwg-mdjson_schemas gem dependencies to latest versions * Update adiwg-mdtranslator and adiwg-mdjson_schemas gem dependencies to latest versions * Update adiwg-mdtranslator and adiwg-mdjson_schemas gem dependencies to latest versions * Fix data quality report type * Fix data quality report type * Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.15 * chore: Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.15 * Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.16 * Update module files to include 'name' attribute * Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.17 * Add bureauCode class to DCAT writer (#379) * Add bureauCode class to DCAT writer * Update logic in BureauCode. Add ProgramCode class and update references in dcat_us class * chore: Update adiwg-mdtranslator and adiwg-mdjson_schemas gem dependencies to latest versions * Update adiwg-mdtranslator and adiwg-mdjson_schemas gem dependencies to latest versions * Fix data quality report summary display * Refactor data quality report type display * Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.18 * Refactor mdJson_onlineResource module to include 'protocol' attribute * Refactor mdJson_resourceInfo module to include 'credit' attribute * Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.18 * Refactor data quality report type display * chore: Update versions mdJson-schemas to v2.9.3-beta.3 mdCodes to v2.9.4-beta.4 * chore: Increment beta version * Revert Data Quality Report Types * Refactor sbJson_citation.rb 1. If the user provided Other Cit Details, then use that 2. If Other Cit Details is null, then provide a basic citation of: author1, author2, ..., Citation Title * Refactor data quality report type display and add system identifier support * Refactor data quality report logic handling * Refactor data quality reports * Refactor data quality reports * chore: Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.21 * Refactor data quality reports * chore: Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.22 * Refactor XML date format in test data files * Refactor data identification to handle distribution liability statements * chore: Update adiwg-mdtranslator gem dependency to version 2.20.0.pre.beta.4 * chore: Update adiwg-mdtranslator gem dependency to version 2.10.0.pre.beta.3 * chore: Update adiwg-mdtranslator gem dependency to version 2.20.0.pre.beta.5 * chore: Update adiwg-mdtranslator gem dependency to version 2.19.0.pre.beta.25 * chore: Update adiwg-mdtranslator gem dependency to version 2.10.0 * chore: Update adiwg-mdtranslator gem dependency to version 2.21.0.pre.beta.0 * chore: Update adiwg-mdtranslator gem dependency to version 2.20.0.pre.beta.5 * Update adiwg-mdtranslator gem dependency to version 2.19.0 * Add 'Attribute Accuracy Explanation' text in the evaluation method name field for data quality. * Refactor data quality reports to handle multiple results and different report types * Fix altmax to use maximumAltitude * Refactor Positional Accuracy Reports * fix: Unit test for maximum altitude * Refactor unit test for positional accuracy * feat: Add metadata extension section for taxonomy info. * feat: Set conditional for metadata extension taxonomy. * feat: Remove metadata extension for taxonomy information * Fix: Replaced div with h5 as needed * fix: Citation Other Details * Refactor class_timePeriod.rb for improved date handling * chore: Add note to move object out of function * chore: Refactor unit tests to match modifications to dateTime in timePeriod * chore: Update mdtranslator version to 2.19.0-beta.31 * chore: Update adiwg-mdtranslator version to 2.19.0.pre.beta.31 --------- Co-authored-by: Jonathan Oliveros Co-authored-by: J-Oliveros <97468338+J-Oliveros@users.noreply.github.com> Co-authored-by: James Brown Co-authored-by: Chris MacDermaid <64213093+chris-macdermaid@users.noreply.github.com> --- .github/workflows/test.yml | 2 +- DCAT-US.md | 67 + Gemfile.lock | 70 +- README.md | 21 + Rakefile | 1 + lib/adiwg/mdtranslator/version.rb | 2 +- .../writers/dcat_us/dcat_us_writer.rb | 98 + .../mdtranslator/writers/dcat_us/readme.md | 10 + .../dcat_us/sections/dcat_us_access_level.rb | 55 + .../dcat_us/sections/dcat_us_access_url.rb | 17 + .../sections/dcat_us_accrualPeriodicity.rb | 45 + .../dcat_us/sections/dcat_us_bureau_code.rb | 33 + .../dcat_us/sections/dcat_us_contact_point.rb | 29 + .../dcat_us/sections/dcat_us_dcat_us.rb | 104 + .../dcat_us/sections/dcat_us_described_by.rb | 29 + .../sections/dcat_us_described_by_type.rb | 33 + .../dcat_us/sections/dcat_us_description.rb | 19 + .../dcat_us/sections/dcat_us_distribution.rb | 59 + .../dcat_us/sections/dcat_us_download_url.rb | 17 + .../dcat_us/sections/dcat_us_identifier.rb | 29 + .../dcat_us/sections/dcat_us_is_part_of.rb | 27 + .../dcat_us/sections/dcat_us_issued.rb | 19 + .../dcat_us/sections/dcat_us_keyword.rb | 19 + .../dcat_us/sections/dcat_us_landing_page.rb | 27 + .../dcat_us/sections/dcat_us_language.rb | 23 + .../dcat_us/sections/dcat_us_license.rb | 18 + .../dcat_us/sections/dcat_us_media_type.rb | 17 + .../dcat_us/sections/dcat_us_modified.rb | 29 + .../dcat_us_primaryITInvestmentUII.rb | 19 + .../dcat_us/sections/dcat_us_program_code.rb | 33 + .../dcat_us/sections/dcat_us_publisher.rb | 74 + .../dcat_us/sections/dcat_us_references.rb | 50 + .../dcat_us/sections/dcat_us_rights.rb | 32 + .../dcat_us/sections/dcat_us_spatial.rb | 32 + .../sections/dcat_us_system_of_records.rb | 28 + .../dcat_us/sections/dcat_us_temporal.rb | 40 + .../writers/dcat_us/sections/dcat_us_theme.rb | 28 + .../mdtranslator/writers/dcat_us/version.rb | 14 + lib/adiwg/mdtranslator_cli.rb | 2 +- test/translator/tc_mdJson_reader.rb | 56 +- test/writers/dcat_us/dcat_us_test_parent.rb | 57 + .../dcat_us/tc_dcat_us_access_level.rb | 108 + .../dcat_us/tc_dcat_us_contact_point.rb | 24 + .../dcat_us/tc_dcat_us_described_by.rb | 24 + .../writers/dcat_us/tc_dcat_us_description.rb | 22 + .../dcat_us/tc_dcat_us_distribution.rb | 24 + test/writers/dcat_us/tc_dcat_us_identifier.rb | 34 + test/writers/dcat_us/tc_dcat_us_is_part_of.rb | 24 + test/writers/dcat_us/tc_dcat_us_issued.rb | 24 + test/writers/dcat_us/tc_dcat_us_keyword.rb | 24 + .../dcat_us/tc_dcat_us_landing_page.rb | 24 + test/writers/dcat_us/tc_dcat_us_license.rb | 24 + test/writers/dcat_us/tc_dcat_us_modified.rb | 34 + test/writers/dcat_us/tc_dcat_us_publisher.rb | 38 + test/writers/dcat_us/tc_dcat_us_references.rb | 24 + test/writers/dcat_us/tc_dcat_us_rights.rb | 24 + test/writers/dcat_us/tc_dcat_us_spatial.rb | 24 + .../dcat_us/tc_dcat_us_system_of_records.rb | 24 + test/writers/dcat_us/tc_dcat_us_temporal.rb | 24 + test/writers/dcat_us/tc_dcat_us_theme.rb | 24 + test/writers/dcat_us/tc_dcat_us_title.rb | 22 + .../dcat_us/testData/accessLevel_nonPub.json | 1216 +++++++ .../testData/accessLevel_nonPub_legal.json | 1216 +++++++ .../testData/accessLevel_nonPub_security.json | 1216 +++++++ .../dcat_us/testData/accessLevel_pub.json | 1216 +++++++ .../dcat_us/testData/accessLevel_resPub.json | 1215 +++++++ .../testData/accessLevel_resPub_legal.json | 1216 +++++++ .../testData/accessLevel_resPub_security.json | 1215 +++++++ .../dcat_us/testData/contactPoint.json | 1108 ++++++ .../writers/dcat_us/testData/describedBy.json | 1175 +++++++ .../writers/dcat_us/testData/description.json | 141 + .../dcat_us/testData/distribution.json | 3044 +++++++++++++++++ test/writers/dcat_us/testData/identifier.json | 93 + .../writers/dcat_us/testData/identifier2.json | 93 + test/writers/dcat_us/testData/isPartOf.json | 2461 +++++++++++++ test/writers/dcat_us/testData/issued.json | 1108 ++++++ test/writers/dcat_us/testData/keyword.json | 254 ++ .../writers/dcat_us/testData/landingPage.json | 1107 ++++++ test/writers/dcat_us/testData/license.json | 1217 +++++++ test/writers/dcat_us/testData/modified.json | 368 ++ test/writers/dcat_us/testData/modified2.json | 376 ++ test/writers/dcat_us/testData/publisher.json | 177 + test/writers/dcat_us/testData/publisher2.json | 413 +++ test/writers/dcat_us/testData/references.json | 1231 +++++++ test/writers/dcat_us/testData/rights.json | 1216 +++++++ test/writers/dcat_us/testData/spatial.json | 3044 +++++++++++++++++ .../dcat_us/testData/systemOfRecords.json | 1156 +++++++ test/writers/dcat_us/testData/temporal.json | 1495 ++++++++ test/writers/dcat_us/testData/theme.json | 1205 +++++++ test/writers/dcat_us/testData/title.json | 61 + 90 files changed, 32973 insertions(+), 58 deletions(-) create mode 100644 DCAT-US.md create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/dcat_us_writer.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/readme.md create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_access_level.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_access_url.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_accrualPeriodicity.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_bureau_code.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_contact_point.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_dcat_us.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_described_by.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_described_by_type.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_description.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_distribution.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_download_url.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_identifier.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_is_part_of.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_issued.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_keyword.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_landing_page.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_language.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_license.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_media_type.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_modified.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_primaryITInvestmentUII.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_program_code.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_publisher.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_references.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_rights.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_spatial.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_system_of_records.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_temporal.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_theme.rb create mode 100644 lib/adiwg/mdtranslator/writers/dcat_us/version.rb create mode 100644 test/writers/dcat_us/dcat_us_test_parent.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_access_level.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_contact_point.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_described_by.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_description.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_distribution.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_identifier.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_is_part_of.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_issued.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_keyword.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_landing_page.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_license.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_modified.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_publisher.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_references.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_rights.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_spatial.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_system_of_records.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_temporal.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_theme.rb create mode 100644 test/writers/dcat_us/tc_dcat_us_title.rb create mode 100644 test/writers/dcat_us/testData/accessLevel_nonPub.json create mode 100644 test/writers/dcat_us/testData/accessLevel_nonPub_legal.json create mode 100644 test/writers/dcat_us/testData/accessLevel_nonPub_security.json create mode 100644 test/writers/dcat_us/testData/accessLevel_pub.json create mode 100644 test/writers/dcat_us/testData/accessLevel_resPub.json create mode 100644 test/writers/dcat_us/testData/accessLevel_resPub_legal.json create mode 100644 test/writers/dcat_us/testData/accessLevel_resPub_security.json create mode 100644 test/writers/dcat_us/testData/contactPoint.json create mode 100644 test/writers/dcat_us/testData/describedBy.json create mode 100644 test/writers/dcat_us/testData/description.json create mode 100644 test/writers/dcat_us/testData/distribution.json create mode 100644 test/writers/dcat_us/testData/identifier.json create mode 100644 test/writers/dcat_us/testData/identifier2.json create mode 100644 test/writers/dcat_us/testData/isPartOf.json create mode 100644 test/writers/dcat_us/testData/issued.json create mode 100644 test/writers/dcat_us/testData/keyword.json create mode 100644 test/writers/dcat_us/testData/landingPage.json create mode 100644 test/writers/dcat_us/testData/license.json create mode 100644 test/writers/dcat_us/testData/modified.json create mode 100644 test/writers/dcat_us/testData/modified2.json create mode 100644 test/writers/dcat_us/testData/publisher.json create mode 100644 test/writers/dcat_us/testData/publisher2.json create mode 100644 test/writers/dcat_us/testData/references.json create mode 100644 test/writers/dcat_us/testData/rights.json create mode 100644 test/writers/dcat_us/testData/spatial.json create mode 100644 test/writers/dcat_us/testData/systemOfRecords.json create mode 100644 test/writers/dcat_us/testData/temporal.json create mode 100644 test/writers/dcat_us/testData/theme.json create mode 100644 test/writers/dcat_us/testData/title.json diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bdf6b3859..f505da35a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1 + - uses: ruby/setup-ruby@v1 with: ruby-version: "3.1" # Not needed with a .ruby-version file - run: bundle install diff --git a/DCAT-US.md b/DCAT-US.md new file mode 100644 index 000000000..d32b114de --- /dev/null +++ b/DCAT-US.md @@ -0,0 +1,67 @@ +# DCAT-US - mdTranslator proposed mappings +## Quick references + - DCAT-US [element definitions](https://resources.data.gov/resources/dcat-us/) + - DCAT-US v1.1 [catalog.json schema](https://resources.data.gov/schemas/dcat-us/v1.1/schema/catalog.json) + - DCAT-US v1.1 [dataset.json schema](https://resources.data.gov/schemas/dcat-us/v1.1/schema/dataset.json) + - DCAT-US v1.1 [JSON-LD catalog.json schema](https://resources.data.gov/schemas/dcat-us/v1.1/schema/catalog.jsonld) + - [Element crosswalks](https://resources.data.gov/resources/podm-field-mapping/#field-mappings) to other standards + +## DCAT-US - mdTranslator + +### Always (always required) + +| Field Name | DCAT Name | Condition | mdJson Source | +| --- | --- | --- | --- | +| Title | title | exists | citation.title | +| Description | description | exists | resourceInfo.abstract | +| Tags | keyword | exists | [resourceInfo.keyword.keyword[0, n] *flatten*] | +| Last Update | modified | if resourceInfo.citation.date[any].dateType = "lastUpdated" or "lastRevised" or "revision" | resourceInfo.citation.date[most recent] | +| Publisher | publisher{name} | if citation.responsibleParty.[any].role = "publisher" | contactId -> contact.name where isOrganization IS TRUE | +| | | if exists resourceDistribution.distributor.contact | [first contact] contactId -> contact.name where isOrganization IS TRUE | +| Publisher Parent Organization | publisher{subOrganizationOf} | if citation.responsibleParty[any].role = "publisher" and exists contactId -> memberOfOrganization[0] and isOrganization is true | contactId -> contact.name | +| | | if exists resourceDistribution.distributor.contact and exists contactId -> memberOfOrganization[0] and isOrganization IS TRUE | contactId -> contact.name | +| Contact Name | contactPoint{fn} | exists | resourceInfo.pointOfContact.parties[0].contactId -> contact.name | +| Contact Email | contactPoint{email} | exists | resourceInfo.pointOfContact.parties[0].contactId -> contact.eMailList[0] | +| Unique Identifier | identifier | if resourceInfo.citation.identifier.namespace = "DOI" | resourceInfo.citation.onlineResource.uri | +| | | if "DOI" within resourceInfo.citation.onlineResource.uri | resourceInfo.citation.onlineResource.uri | +| Public Access Level | accessLevel | [*extend codelist MD_RestrictionCode to include "public", "restricted public", "non-public"*]
if resourceInfo.constraints.legal[any] one of {"public", "restricted public", "non-public"} | resourceInfo.constraints.legal[first]. Also resourceInfo.constraint.security.classification [[MD_ClassificationCode](https://mdtools.adiwg.org/#codes-page?c=iso_classification)] | +| Bureau Code | bureauCode | | [*extend role codelist to include "bureau", extend namespace codelist to include "bureauCode"*]
for each resourceInfo.citation.responsibleParty[any] role = "bureau"
contactId -> contact.identifier [*identifier must conform to https://resources.data.gov/schemas/dcat-us/v1.1/omb_bureau_codes.csv*] | +| Program Code | programCode | | [*add new element of program resourceInfo.programCode, add new codelist of programCode*]
resourceInfo.program[0,n] | + +### If-Applicable (required if it exists) + +| Field Name | DCAT Name | Condition | mdJson Source | +| --- | --- | --- | --- | +| Distribution | distribution | if exists resourceDistribution[any] and if exists resourceDistribution.distributor[any].transferOption[any].onlineOption[any].uri
for each resourceDistribution[0, n] where exists resourceDistribution.distributor.transferOption.onlineOption.uri then
{description, accessURL, downloadURL, mediaType, title} | +| - Description | distribution.description | exists | resourceDistribution.description | +| - AccessURL | distribution.accessURL | if citation.onlineResources[first occurence].uri [path ends in ".html"] [*required if applicable*] | resourceDistribution.distributor.transferOption.onlineOption.uri | +| - DownloadURL | dcat.distribution.downloadURL | if citation.onlineResources[first occurence].uri [path does not end in ".html"] [*required if applicable*] |resourceDistribution.distributor.transferOption.onlineOption.uri | +| - MediaType | distribution.mediaType | [*add codelist of "dataFormat"*]
transferOption.distributionFormat.formatSpecification.title [dataFormat] [*dataFormat should conform to: https://www.iana.org/assignments/media-types/media-types.xhtml*] | +| - Title | distribution.title | exists | resourceDistribution.distributor.transferOption.onlineOption.name | +| License | license | [*add resourceInfo.constraint.reference to mdEditor*]
if exists resourceInfo.constraint.reference[0] | resourceInfo.constraint.reference[0]
| +| | | else | https://creativecommons.org/publicdomain/zero/1.0/
[*allows author to identify a license to use, or default to CC0 if none provided, CC0 would cover international usage as opposed to publicdomain*]
[*others: http://www.usa.gov/publicdomain/label/1.0/, http://opendatacommons.org/licenses/pddl/1.0*] | +| Rights | rights | if constraint.accessLevel in {"restricted public", "non-public"} | resourceInfo.constraint.releasibility.statement + " " + each constraint.releasibility.dessiminationConstraint[0, n] | +| Endpoint | *removed* | *ignored* | *ignored* | +| Spatial | spatial | if exists resourceInfo.extents[0].geographicExtents[0].boundingBox | boundingBox.eastLongitude + "," + boundingBox.southLatitude + "," + boundingBox.westLongitude + "," + boundingBox.northLatitude [*decimal degrees*] | +| | | else | if exists resourceInfo.extents[0].geographicExtents[0].geographicElement[0].type = "point" then
geographicElement[0].coordinate[1] + "," + geographicElement[0].coordinate[0] [*lat, long decimal degrees*] | +| Temporal | temporal | if exists resourceInfo.extent[0].temporalExtent[0] then
if exists tempororalExtent[0].timePeriod.startDate and exists temporaralExtent[0].timePeriod.endDate | timePeriod[0].startDate + "/" + timePeriod.endDate | +| | | if exists tempororalExtent[0].timePeriod.startDate and not exists temporaralExtent[0].timePeriod.endDate | tempororalExtent[0].timePeriod.startDate | +| | | if not exists temporalExtent[0].timePeriod.startDate and exists temporaralExtent[0].timePeriod.endDate | tempororalExtent[0].timePeriod.endDate
[*may need revisiting relative to decision on date only formatting*] | + +### No (not required) + +| Field Name | DCAT Name | Condition | mdJson Source | +| --- | --- | --- | --- | +| Release Date | issued | if resourceInfo.citation.date[any].dateType = "publication" or "distributed" | resourceInfo.citation.date[earliest] | +| Frequency | accrualPeriodicity | | [*ISO codelist MD_maintenanceFrequency can be used and several codes intersect with accrualPeriod codelist they are partially corresponding. A column of ISO8601 code equivalents could be added to MD_maintenanceFrequency to provide the coding expected https://resources.data.gov/schemas/dcat-us/v1.1/iso8601_guidance/#accrualperiodicity, community valuation should be determined*] | +| Language | language | | [*language codelist could be used but needs to be bound with country corresponding to the RFC 5646 format https://datatracker.ietf.org/doc/html/rfc5646, such as "en-US", community valuation should be determined* | +| Data Quality | dataQuality | | [*this is a boolean to indicate whether data "conforms" to agency standards, value seems negligble*] | +| Category | theme | where resourceInfo.keyword[any].thesaurus.title = "ISO Topic Category" | [resourceInfo.keyword.keyword[0, n] *flatten*] | +| Related Documents | references | | associatedResource[all].resourceCitation.onlineResource[all].uri + additionalDocumentation[all].citation[all].onlineResource[all].uri [*comma separated*]| +| Homepage URL | landingPage | [*Add code "landingPage" to CI_OnlineFunctionCode*]
if resourceInfo.citation.onlineResource[any].function = "landingPage" | resourceInfo.citation.onlineResource.uri | +| Collection | isPartOf | for each associatedResource[0, n].initiativeType = "collection" and associatedResource.associationType = "collectiveTitle" | associatedResource.resourceCitation[0].uri | +| System of Records | systemOfRecords | [*Add code "sorn" to DS_InitiativeTypeCode*]
for each associatedResource[0, n].initiativeType = "sorn" | associatedResource.resourceCitation[0].uri | +| Primary IT Investment | primaryITInvestmentUII | | [*Links data to an IT investment identifier relative to Exhibit 53 docs, community valuation should be determined*] | +| Data Dictionary | describedBy | if dataDictionary.dictionaryIncludedWithResource IS NOT TRUE and citation.onlineResource[0].uri exists | dataDictionary.citation.onlineResource[0].uri | +| Data Dictionary Type | describedByType | | [*For simplicity, leave blank implying html page, community decision needed whether to support other format types using mime type and in the form of "application/pdf"*]| +| Data Standard | conformsTo | | [*Currently not able to identify the schema standard the data conforms to, though this has been proposed. Should this be built and there is community decision to support it, then it can be mapped*] | diff --git a/Gemfile.lock b/Gemfile.lock index 18376d4f0..670eaa0f7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - adiwg-mdtranslator (2.19.0.pre.beta.31) + adiwg-mdtranslator (2.20.0.pre.beta.5) adiwg-mdcodes (= 2.10.0) adiwg-mdjson_schemas (= 2.9.5) builder (~> 3.2) @@ -11,65 +11,79 @@ PATH json-schema (~> 2.7) kramdown (>= 1.13, < 3.0) nokogiri (~> 1.15) + nokogiri (~> 1.15) thor (~> 0.19) uuidtools (~> 2.1) GEM remote: https://rubygems.org/ specs: - actionview (5.2.8.1) - activesupport (= 5.2.8.1) + actionview (7.1.3.3) + activesupport (= 7.1.3.3) builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.3) - activesupport (5.2.8.1) + erubi (~> 1.11) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + activesupport (7.1.3.3) + base64 + bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - addressable (2.8.5) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + minitest (>= 5.1) + mutex_m + tzinfo (~> 2.0) + addressable (2.8.6) public_suffix (>= 2.0.2, < 6.0) + adiwg-mdcodes (2.10.0) adiwg-mdcodes (2.10.0) json (~> 2.0) adiwg-mdjson_schemas (2.9.5) + base64 (0.2.0) + bigdecimal (3.1.8) builder (3.2.4) coderay (1.1.3) - concurrent-ruby (1.2.2) + concurrent-ruby (1.2.3) + connection_pool (2.4.1) crass (1.0.6) + drb (2.2.1) erubi (1.12.0) - i18n (1.14.1) + i18n (1.14.5) concurrent-ruby (~> 1.0) - jbuilder (2.11.5) + jbuilder (2.12.0) actionview (>= 5.0.0) activesupport (>= 5.0.0) - json (2.6.3) + json (2.7.2) json-schema (2.8.1) addressable (>= 2.4) kramdown (2.4.0) rexml - loofah (2.21.1) + loofah (2.22.0) crass (~> 1.0.2) - nokogiri (>= 1.5.9) + nokogiri (>= 1.12.0) minitest (5.20.0) - nokogiri (1.15.5-arm64-darwin) + mutex_m (0.2.0) + nokogiri (1.15.6-arm64-darwin) racc (~> 1.4) - nokogiri (1.15.5-x86_64-linux) + nokogiri (1.15.6-x86_64-linux) racc (~> 1.4) - public_suffix (4.0.7) - racc (1.7.3) - rails-dom-testing (2.1.1) + public_suffix (5.0.5) + racc (1.8.0) + rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest nokogiri (>= 1.6) - rails-html-sanitizer (1.5.0) - loofah (~> 2.19, >= 2.19.1) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) rake (13.1.0) - rexml (3.2.5) + rexml (3.2.8) + strscan (>= 3.0.9) + strscan (3.1.0) thor (0.20.3) - thread_safe (0.3.6) - tzinfo (1.2.11) - thread_safe (~> 0.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) uuidtools (2.2.0) PLATFORMS diff --git a/README.md b/README.md index 6c93987ef..be516a21f 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,27 @@ Or install it yourself as: $ mdtranslator help translate +## Development + +### Requirements + +Requires +- [Ruby](https://www.ruby-lang.org/en/documentation/installation/) +- bundler (`gem install bundler`) +- rake (`gem install rake`) + +### Tests + +In order to run the tests, first install the dependencies + + $ bundle install + +Then, run the rake command + + $ bundle exec rake + +_TODO: There are currently 4 tests that are not passing, related to mdJSON readers and writers_ + ## Contributing 1. Fork it ( https://github.com/[my-github-username]/mdTranslator/fork ) diff --git a/Rakefile b/Rakefile index f8facaed2..c64e64391 100644 --- a/Rakefile +++ b/Rakefile @@ -23,6 +23,7 @@ Rake::TestTask.new do |t| 'test/writers/iso19115-3/tc*.rb', 'test/writers/mdJson/tc*.rb', 'test/writers/sbJson/tc*.rb', + 'test/writers/dcat_us/tc*.rb', 'test/translator/tc*.rb' ] t.verbose = true diff --git a/lib/adiwg/mdtranslator/version.rb b/lib/adiwg/mdtranslator/version.rb index f46ed542d..e7b95e780 100644 --- a/lib/adiwg/mdtranslator/version.rb +++ b/lib/adiwg/mdtranslator/version.rb @@ -109,7 +109,7 @@ module ADIWG module Mdtranslator # current mdtranslator version - VERSION = "2.19.0-beta.31" + VERSION = "2.20.0-beta.5" end end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/dcat_us_writer.rb b/lib/adiwg/mdtranslator/writers/dcat_us/dcat_us_writer.rb new file mode 100644 index 000000000..ae96bad09 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/dcat_us_writer.rb @@ -0,0 +1,98 @@ +require 'jbuilder' +require_relative 'version' +require_relative 'sections/dcat_us_dcat_us' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + + def self.startWriter(intObj, responseObj) + # set the contact array for use by the writer + @contacts = intObj[:contacts] + + # set output flag for null properties + Jbuilder.ignore_nil(!responseObj[:writerShowTags]) + + # set the format of the output file based on the writer specified + responseObj[:writerOutputFormat] = 'json' + responseObj[:writerVersion] = ADIWG::Mdtranslator::Writers::Dcat_us::VERSION + + # write the dcat_us metadata record + metadata = Dcat_us.build(intObj, responseObj) + + # set writer pass to true if no messages + # false or warning state will be set by writer code + responseObj[:writerPass] = true if responseObj[:writerMessages].empty? + + # encode the metadata target as JSON + metadata.target! + end + + # find contact in contact array and return the contact hash + def self.get_contact_by_index(contactIndex) + if @contacts[contactIndex] + return @contacts[contactIndex] + end + {} + end + + # find contact in contact array and return the contact hash + def self.get_contact_by_id(contactId) + @contacts.each do |hContact| + if hContact[:contactId] == contactId + return hContact + end + end + {} + end + + # find contact in contact array and return the contact index + def self.get_contact_index_by_id(contactId) + @contacts.each_with_index do |hContact, index| + if hContact[:contactId] == contactId + return index + end + end + {} + end + + # ignore jBuilder object mapping when array is empty + def self.json_map(collection = [], _class) + if collection.nil? || collection.empty? + return nil + else + collection.map { |item| _class.build(item).attributes! } + end + end + + # find all nested objects in 'obj' that contain the element 'ele' + def self.nested_objs_by_element(obj, ele, excludeList = []) + aCollected = [] + obj.each do |key, value| + skipThisOne = false + excludeList.each do |exclude| + if key == exclude.to_sym + skipThisOne = true + end + end + next if skipThisOne + if key == ele.to_sym + aCollected << obj + elsif obj.is_a?(Array) + if key.respond_to?(:each) + aReturn = nested_objs_by_element(key, ele, excludeList) + aCollected = aCollected.concat(aReturn) unless aReturn.empty? + end + elsif obj[key].respond_to?(:each) + aReturn = nested_objs_by_element(value, ele, excludeList) + aCollected = aCollected.concat(aReturn) unless aReturn.empty? + end + end + aCollected + end + + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/readme.md b/lib/adiwg/mdtranslator/writers/dcat_us/readme.md new file mode 100644 index 000000000..7642647a0 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/readme.md @@ -0,0 +1,10 @@ + +## dcat_us + +### Supported versions + +> 0.0.x (dcat_us is not currently versioned) + +### Writer for Data Catalog Vocabulary (DCAT) v1.1 + + diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_access_level.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_access_level.rb new file mode 100644 index 000000000..9fd016285 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_access_level.rb @@ -0,0 +1,55 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module AccessLevel + + def self.build(intObj) + + publicArray = ['unclassified', 'unrestricted', 'licenseUnrestricted', 'licenseEndUser'] + nonPublicArray = ['restricted','confidential','secret','topSecret','forOfficialUseOnly','protected','intellectualPropertyRights','restricted','otherRestrictions','private','statutory','confidential','traditionalKnowledge','personallyIdentifiableInformation'] + restrictedPublicArray = ['sensitiveButUnclassified','limitedDistribution','copyright','patent','patentPending','trademark','license','licenseDistributor','in-confidence','threatenedOrEndangered'] + + resourceInfo = intObj[:metadata][:resourceInfo] + legalConstraints = resourceInfo[:constraints]&.select { |constraint| constraint[:type] == 'legal' } + securityConstraints = resourceInfo[:constraints]&.select { |constraint| constraint[:type] == 'security' } + + accessLevelCodes = [] + + # Gather codes from security constraints and legal constraints + unless securityConstraints.empty? + securityConstraints.each do |securityConstraint| + code = securityConstraint[:securityConstraint][:classCode] + accessLevelCodes << code + end + end + unless legalConstraints.empty? + legalConstraints.each do |legalConstraint| + codes = legalConstraint.dig(:legalConstraint, :accessCodes) + accessLevelCodes.push(*codes) + end + end + + # return access level that is most restrictive + accessLevelCodes.uniq.each do |code| + if nonPublicArray.include? code + return 'non-public' + end + end + accessLevelCodes.uniq.each do |code| + if restrictedPublicArray.include? code + return 'restricted public' + end + end + + return 'public' + end + + end + end + end + end +end + diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_access_url.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_access_url.rb new file mode 100644 index 000000000..be337d844 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_access_url.rb @@ -0,0 +1,17 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module AccessURL + + def self.build(option) + option[:olResURI] if option[:olResURI].end_with?('.html') + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_accrualPeriodicity.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_accrualPeriodicity.rb new file mode 100644 index 000000000..1e4bbff5a --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_accrualPeriodicity.rb @@ -0,0 +1,45 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module AccrualPeriodicity + + def self.build(intObj) + + frequency_mapping = { + 'decennial' => 'R/P10Y', + 'quadrennial' => 'R/P4Y', + 'annual' => 'R/P1Y', + 'bimonthly' => 'R/P2M or R/P0.5M', + 'semiweekly' => 'R/P3.5D', + 'daily' => 'R/P1D', + 'biweekly' => 'R/P2W or R/P0.5W', + 'semiannual' => 'R/P6M', + 'biennial' => 'R/P2Y', + 'triennial' => 'R/P3Y', + 'three times a week' => 'R/P0.33W', + 'three times a month' => 'R/P0.33M', + 'continuously updated' => 'R/PT1S', + 'monthly' => 'R/P1M', + 'quarterly' => 'R/P3M', + 'semimonthly' => 'R/P0.5M', + 'three times a year' => 'R/P4M', + 'weekly' => 'R/P1W', + 'hourly' => 'R/PT1H' + } + + frequency = intObj[:metadata][:metadataInfo][:metadataMaintenance][:frequency] + + unless frequency.nil? + frequency_code = frequency_mapping[frequency.downcase] + end + return frequency_code + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_bureau_code.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_bureau_code.rb new file mode 100644 index 000000000..ecf93a3d8 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_bureau_code.rb @@ -0,0 +1,33 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module BureauCode + + def self.build(intObj) + + responsibleParties = intObj[:metadata][:resourceInfo][:citation][:responsibleParties] + contacts = [] + responsibleParties.each do |party| + contactId = party[:parties][0][:contactId] + contacts << Dcat_us.get_contact_by_id(contactId) + end + + bureauContacts = contacts&.select { |contact| contact[:externalIdentifier].any? { |id| id[:namespace] == 'bureauCode'} } + + bureauCodes = [] + bureauContacts.each do |contact| + bureauCode = contact[:externalIdentifier].find { |id| id[:namespace] == 'bureauCode' } + bureauCodes << bureauCode[:identifier] + end + + return bureauCodes + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_contact_point.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_contact_point.rb new file mode 100644 index 000000000..cdd091432 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_contact_point.rb @@ -0,0 +1,29 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module ContactPoint + + def self.build(intObj) + resourceInfo = intObj[:metadata][:resourceInfo] + pointOfContact = resourceInfo[:pointOfContacts][0] + contactId = pointOfContact[:parties][0][:contactId] + + contact = Dcat_us.get_contact_by_id(contactId) + fn = contact[:name] + hasEmail = contact[:eMailList][0] + + Jbuilder.new do |json| + json.set!('@type', 'vcard:Contact') + json.set!('fn', fn) + json.set!('hasEmail', hasEmail) + end + + end + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_dcat_us.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_dcat_us.rb new file mode 100644 index 000000000..1490d396d --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_dcat_us.rb @@ -0,0 +1,104 @@ +require 'jbuilder' +require_relative 'dcat_us_keyword' +require_relative 'dcat_us_publisher' +require_relative 'dcat_us_contact_point' +require_relative 'dcat_us_identifier' +require_relative 'dcat_us_distribution' +require_relative 'dcat_us_spatial' +require_relative 'dcat_us_temporal' +require_relative 'dcat_us_modified' +require_relative 'dcat_us_access_level' +require_relative 'dcat_us_rights' +require_relative 'dcat_us_license' +require_relative 'dcat_us_issued' +require_relative 'dcat_us_described_by' +require_relative 'dcat_us_is_part_of' +require_relative 'dcat_us_theme' +require_relative 'dcat_us_references' +require_relative 'dcat_us_landing_page' +require_relative 'dcat_us_system_of_records' +require_relative 'dcat_us_description' +require_relative 'dcat_us_described_by_type' +require_relative 'dcat_us_accrualPeriodicity' +require_relative 'dcat_us_language' +require_relative 'dcat_us_primaryITInvestmentUII' +require_relative 'dcat_us_program_code' +require_relative 'dcat_us_bureau_code' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + + def self.build(intObj, responseObj) + metadataInfo = intObj[:metadata][:metadataInfo] + resourceInfo = intObj[:metadata][:resourceInfo] + citation = resourceInfo[:citation] + + title = citation[:title] + description = Description.build(intObj) + keyword = Keyword.build(intObj) + modified = Modified.build(intObj) + publisher = Publisher.build(intObj) + contactPoint = ContactPoint.build(intObj) + accessLevel = AccessLevel.build(intObj) + identifier = Identifier.build(intObj) + distribution = Distribution.build(intObj) + rights = Rights.build(intObj, accessLevel) + spatial = Spatial.build(intObj) + temporal = Temporal.build(intObj) + license = License.build(intObj) + issued = Issued.build(intObj) + language = Language.build(intObj) + describedBy = DescribedBy.build(intObj) + isPartOf = IsPartOf.build(intObj) + theme = Theme.build(intObj) + references = References.build(intObj) + landingPage = LandingPage.build(intObj) + systemOfRecords = SystemOfRecords.build(intObj) + describedByType = DescribedByType.build(intObj) + accrualPeriodicity = AccrualPeriodicity.build(intObj) + primaryITInvestmentUII = PrimaryITInvestmentUII.build(intObj) + programCode = ProgramCode.build(intObj) + bureauCode = BureauCode.build(intObj) + + @Namespace = ADIWG::Mdtranslator::Writers::Dcat_us + + Jbuilder.new do |json| + json.set!('@type', 'dcat:Dataset') + json.set!('title', title) + json.set!('description', description) + json.set!('keyword', keyword) + json.set!('modified', modified) + json.set!('publisher', publisher) + json.set!('contactPoint', contactPoint) + json.set!('identifier', identifier) + json.set!('accessLevel', accessLevel) + json.set!('bureauCode', bureauCode) + json.set!('programCode', programCode) + json.set!('distribution', distribution) + + json.set!('license', license) + json.set!('rights', rights) + json.set!('spatial', spatial) + json.set!('temporal', temporal) + + json.set!('issued', issued) + json.set!('accrualPeriodicity', accrualPeriodicity) + json.set!('language', language) + # json.set!('dataQuality', metadataInfo[:metadataMaintenance][:maintenanceNote]) + json.set!('theme', theme) + json.set!('references', references) + json.set!('landingPage', landingPage) + json.set!('isPartOf', isPartOf) + json.set!('systemOfRecords', systemOfRecords) + json.set!('primaryITInvestmentUII', primaryITInvestmentUII) + json.set!('describedBy', describedBy) + json.set!('describedByType', describedByType) + # json.set!('conformsTo', metadataInfo[:metadataStandards][0][:standardName]) + end + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_described_by.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_described_by.rb new file mode 100644 index 000000000..cc2182e04 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_described_by.rb @@ -0,0 +1,29 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module DescribedBy + + def self.build(intObj) + dataDictionaries = intObj[:dataDictionaries] + dataDictionaries.each do |dataDictionary| + unless dataDictionary[:includedWithDataset] + onlineResources = dataDictionary[:citation][:onlineResources] + onlineResources.each do |resource| + if resource[:olResURI] + return resource[:olResURI] + end + end + end + end + + nil + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_described_by_type.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_described_by_type.rb new file mode 100644 index 000000000..d6307601b --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_described_by_type.rb @@ -0,0 +1,33 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module DescribedByType + + def self.build(intObj) + + # metadataInfo[:metadataOnlineOptions][0][:olResProtocol] + dataDictionaries = intObj[:dataDictionaries] + describedByType = '' + dataDictionaries.each do |dataDictionary| + unless dataDictionary[:includedWithDataset] + onlineResources = dataDictionary[:citation][:onlineResources] + onlineResources.each do |resource| + if resource[:olResURI] && !resource[:olResURI].end_with?('.html') + describedByType = resource[:olResProtocol] + break + end + end + end + end + + describedByType + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_description.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_description.rb new file mode 100644 index 000000000..273ddeb44 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_description.rb @@ -0,0 +1,19 @@ +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module Description + + def self.build(intObj) + resourceInfo = intObj.dig(:metadata, :resourceInfo) + description = resourceInfo&.dig(:abstract) + + return nil unless description + end + + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_distribution.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_distribution.rb new file mode 100644 index 000000000..602204046 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_distribution.rb @@ -0,0 +1,59 @@ +require 'jbuilder' +require_relative 'dcat_us_access_url' +require_relative 'dcat_us_download_url' +require_relative 'dcat_us_media_type' + + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module Distribution + + def self.build(intObj) + + resourceDistributions = intObj.dig(:metadata, :distributorInfo) + distributions = [] + + resourceDistributions&.each do |resource| + description = resource[:description] || '' + break_flag = false # Flag to control nested loop breaks + + resource[:distributor]&.each do |distributor| + break if break_flag + + distributor[:transferOptions]&.each do |transfer| + break if break_flag + + mediaType = MediaType.build(transfer) + + transfer[:onlineOptions]&.each do |option| + next unless option[:olResURI] + accessURL = AccessURL.build(option) + downloadURL = DownloadURL.build(option) + title = option[:olResName] || '' + + distribution = Jbuilder.new do |json| + json.set!('@type', 'dcat:Distribution') + json.set!('description', description) + json.set!('accessURL', accessURL) if accessURL + json.set!('downloadURL', downloadURL) if downloadURL + json.set!('mediaType', mediaType) + json.set!('title', title) + end + + distributions << distribution.attributes! + break_flag = true + break + end + end + end + end + distributions + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_download_url.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_download_url.rb new file mode 100644 index 000000000..214080992 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_download_url.rb @@ -0,0 +1,17 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module DownloadURL + + def self.build(option) + option[:olResURI] unless option[:olResURI].end_with?('.html') + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_identifier.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_identifier.rb new file mode 100644 index 000000000..f324801c2 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_identifier.rb @@ -0,0 +1,29 @@ +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module Identifier + + def self.build(intObj) + citation = intObj.dig(:metadata, :resourceInfo, :citation) + identifiers = citation&.dig(:identifiers) + onlineResources = citation&.dig(:onlineResources) + uri = onlineResources.dig(0, :olResURI) + + namespace_is_doi = identifiers&.any? { |identifier| identifier[:namespace]&.casecmp?("DOI") } + + if namespace_is_doi + return uri + elsif uri && uri.downcase.include?("doi") + return uri + end + + nil + end + + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_is_part_of.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_is_part_of.rb new file mode 100644 index 000000000..c0986fd06 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_is_part_of.rb @@ -0,0 +1,27 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module IsPartOf + + def self.build(intObj) + associatedResources = intObj.dig(:metadata, :associatedResources) + + associatedResources.each do |resource| + next unless resource[:initiativeType] == "collection" && resource[:associationType] == "collectiveTitle" + + onlineResources = resource.dig(:resourceCitation, :onlineResources) || [] + uri = onlineResources.find { |onlineResource| onlineResource[:olResURI] }&.dig(:olResURI) + return uri if uri + end + + nil + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_issued.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_issued.rb new file mode 100644 index 000000000..d32f2e47c --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_issued.rb @@ -0,0 +1,19 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module Issued + + def self.build(intObj) + dates = intObj[:metadata][:resourceInfo][:citation][:dates].map { |obj| obj[:date] } + earliest_date = dates.min + return earliest_date + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_keyword.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_keyword.rb new file mode 100644 index 000000000..d301d96a2 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_keyword.rb @@ -0,0 +1,19 @@ +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module Keyword + + def self.build(intObj) + resourceInfo = intObj.dig(:metadata, :resourceInfo) + keywords = resourceInfo&.dig(:keywords) + + return keywords&.flat_map { |keyword| keyword[:keywords]&.map { |kw| kw[:keyword] } } || [] + end + + end + end + end + end +end + \ No newline at end of file diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_landing_page.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_landing_page.rb new file mode 100644 index 000000000..df573b85d --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_landing_page.rb @@ -0,0 +1,27 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module LandingPage + + def self.build(intObj) + onlineResources = intObj.dig(:metadata, :resourceInfo, :citation, :onlineResources) + + if onlineResources + onlineResources.each do |resource| + if resource.dig(:olResFunction) == 'landingPage' + return resource.dig(:olResURI) + end + end + end + + return nil + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_language.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_language.rb new file mode 100644 index 000000000..4a7df7942 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_language.rb @@ -0,0 +1,23 @@ +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module Language + + def self.build(intObj) + metadataInfo = intObj.dig(:metadata, :metadataInfo) + defaultLanguage = metadataInfo&.dig(:defaultMetadataLocale, :languageCode) + additionalLanguage = metadataInfo&.dig(:otherMetadataLocales) + languages = [] + languages << defaultLanguage if defaultLanguage + additionalLanguage.each { |lang| languages << lang[:languageCode] } if additionalLanguage + + return languages + end + + end + end + end + end +end + \ No newline at end of file diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_license.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_license.rb new file mode 100644 index 000000000..79237e769 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_license.rb @@ -0,0 +1,18 @@ +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module License + + def self.build(intObj) + resourceInfo = intObj.dig(:metadata, :resourceInfo) + title = resourceInfo.dig(:constraints, 0, :reference, 0, :title) + license = title || 'https://creativecommons.org/publicdomain/zero/1.0/' + license + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_media_type.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_media_type.rb new file mode 100644 index 000000000..725cb58e3 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_media_type.rb @@ -0,0 +1,17 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module MediaType + + def self.build(transfer) + transfer.dig(:distributionFormats)&.find { |format| format.dig(:formatSpecification, :title) }&.dig(:formatSpecification, :title) || '' + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_modified.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_modified.rb new file mode 100644 index 000000000..a3b6dac83 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_modified.rb @@ -0,0 +1,29 @@ +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module Modified + + def self.build(intObj) + resourceInfo = intObj[:metadata][:resourceInfo] + citation = resourceInfo[:citation] + dates = citation[:dates] + + mostRecentDate = nil + + dates.each do |date| + if date[:dateType] == "lastUpdated" || date[:dateType] == "lastRevised" || date[:dateType] == "revision" + if mostRecentDate.nil? || date[:date] > mostRecentDate + mostRecentDate = date[:date] + end + end + end + + return mostRecentDate + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_primaryITInvestmentUII.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_primaryITInvestmentUII.rb new file mode 100644 index 000000000..4c2ae225a --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_primaryITInvestmentUII.rb @@ -0,0 +1,19 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module PrimaryITInvestmentUII + + def self.build(intObj) + primaryITInvestmentUII = intObj[:metadata][:metadataInfo][:metadataIdentifier][:identifier] + + primaryITInvestmentUII ? primaryITInvestmentUII : nil + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_program_code.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_program_code.rb new file mode 100644 index 000000000..765ed5d17 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_program_code.rb @@ -0,0 +1,33 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module ProgramCode + + def self.build(intObj) + + responsibleParties = intObj[:metadata][:resourceInfo][:citation][:responsibleParties] + contacts = [] + responsibleParties.each do |party| + contactId = party[:parties][0][:contactId] + contacts << Dcat_us.get_contact_by_id(contactId) + end + + programContacts = contacts&.select { |contact| contact[:externalIdentifier].any? { |id| id[:namespace] == 'programCode'} } + + programsCodes = [] + programContacts.each do |contact| + programCode = contact[:externalIdentifier].find { |id| id[:namespace] == 'programCode' } + programsCodes << programCode[:identifier] + end + + return programsCodes + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_publisher.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_publisher.rb new file mode 100644 index 000000000..802308931 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_publisher.rb @@ -0,0 +1,74 @@ +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module Publisher + def self.build(intObj) + contacts = intObj.dig(:contacts) + metadata = intObj.dig(:metadata) + responsible_parties = metadata&.dig(:resourceInfo, :citation, :responsibleParties) + resource_distributions = metadata&.dig(:distributorInfo) + + publisher = find_publisher(responsible_parties) || find_distributions_publisher(intObj) + + return if publisher.nil? + + name, org_name = extract_names(publisher, contacts) + + return if name.nil? + + build_json(name, org_name) + end + + private + + def self.find_publisher(responsible_parties) + responsible_parties&.detect do |party| + party[:roleName] == 'publisher' && party.dig(:parties)&.first&.dig(:contactType) == 'organization' + end + end + + def self.find_distributions_publisher(intObj) + distributor_info = intObj.dig(:metadata, :distributorInfo) || [] + distributor_info.each do |distribution| + distributors = distribution[:distributor] || [] + distributors.each do |dist| + contact_type = dist.dig(:contact, :parties, 0, :contactType) + return dist[:contact] if contact_type == 'organization' + end + end + nil + end + + def self.extract_names(publisher, contacts) + contact_id = publisher.dig(:parties)&.first&.dig(:contactId) || publisher[:contactId] + related_contact = contacts&.detect { |contact| contact[:contactId] == contact_id } + org_name = nil + if related_contact + member_of_org_ids = related_contact[:memberOfOrgs] + member_of_orgs = contacts.select { |contact| member_of_org_ids&.include?(contact[:contactId]) && contact[:isOrganization] } + org_name = member_of_orgs.first&.dig(:name) + end + name = publisher.dig(:parties)&.first&.dig(:contactName) || publisher[:contactName] + [name, org_name] + end + + def self.build_json(name, org_name) + Jbuilder.new do |json| + json.set!('@type', 'org:Organization') + json.set!('name', name) + + if org_name + json.subOrganizationOf do |json_sub| + json_sub.set!('@type', 'org:Organization') + json_sub.set!('name', org_name) + end + end + end + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_references.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_references.rb new file mode 100644 index 000000000..221b41428 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_references.rb @@ -0,0 +1,50 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module References + + def self.build(intObj) + metadata = intObj.dig(:metadata) + associated_resources = metadata&.dig(:associatedResources) + additional_documents = metadata&.dig(:additionalDocuments) + uris = [] + + if associated_resources + associated_resources.each do |associated| + citation = associated.dig(:resourceCitation) + online_resources = citation&.dig(:onlineResources) + next unless online_resources + + online_resources.each do |online| + uri = online.dig(:olResURI) + uris << uri if uri + end + end + end + + if additional_documents + additional_documents.each do |additional| + citations = additional&.dig(:citation) || [] + citations.each do |citation| + online_resources = citation&.dig(:onlineResources) + next unless online_resources + + online_resources.each do |online| + uri = online.dig(:olResURI) + uris << uri if uri + end + end + end + end + + uris.join(',') + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_rights.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_rights.rb new file mode 100644 index 000000000..5ea78e5c9 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_rights.rb @@ -0,0 +1,32 @@ +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module Rights + + def self.build(intObj, accessLevel) + resourceInfo = intObj.dig(:metadata, :resourceInfo) + constraints = resourceInfo&.dig(:constraints) + + if accessLevel && ["restricted public", "non-public"].include?(accessLevel) + constraints&.each do |constraint| + if constraint[:type] == "use" + statement = constraint.dig(:releasability, :statement) + disseminationConstraints = constraint.dig(:releasability, :disseminationConstraint) + + if statement && disseminationConstraints + combinedConstraints = disseminationConstraints.join(" ") + return "#{statement} #{combinedConstraints}".strip + end + end + end + end + + nil + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_spatial.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_spatial.rb new file mode 100644 index 000000000..34178fe86 --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_spatial.rb @@ -0,0 +1,32 @@ +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module Spatial + + def self.build(intObj) + resourceInfo = intObj.dig(:metadata, :resourceInfo) + extent = resourceInfo&.dig(:extents, 0) + geographicExtent = extent&.dig(:geographicExtents, 0) + boundingBox = geographicExtent&.dig(:boundingBox) + + if boundingBox + return [ + boundingBox[:eastLongitude], + boundingBox[:southLatitude], + boundingBox[:westLongitude], + boundingBox[:northLatitude] + ].join(',') + elsif geographicExtent&.dig(:geographicElement, 0, :type) == 'point' + point = geographicExtent.dig(:geographicElement, 0, :coordinate) + return "#{point[1]},#{point[0]}" if point&.length == 2 + end + + nil + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_system_of_records.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_system_of_records.rb new file mode 100644 index 000000000..efff3e70d --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_system_of_records.rb @@ -0,0 +1,28 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module SystemOfRecords + + def self.build(intObj) + associatedResources = intObj.dig(:metadata, :associatedResources) + + return nil if associatedResources.nil? + + associatedResources.each do |resource| + if resource[:initiativeType] == 'sorn' + onlineResources = resource.dig(:resourceCitation, :onlineResources) + return onlineResources.first[:olResURI] if onlineResources&.first&.has_key?(:olResURI) + end + end + + return nil + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_temporal.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_temporal.rb new file mode 100644 index 000000000..5afc921aa --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_temporal.rb @@ -0,0 +1,40 @@ +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module Temporal + + def self.build(intObj) + resourceInfo = intObj.dig(:metadata, :resourceInfo) + extent = resourceInfo&.dig(:extents, 0) + temporalExtents = extent&.dig(:temporalExtents) + + if temporalExtents + temporalExtents.each do |temporalExtent| + timePeriod = temporalExtent&.dig(:timePeriod) + next unless timePeriod + + startDateHash = timePeriod[:startDateTime] + endDateHash = timePeriod[:endDateTime] + + startDate = startDateHash&.dig(:dateTime) + endDate = endDateHash&.dig(:dateTime) + + if startDate && endDate + return "#{startDate}/#{endDate}" + elsif startDate + return startDate + elsif endDate + return endDate + end + end + end + + nil + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_theme.rb b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_theme.rb new file mode 100644 index 000000000..86c8fb2bb --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_theme.rb @@ -0,0 +1,28 @@ +require 'jbuilder' + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + module Theme + + def self.build(intObj) + resourceInfo = intObj[:metadata][:resourceInfo] + keywords_str = [] + + resourceInfo[:keywords].each do |keyword_group| + if keyword_group[:thesaurus][:title] == "ISO Topic Categories" + keyword_group[:keywords].each do |keyword_obj| + keywords_str << keyword_obj[:keyword] + end + end + end + + return keywords_str.join(" ") + end + + end + end + end + end +end diff --git a/lib/adiwg/mdtranslator/writers/dcat_us/version.rb b/lib/adiwg/mdtranslator/writers/dcat_us/version.rb new file mode 100644 index 000000000..f5f8fb97c --- /dev/null +++ b/lib/adiwg/mdtranslator/writers/dcat_us/version.rb @@ -0,0 +1,14 @@ +# dcat_us version history +# Johnathan Aspinwall 2023-06-22 created for mdJson/mdTranslator 2.0 + +module ADIWG + module Mdtranslator + module Writers + module Dcat_us + + VERSION = '1.0.0' + + end + end + end +end diff --git a/lib/adiwg/mdtranslator_cli.rb b/lib/adiwg/mdtranslator_cli.rb index bb54fe6f0..27e8672b6 100755 --- a/lib/adiwg/mdtranslator_cli.rb +++ b/lib/adiwg/mdtranslator_cli.rb @@ -39,7 +39,7 @@ def self.exit_on_failure? :enum => %w{mdJson sbJson fgdc}, :required => true method_option :writer, :aliases => '-w', :desc => 'Writer to create your output metadata file, leave blank to validate input only', - :enum => %w{fgdc html iso19110 iso19115_1 iso19115_2 iso19115_3 mdJson sbJson simple_html } + :enum => %w{fgdc html iso19110 iso19115_1 iso19115_2 iso19115_3 mdJson sbJson simple_html dcat_us} method_option :validate, :aliases => '-v', :desc => 'Specify level of validation to be performed', :enum => %w{none normal strict}, :default => 'normal' method_option :forceValid, :aliases => '-f', :desc => 'Insert tags for required elements missing from input', diff --git a/test/translator/tc_mdJson_reader.rb b/test/translator/tc_mdJson_reader.rb index dad462975..0aeaac014 100755 --- a/test/translator/tc_mdJson_reader.rb +++ b/test/translator/tc_mdJson_reader.rb @@ -157,33 +157,35 @@ def test_mdJson_reader_schema_missing_version end - def test_mdJson_reader_schema_version_future_minor - - # read in an mdJson 2.x test file with schema object - file = File.join(File.dirname(__FILE__), 'testData', 'mdJson_minimal.json') - file = File.open(file, 'r') - jsonMinimal = file.read - file.close - - # bump minor version - version = Gem::Specification.find_by_name('adiwg-mdjson_schemas').version.to_s - aVersion = version.split('.') - newMinor = aVersion[1].to_i + 1 - testVersion = aVersion[0] + '.' + newMinor.to_s + '.' + aVersion[2] - - hJson = JSON.parse(jsonMinimal) - hSchema = hJson['schema'] - hSchema['version'] = testVersion - jsonIn = hJson.to_json - - metadata = ADIWG::Mdtranslator.translate(file: jsonIn) - - refute_empty metadata - assert_equal 'mdJson', metadata[:readerRequested] - refute metadata[:readerStructurePass] - refute_empty metadata[:readerStructureMessages] - - end +# This test needs to be verified that it's still valid and useful. +# Leave this test disabled until issue #348 is resolved. +# def test_mdJson_reader_schema_version_future_minor + +# # read in an mdJson 2.x test file with schema object +# file = File.join(File.dirname(__FILE__), 'testData', 'mdJson_minimal.json') +# file = File.open(file, 'r') +# jsonMinimal = file.read +# file.close + +# # bump minor version +# version = Gem::Specification.find_by_name('adiwg-mdjson_schemas').version.to_s +# aVersion = version.split('.') +# newMinor = aVersion[1].to_i + 1 +# testVersion = aVersion[0] + '.' + newMinor.to_s + '.' + aVersion[2] + +# hJson = JSON.parse(jsonMinimal) +# hSchema = hJson['schema'] +# hSchema['version'] = testVersion +# jsonIn = hJson.to_json + +# metadata = ADIWG::Mdtranslator.translate(file: jsonIn) + +# refute_empty metadata +# assert_equal 'mdJson', metadata[:readerRequested] +# refute metadata[:readerStructurePass] +# refute_empty metadata[:readerStructureMessages] + +# end def test_mdJson_reader_schema_version_future_major diff --git a/test/writers/dcat_us/dcat_us_test_parent.rb b/test/writers/dcat_us/dcat_us_test_parent.rb new file mode 100644 index 000000000..1566400ae --- /dev/null +++ b/test/writers/dcat_us/dcat_us_test_parent.rb @@ -0,0 +1,57 @@ +require 'minitest/autorun' +require 'json' +require 'json-schema' + +class TestWriterDcatUsParent < Minitest::Test + + # get json file for tests from examples folder + def self.getJson(fileName) + + file = File.join(File.dirname(__FILE__), 'testData', fileName) + file = File.open(file, 'r') + jsonFile = file.read + file.close + return jsonFile + + end + +end + +class Hash + def deep_diff(other) + (self.keys + other.keys).uniq.inject({}) do |memo, key| + left = self[key] + right = other[key] + + next memo if left == right + + if left.respond_to?(:deep_diff) && right.respond_to?(:deep_diff) + memo[key] = left.deep_diff(right) + else + memo[key] = [left, right] + end + + memo + end + end +end + +class Array + def deep_diff(array) + largest = [self.count, array.count].max + memo = {} + + 0.upto(largest - 1) do |index| + left = self[index] + right = array[index] + + next if left == right + + if left.respond_to?(:deep_diff) && right.respond_to?(:deep_diff) + memo[index] = left.deep_diff(right) + else + memo[index] = [left, right] + end + end + end +end diff --git a/test/writers/dcat_us/tc_dcat_us_access_level.rb b/test/writers/dcat_us/tc_dcat_us_access_level.rb new file mode 100644 index 000000000..80c90cbf2 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_access_level.rb @@ -0,0 +1,108 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsAccessLevel < TestWriterDcatUsParent + + # get input JSON for test + @@jsonInPub = TestWriterDcatUsParent.getJson('accessLevel_pub.json') + @@jsonInResPub = TestWriterDcatUsParent.getJson('accessLevel_resPub.json') + @@jsonInResPubLegal = TestWriterDcatUsParent.getJson('accessLevel_resPub_legal.json') + @@jsonInResPubSecurity = TestWriterDcatUsParent.getJson('accessLevel_resPub_security.json') + @@jsonInNonPub = TestWriterDcatUsParent.getJson('accessLevel_nonPub.json') + @@jsonInNonPubLegal = TestWriterDcatUsParent.getJson('accessLevel_nonPub_legal.json') + @@jsonInNonPubSecurity = TestWriterDcatUsParent.getJson('accessLevel_nonPub_security.json') + + def test_accessLevel_public + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonInPub, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['accessLevel'] + + expect = 'public' + + assert_equal expect, got + end + + def test_accessLevel_restricted_public + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonInResPub, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['accessLevel'] + + expect = 'restricted public' + + assert_equal expect, got + end + + def test_accessLevel_restricted_public_legal + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonInResPubLegal, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['accessLevel'] + + expect = 'restricted public' + + assert_equal expect, got + end + + def test_accessLevel_restricted_public_security + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonInResPubSecurity, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['accessLevel'] + + expect = 'restricted public' + + assert_equal expect, got + end + + def test_accessLevel_non_public + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonInNonPub, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['accessLevel'] + + expect = 'non-public' + + assert_equal expect, got + end + + def test_accessLevel_non_public_legal + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonInNonPubLegal, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['accessLevel'] + + expect = 'non-public' + + assert_equal expect, got + end + + def test_accessLevel_non_public_security + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonInNonPubSecurity, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['accessLevel'] + + expect = 'non-public' + + assert_equal expect, got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_contact_point.rb b/test/writers/dcat_us/tc_dcat_us_contact_point.rb new file mode 100644 index 000000000..39ce2dda4 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_contact_point.rb @@ -0,0 +1,24 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsContactPoint < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('contactPoint.json') + + def test_sample + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['contactPoint'] + + expect = {"@type"=>"vcard:Contact", "fn"=>"Stan Smith", "hasEmail"=>"e.mail@address.com1"} + + assert_equal expect, got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_described_by.rb b/test/writers/dcat_us/tc_dcat_us_described_by.rb new file mode 100644 index 000000000..06d231b74 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_described_by.rb @@ -0,0 +1,24 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsDescribedBy < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('describedBy.json') + + def test_described_by + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['describedBy'] + + expect = 'http://adiwg.org/described/by' + + assert_equal expect, got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_description.rb b/test/writers/dcat_us/tc_dcat_us_description.rb new file mode 100644 index 000000000..1878d5f80 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_description.rb @@ -0,0 +1,22 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsTitle < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('description.json') + + def test_title + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['description'] + + assert_equal 'myBody', got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_distribution.rb b/test/writers/dcat_us/tc_dcat_us_distribution.rb new file mode 100644 index 000000000..b2076f637 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_distribution.rb @@ -0,0 +1,24 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsDistribution < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('distribution.json') + + def test_distribution + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['distribution'] + + expect = [{"@type"=>"dcat:Distribution", "description"=>"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", "downloadURL"=>"http://ISO.uri/adiwg/0", "mediaType"=>"CSV", "title"=>""}] + + assert_equal expect, got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_identifier.rb b/test/writers/dcat_us/tc_dcat_us_identifier.rb new file mode 100644 index 000000000..97e4eaed9 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_identifier.rb @@ -0,0 +1,34 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsIdentifier < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('identifier.json') + @@jsonIn2 = TestWriterDcatUsParent.getJson('identifier2.json') + + def test_identifier_namespace + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['identifier'] + + assert_equal 'http://myOnlineResource-namespace.com', got + end + + def test_identifier_url + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn2, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['identifier'] + + assert_equal 'http://myOnlineResource-doi.com', got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_is_part_of.rb b/test/writers/dcat_us/tc_dcat_us_is_part_of.rb new file mode 100644 index 000000000..4181c8847 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_is_part_of.rb @@ -0,0 +1,24 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsIsPartOf < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('isPartOf.json') + + def test_isPartOf + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['isPartOf'] + + expect = 'http://ISO.uri/adiwg/0' + + assert_equal expect, got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_issued.rb b/test/writers/dcat_us/tc_dcat_us_issued.rb new file mode 100644 index 000000000..823374f9c --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_issued.rb @@ -0,0 +1,24 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsIssued < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('issued.json') + + def test_issued + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['issued'] + + expect = '2017-06-13T00:00:00+00:00' + + assert_equal expect, got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_keyword.rb b/test/writers/dcat_us/tc_dcat_us_keyword.rb new file mode 100644 index 000000000..7a7c63491 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_keyword.rb @@ -0,0 +1,24 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsKeyword < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('keyword.json') + + def test_keyword + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['keyword'] + + expect = ["Barrow", "Prudhoe Bay", "Kaparuk", "Brown Bear", "Polar Bear", "Black Bear", "Cinnamon Bear", "Teddy Bear", "butter", "sugar", "eggs", "inlandWaters", "location", "climatologyMeteorologyAtmosphere", "carbon dating", "ionization"] + + assert_equal expect, got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_landing_page.rb b/test/writers/dcat_us/tc_dcat_us_landing_page.rb new file mode 100644 index 000000000..585e50d79 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_landing_page.rb @@ -0,0 +1,24 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsLandingPage < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('landingPage.json') + + def test_landingPage + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['landingPage'] + + expect = 'http://ISO.uri/adiwg/0' + + assert_equal expect, got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_license.rb b/test/writers/dcat_us/tc_dcat_us_license.rb new file mode 100644 index 000000000..f64745eb9 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_license.rb @@ -0,0 +1,24 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsLicense < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('license.json') + + def test_license + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['license'] + + expect = 'title0' + + assert_equal expect, got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_modified.rb b/test/writers/dcat_us/tc_dcat_us_modified.rb new file mode 100644 index 000000000..5155570a6 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_modified.rb @@ -0,0 +1,34 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsModified < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('modified.json') + @@jsonIn2 = TestWriterDcatUsParent.getJson('modified2.json') + + def test_modified_basic + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['modified'] + + assert_equal '2017-06-22T16:15:14+00:00', got + end + + def test_modified_out_of_order + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn2, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['modified'] + + assert_equal '2022-06-22T16:15:14+00:00', got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_publisher.rb b/test/writers/dcat_us/tc_dcat_us_publisher.rb new file mode 100644 index 000000000..8be2c3b40 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_publisher.rb @@ -0,0 +1,38 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsPublisher < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('publisher.json') + @@jsonIn2 = TestWriterDcatUsParent.getJson('publisher2.json') + + def test_publisher_responsible_party + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['publisher'] + + expect = {"@type"=>"org:Organization", "name"=>"US Geological Survey", "subOrganizationOf"=>{"@type"=>"org:Organization", "name"=>"US Department of the Interior"}} + + assert_equal expect, got + end + + def test_publisher_resource_distribution + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn2, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['publisher'] + + expect = {"@type"=>"org:Organization", "name"=>"Arctic Landscape Conservation Cooperative"} + + assert_equal expect, got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_references.rb b/test/writers/dcat_us/tc_dcat_us_references.rb new file mode 100644 index 000000000..32df5bae3 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_references.rb @@ -0,0 +1,24 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsReferences < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('references.json') + + def test_references + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['references'] + + expect = 'http://ISO.uri/adiwg/0,http://ISO.uri/adiwg/1,http://ISO.uri/adiwg/2,http://ISO.uri/adiwg/3,http://ISO.uri/adiwg/4,http://ISO.uri/adiwg/5,http://ISO.uri/adiwg/6,http://ISO.uri/adiwg/7,http://ISO.uri/adiwg/8,http://ISO.uri/adiwg/9,http://ISO.uri/adiwg/10,http://ISO.uri/adiwg/11' + + assert_equal expect, got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_rights.rb b/test/writers/dcat_us/tc_dcat_us_rights.rb new file mode 100644 index 000000000..fa2eaddbb --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_rights.rb @@ -0,0 +1,24 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsRights < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('rights.json') + + def test_rights + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['rights'] + + expect = 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. restricted unrestricted' + + assert_equal expect, got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_spatial.rb b/test/writers/dcat_us/tc_dcat_us_spatial.rb new file mode 100644 index 000000000..6faef8373 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_spatial.rb @@ -0,0 +1,24 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsSpatial < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('spatial.json') + + def test_spatial + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['spatial'] + + expect = '-120.0,49.0,-140.0,70.0' + + assert_equal expect, got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_system_of_records.rb b/test/writers/dcat_us/tc_dcat_us_system_of_records.rb new file mode 100644 index 000000000..36b740238 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_system_of_records.rb @@ -0,0 +1,24 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsSystemOfRecords < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('systemOfRecords.json') + + def test_system_of_records + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['systemOfRecords'] + + expect = 'http://ISO.uri/adiwg/0' + + assert_equal expect, got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_temporal.rb b/test/writers/dcat_us/tc_dcat_us_temporal.rb new file mode 100644 index 000000000..322b4ecd3 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_temporal.rb @@ -0,0 +1,24 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsTemporal < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('temporal.json') + + def test_Temporal + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['temporal'] + + expect = '2016-10-24T11:10:15-10:00' + + assert_equal expect, got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_theme.rb b/test/writers/dcat_us/tc_dcat_us_theme.rb new file mode 100644 index 000000000..caea89a3f --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_theme.rb @@ -0,0 +1,24 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsTheme < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('theme.json') + + def test_theme + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['theme'] + + expect = 'inlandWaters location climatologyMeteorologyAtmosphere' + + assert_equal expect, got + end + +end diff --git a/test/writers/dcat_us/tc_dcat_us_title.rb b/test/writers/dcat_us/tc_dcat_us_title.rb new file mode 100644 index 000000000..a4ab80bf2 --- /dev/null +++ b/test/writers/dcat_us/tc_dcat_us_title.rb @@ -0,0 +1,22 @@ +require 'minitest/autorun' +require 'json' +require 'adiwg-mdtranslator' +require_relative 'dcat_us_test_parent' + +class TestWriterDcatUsTitle < TestWriterDcatUsParent + + # get input JSON for test + @@jsonIn = TestWriterDcatUsParent.getJson('title.json') + + def test_title + metadata = ADIWG::Mdtranslator.translate( + file: @@jsonIn, reader: 'mdJson', validate: 'normal', + writer: 'dcat_us', showAllTags: false) + + hJsonOut = JSON.parse(metadata[:writerOutput]) + got = hJsonOut['title'] + + assert_equal 'myCitationTitle', got + end + +end diff --git a/test/writers/dcat_us/testData/accessLevel_nonPub.json b/test/writers/dcat_us/testData/accessLevel_nonPub.json new file mode 100644 index 000000000..cc2b7fd94 --- /dev/null +++ b/test/writers/dcat_us/testData/accessLevel_nonPub.json @@ -0,0 +1,1216 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "constraint": [ + { + "type": "use", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "reference": [{ + "title": "title0" + }, + { + "title": "title1" + } + ], + "releasability": { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "addressee": [{ + "role": "client", + "party": [{ + "contactId": "CID001" + }] + }, + { + "role": "stakeholder", + "party": [{ + "contactId": "CID002" + }, + { + "contactId": "CID003" + } + ] + } + ], + "disseminationConstraint": [ + "restricted", + "unrestricted" + ] + }, + "responsibleParty": [{ + "role": "coAuthor", + "party": [{ + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "rightsHolder", + "party": [{ + "contactId": "CID005" + }] + } + ] + }, + { + "type": "legal", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "legal": { + "useConstraint": [ + "threatenedOrEndangered", + "otherRestrictions" + ], + "accessConstraint": [ + "otherRestrictions", + "non-public", + "in-confidence" + ], + "otherConstraint": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure." + ] + } + }, + { + "type": "security", + "security": { + "classification": "secret", + "classificationSystem": "Classification System Name", + "userNote": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "handlingDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ] + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/accessLevel_nonPub_legal.json b/test/writers/dcat_us/testData/accessLevel_nonPub_legal.json new file mode 100644 index 000000000..b62fdc6d3 --- /dev/null +++ b/test/writers/dcat_us/testData/accessLevel_nonPub_legal.json @@ -0,0 +1,1216 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "constraint": [ + { + "type": "use", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "reference": [{ + "title": "title0" + }, + { + "title": "title1" + } + ], + "releasability": { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "addressee": [{ + "role": "client", + "party": [{ + "contactId": "CID001" + }] + }, + { + "role": "stakeholder", + "party": [{ + "contactId": "CID002" + }, + { + "contactId": "CID003" + } + ] + } + ], + "disseminationConstraint": [ + "restricted", + "unrestricted" + ] + }, + "responsibleParty": [{ + "role": "coAuthor", + "party": [{ + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "rightsHolder", + "party": [{ + "contactId": "CID005" + }] + } + ] + }, + { + "type": "legal", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "legal": { + "useConstraint": [ + "threatenedOrEndangered", + "otherRestrictions" + ], + "accessConstraint": [ + "restricted", + "non-public", + "in-confidence" + ], + "otherConstraint": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure." + ] + } + }, + { + "type": "security", + "security": { + "classification": "sensitiveButUnclassified", + "classificationSystem": "Classification System Name", + "userNote": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "handlingDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ] + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/accessLevel_nonPub_security.json b/test/writers/dcat_us/testData/accessLevel_nonPub_security.json new file mode 100644 index 000000000..d563cbce4 --- /dev/null +++ b/test/writers/dcat_us/testData/accessLevel_nonPub_security.json @@ -0,0 +1,1216 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "constraint": [ + { + "type": "use", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "reference": [{ + "title": "title0" + }, + { + "title": "title1" + } + ], + "releasability": { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "addressee": [{ + "role": "client", + "party": [{ + "contactId": "CID001" + }] + }, + { + "role": "stakeholder", + "party": [{ + "contactId": "CID002" + }, + { + "contactId": "CID003" + } + ] + } + ], + "disseminationConstraint": [ + "restricted", + "unrestricted" + ] + }, + "responsibleParty": [{ + "role": "coAuthor", + "party": [{ + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "rightsHolder", + "party": [{ + "contactId": "CID005" + }] + } + ] + }, + { + "type": "legal", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "legal": { + "useConstraint": [ + "threatenedOrEndangered", + "otherRestrictions" + ], + "accessConstraint": [ + "unrestricted", + "licenseUnrestricted", + "licenseEndUser" + ], + "otherConstraint": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure." + ] + } + }, + { + "type": "security", + "security": { + "classification": "secret", + "classificationSystem": "Classification System Name", + "userNote": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "handlingDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ] + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/accessLevel_pub.json b/test/writers/dcat_us/testData/accessLevel_pub.json new file mode 100644 index 000000000..b322c6807 --- /dev/null +++ b/test/writers/dcat_us/testData/accessLevel_pub.json @@ -0,0 +1,1216 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "constraint": [ + { + "type": "use", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "reference": [{ + "title": "title0" + }, + { + "title": "title1" + } + ], + "releasability": { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "addressee": [{ + "role": "client", + "party": [{ + "contactId": "CID001" + }] + }, + { + "role": "stakeholder", + "party": [{ + "contactId": "CID002" + }, + { + "contactId": "CID003" + } + ] + } + ], + "disseminationConstraint": [ + "restricted", + "unrestricted" + ] + }, + "responsibleParty": [{ + "role": "coAuthor", + "party": [{ + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "rightsHolder", + "party": [{ + "contactId": "CID005" + }] + } + ] + }, + { + "type": "legal", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "legal": { + "useConstraint": [ + "threatenedOrEndangered", + "otherRestrictions" + ], + "accessConstraint": [ + "public", + "unrestricted", + "licenseEndUser" + ], + "otherConstraint": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure." + ] + } + }, + { + "type": "security", + "security": { + "classification": "unclassified", + "classificationSystem": "Classification System Name", + "userNote": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "handlingDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ] + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/accessLevel_resPub.json b/test/writers/dcat_us/testData/accessLevel_resPub.json new file mode 100644 index 000000000..948956899 --- /dev/null +++ b/test/writers/dcat_us/testData/accessLevel_resPub.json @@ -0,0 +1,1215 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "constraint": [ + { + "type": "use", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "reference": [{ + "title": "title0" + }, + { + "title": "title1" + } + ], + "releasability": { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "addressee": [{ + "role": "client", + "party": [{ + "contactId": "CID001" + }] + }, + { + "role": "stakeholder", + "party": [{ + "contactId": "CID002" + }, + { + "contactId": "CID003" + } + ] + } + ], + "disseminationConstraint": [ + "restricted", + "unrestricted" + ] + }, + "responsibleParty": [{ + "role": "coAuthor", + "party": [{ + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "rightsHolder", + "party": [{ + "contactId": "CID005" + }] + } + ] + }, + { + "type": "legal", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "legal": { + "useConstraint": [ + "threatenedOrEndangered", + "otherRestrictions" + ], + "accessConstraint": [ + "in-confidence", + "restricted public" + ], + "otherConstraint": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure." + ] + } + }, + { + "type": "security", + "security": { + "classification": "sensitiveButUnclassified", + "classificationSystem": "Classification System Name", + "userNote": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "handlingDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ] + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/accessLevel_resPub_legal.json b/test/writers/dcat_us/testData/accessLevel_resPub_legal.json new file mode 100644 index 000000000..0914cf63a --- /dev/null +++ b/test/writers/dcat_us/testData/accessLevel_resPub_legal.json @@ -0,0 +1,1216 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "constraint": [ + { + "type": "use", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "reference": [{ + "title": "title0" + }, + { + "title": "title1" + } + ], + "releasability": { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "addressee": [{ + "role": "client", + "party": [{ + "contactId": "CID001" + }] + }, + { + "role": "stakeholder", + "party": [{ + "contactId": "CID002" + }, + { + "contactId": "CID003" + } + ] + } + ], + "disseminationConstraint": [ + "restricted", + "unrestricted" + ] + }, + "responsibleParty": [{ + "role": "coAuthor", + "party": [{ + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "rightsHolder", + "party": [{ + "contactId": "CID005" + }] + } + ] + }, + { + "type": "legal", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "legal": { + "useConstraint": [ + "threatenedOrEndangered", + "otherRestrictions" + ], + "accessConstraint": [ + "in-confidence", + "restricted public", + "sensitiveButUnclassified" + ], + "otherConstraint": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure." + ] + } + }, + { + "type": "security", + "security": { + "classification": "unclassified", + "classificationSystem": "Classification System Name", + "userNote": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "handlingDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ] + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/accessLevel_resPub_security.json b/test/writers/dcat_us/testData/accessLevel_resPub_security.json new file mode 100644 index 000000000..51b3f532a --- /dev/null +++ b/test/writers/dcat_us/testData/accessLevel_resPub_security.json @@ -0,0 +1,1215 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "constraint": [ + { + "type": "use", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "reference": [{ + "title": "title0" + }, + { + "title": "title1" + } + ], + "releasability": { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "addressee": [{ + "role": "client", + "party": [{ + "contactId": "CID001" + }] + }, + { + "role": "stakeholder", + "party": [{ + "contactId": "CID002" + }, + { + "contactId": "CID003" + } + ] + } + ], + "disseminationConstraint": [ + "restricted", + "unrestricted" + ] + }, + "responsibleParty": [{ + "role": "coAuthor", + "party": [{ + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "rightsHolder", + "party": [{ + "contactId": "CID005" + }] + } + ] + }, + { + "type": "legal", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "legal": { + "useConstraint": [ + "threatenedOrEndangered", + "otherRestrictions" + ], + "accessConstraint": [ + "in-confidence", + "restricted public" + ], + "otherConstraint": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure." + ] + } + }, + { + "type": "security", + "security": { + "classification": "unrestricted", + "classificationSystem": "Classification System Name", + "userNote": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "handlingDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ] + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/contactPoint.json b/test/writers/dcat_us/testData/contactPoint.json new file mode 100644 index 000000000..e3aa1af80 --- /dev/null +++ b/test/writers/dcat_us/testData/contactPoint.json @@ -0,0 +1,1108 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + } + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/describedBy.json b/test/writers/dcat_us/testData/describedBy.json new file mode 100644 index 000000000..55b0cbd5f --- /dev/null +++ b/test/writers/dcat_us/testData/describedBy.json @@ -0,0 +1,1175 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + } + } + }, + "dataDictionary": [ + { + "citation": { + "title": "title", + "onlineResource": [{ + "uri": "http://adiwg.org/described/by/included/with/resource" + }] + }, + "subject": [ + "subject0", + "subject1" + ], + "recommendedUse": [ + "use0", + "use1" + ], + "locale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "responsibleParty": { + "role": "author", + "party": [{ + "contactId": "CID001" + }] + }, + "dictionaryFunctionalLanguage": "UML", + "dictionaryIncludedWithResource": true + }, + { + "citation": { + "title": "My Dictionary Title", + "onlineResource": [{ + "uri": "http://adiwg.org/described/by" + }] + }, + "subject": [ + "birds", + "loons" + ], + "recommendedUse": [ + "Reconstruct database" + ], + "locale": [ + { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }], + "responsibleParty": { + "role": "author", + "party": [{ + "contactId": "CID006" + }] + }, + "dictionaryFunctionalLanguage": "MSSQL", + "dictionaryIncludedWithResource": false + } + ] + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/description.json b/test/writers/dcat_us/testData/description.json new file mode 100644 index 000000000..bc2d3640f --- /dev/null +++ b/test/writers/dcat_us/testData/description.json @@ -0,0 +1,141 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.0.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Person 001" + }, + { + "contactId": "CID002", + "isOrganization": false, + "name": "Person 002" + }, + { + "contactId": "CID003", + "isOrganization": false, + "name": "Person 003" + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Person 004" + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "Organization 001" + } + ], + "metadata": { + "metadataInfo": { + "metadataContact": [ + { + "role": "metadataContact", + "party": [ + { + "contactId": "CID001" + } + ] + } + ] + }, + "resourceInfo": { + "resourceType": [ + { + "type": "type", + "name": "name" + } + ], + "citation": { + "title": "myCitationTitle", + "responsibleParty": [ + { + "role": "principalInvestigator", + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID002" + } + ] + }, + { + "role": "funder", + "party": [ + { + "contactId": "CID005", + "organizationMembers": [ + "CID003", + "CID004", + "CID001" + ] + } + ] + }, + { + "role": "principalInvestigator", + "party": [ + { + "contactId": "CID001" + } + ] + } + ], + "date": [ + { + "date": "2020", + "dateType": "expiry" + }, + { + "date": "2017-05", + "dateType": "creation" + }, + { + "date": "2017-05-16", + "dateType": "publication" + }, + { + "date": "2017-05-16T16:10:00-09:00", + "dateType": "revision" + } + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ] + }, + "abstract": "myBody", + "status": [ + "status" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [ + { + "contactId": "CID001" + } + ] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + } + } + } +} diff --git a/test/writers/dcat_us/testData/distribution.json b/test/writers/dcat_us/testData/distribution.json new file mode 100644 index 000000000..6c5a55402 --- /dev/null +++ b/test/writers/dcat_us/testData/distribution.json @@ -0,0 +1,3044 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "otherResourceLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "credit": [ + "Lim, Sonny B. - Guitar", + "Peterson, Jeff - Slack Key Guitar", + "Kamakawiwo'ole, Israel - Vocal" + ], + "timePeriod": { + "description": "ground condition", + "startDateTime": "2016-06-01", + "endDateTime": "2016-08-15" + }, + "temporalResolution": [ + { + "years": 1, + "months": 8, + "days": 13 + }, + { + "seconds": 5 + } + ], + "spatialReferenceSystem": [ + { + "referenceSystemType": "referenceSystemType0", + "referenceSystemIdentifier": { + "identifier": "spatial reference system identifier", + "namespace": "namespace", + "version": "version", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + } + }, + { + "referenceSystemType": "referenceSystemType1" + }, + { + "referenceSystemIdentifier": { + "identifier": "identifier2" + } + }, + { + "referenceSystemType": "projected", + "referenceSystemIdentifier": { + "identifier": "Zone 10", + "namespace": "UTM", + "description": "Universal Transverse Mercator Zone 10 Seattle, Washington" + } + }, + { + "referenceSystemType": "geodeticGeographic2D", + "referenceSystemIdentifier": { + "identifier": "4326", + "namespace": "urn:ogc:def:crs:EPSG", + "description": "epsg projection 4326 - wgs 84 - Latitude Longitude", + "authority": { + "title": "European Petroleum Survey Group" + } + } + }, + { + "referenceSystemType": "projected", + "referenceSystemWKT": "PROJCS ['Wyoming 4901, Eastern Zone (1983, meters)', GEOGCS ['GRS 80', DATUM ['GRS 80', SPHEROID ['GRS 80', 6378137.000000, 298.257222]], PRIMEM ['Greenwich', 0.000000 ], UNIT ['Decimal Degree', 0.01745329251994330]], PROJECTION ['Transverse Mercator'], PARAMETER ['Scale_Factor', 0.999938], PARAMETER ['Central_Meridian', -105.166667], PARAMETER ['Latitude_Of_Origin', 40.500000], PARAMETER ['False_Easting', 200000.000000], UNIT ['Meter', 1.000000000000]]" + }, + { + "referenceSystemType": "geodeticGeographic2D", + "referenceSystemParameterSet": { + "geodetic": { + "datumIdentifier": { + "identifier": "identifier" + }, + "ellipsoidIdentifier": { + "identifier": "identifier" + }, + "semiMajorAxis": 9.9, + "axisUnits": "axisUnits", + "denominatorOfFlatteningRatio": 9.9 + } + } + } + ], + "spatialRepresentationType": [ + "vector", + "stereoModel" + ], + "spatialRepresentation": [ + { + "gridRepresentation": { + "numberOfDimensions": 9, + "dimension": [{ + "dimensionType": "column", + "dimensionSize": 9, + "resolution": { + "type": "distance", + "value": 9.9, + "unitOfMeasure": "feet" + }, + "dimensionTitle": "COLUMN TITLE", + "dimensionDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + }, + { + "dimensionType": "row", + "dimensionSize": 9 + } + ], + "cellGeometry": "voxel", + "transformParamsAvailability": true + } + }, + { + "vectorRepresentation": { + "topologyLevel": "fullTopology3D", + "vectorObject": [{ + "objectType": "object Type 0", + "objectCount": 9 + }, + { + "objectType": "object Type 1", + "objectCount": 9 + } + ] + } + }, + { + "georectifiedRepresentation": { + "gridRepresentation": { + "numberOfDimensions": 9, + "dimension": [ + { + "dimensionType": "row", + "dimensionSize": 90 + }, + { + "dimensionType": "column", + "dimensionSize": 91 + } + ], + "cellGeometry": "cellGeometry", + "transformationParameterAvailable": true + }, + "checkPointAvailable": true, + "checkPointDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "cornerPoints": [ + [ + 0.0, + 0.0 + ], + [ + 0.0, + 1.0 + ], + [ + 1.0, + 1.0 + ], + [ + 1.0, + 0.0 + ] + ], + "centerPoint": [ + 0.5, + 0.5 + ], + "pointInPixel": "upperRight", + "transformationDimensionDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "transformationDimensionMapping": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + }, + { + "georeferenceableRepresentation": { + "gridRepresentation": { + "numberOfDimensions": 9, + "dimension": [{ + "dimensionType": "row", + "dimensionSize": 90 + }, + { + "dimensionType": "column", + "dimensionSize": 91 + } + ], + "cellGeometry": "cellGeometry", + "transformationParameterAvailable": true + }, + "controlPointAvailable": true, + "orientationParameterAvailable": true, + "orientationParameterDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "georeferencedParameter": "Georeferenced Parameter 00", + "parameterCitation": [{ + "title": "title0" + }, + { + "title": "title1" + } + ] + } + } + ], + "spatialResolution": [ + { + "scaleFactor": 99999 + }, { + "measure": { + "type": "distance", + "value": 99.9, + "unitOfMeasure": "unitOfMeasure" + } + }, { + "levelOfDetail": "levelOfDetail" + }, { + "geographicResolution": { + "latitudeResolution": 9.9, + "longitudeResolution": 9.9, + "unitOfMeasure": "unitOfMeasure" + } + }, { + "bearingDistanceResolution": { + "distanceResolution": 9.9, + "distanceUnitOfMeasure": "distanceUnitOfMeasure", + "bearingResolution": 9.9, + "bearingUnitOfMeasure": "bearingUnitOfMeasure", + "bearingReferenceDirection": "north", + "bearingReferenceMeridian": "assumed" + } + }, { + "coordinateResolution": { + "abscissaResolutionX": 9.9, + "ordinateResolutionY": 9.9, + "unitOfMeasure": "unitOfMeasure" + } + }], + "keyword": [ + { + "keyword": [ + { + "keyword": "Barrow" + }, + { + "keyword": "Prudhoe Bay" + }, + { + "keyword": "Kaparuk" + } + ], + "keywordType": "place", + "thesaurus": { + "title": "USGS Geographic Names Information System" + } + }, + { + "keyword": [ + { + "keyword": "Brown Bear", + "keywordId": "TSN12365741" + }, + { + "keyword": "Polar Bear", + "keywordId": "TSN125415741" + }, + { + "keyword": "Black Bear", + "keywordId": "TSN123689426" + }, + { + "keyword": "Cinnamon Bear", + "keywordId": "TSN123842165" + }, + { + "keyword": "Teddy Bear" + } + ], + "keywordType": "taxon", + "thesaurus": { + "title": "ITIS - Integrated Taxonomic Information System" + } + }, + { + "keyword": [ + { + "keyword": "butter" + }, + { + "keyword": "sugar" + }, + { + "keyword": "eggs" + } + ], + "keywordType": "theme", + "thesaurus": { + "title": "Exploring Cookies" + } + }, + { + "keyword": [ + { + "keyword": "inlandWaters", + "keywordId": "012" + }, + { + "keyword": "location", + "keywordId": "013" + }, + { + "keyword": "climatologyMeteorologyAtmosphere", + "keywordId": "004" + } + ], + "keywordType": "isoTopicCategory", + "thesaurus": { + "title": "ISO Topic Categories" + } + }, + { + "keyword": [ + { + "keyword": "carbon dating" + }, + { + "keyword": "ionization" + } + ], + "keywordType": "method", + "thesaurus": { + "title": "Lineage Methodology keyword set" + } + } + ], + "taxonomy": [ + { + "taxonomicSystem": [{ + "citation": { + "title": "ITIS - Integrated Taxonomic Information System", + "alternateTitle": [ + "Citation for ITIS" + ], + "date": [{ + "date": "2013-06-22", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + }, + "modifications": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "citation": { + "title": "Some OTHER Taxonomic System", + "date": [{ + "date": "2013-06-22", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + } + } + ], + "generalScope": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identificationReference": [{ + "title": "citation", + "identifier": [{ + "identifier": "identifier0", + "namespace": "namespace0", + "version": "version0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "title0", + "date": [{ + "date": "2013-06-22", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + } + }] + }, + { + "title": "citation1", + "identifier": [{ + "identifier": "identifier1", + "namespace": "namespace1", + "version": "version1", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "title1", + "date": [{ + "date": "2013-06-22", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + } + }] + } + ], + "observer": [{ + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "editor", + "party": [{ + "contactId": "CID001" + }] + } + ], + "identificationProcedure": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identificationCompleteness": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "voucher": [{ + "specimen": "bear claw", + "repository": { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + }, + { + "specimen": "moose tooth", + "repository": { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + } + ], + "taxonomicClassification": [{ + "taxonomicLevel": "taxonomicLevel0", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [{ + "taxonomicSystemId": "taxonomicSystemId00", + "taxonomicLevel": "taxonomicLevel00", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [{ + "taxonomicLevel": "taxonomicLevel000", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [{ + "taxonomicSystemId": "taxonomicSystemId0000.1", + "taxonomicLevel": "taxonomicLevel0000.1", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [] + }, + { + "taxonomicSystemId": "taxonomicSystemId0000.2", + "taxonomicLevel": "taxonomicLevel0000.2", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [] + } + ] + }] + }, + { + "taxonomicLevel": "taxonomicLevel01", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [{ + "taxonomicLevel": "taxonomicLevel010", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [] + }] + } + ] + }, + { + "taxonomicLevel": "taxonomicLevel0201", + "taxonomicName": "taxonomicName" + } + ] + }], + "graphicOverview": [ + { + "fileName": "fileName 0", + "fileDescription": "fileDescription 0", + "fileType": "fileType 0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName 1", + "fileDescription": "fileDescription 1", + "fileType": "fileType 1", + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/1" + }] + } + ], + "constraint": [ + { + "type": "use", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "reference": [{ + "title": "title0" + }, + { + "title": "title1" + } + ], + "releasability": { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "addressee": [{ + "role": "client", + "party": [{ + "contactId": "CID001" + }] + }, + { + "role": "stakeholder", + "party": [{ + "contactId": "CID002" + }, + { + "contactId": "CID003" + } + ] + } + ], + "disseminationConstraint": [ + "restricted", + "unrestricted" + ] + }, + "responsibleParty": [{ + "role": "coAuthor", + "party": [{ + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "rightsHolder", + "party": [{ + "contactId": "CID005" + }] + } + ] + }, + { + "type": "legal", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "legal": { + "useConstraint": [ + "threatenedOrEndangered", + "otherRestrictions" + ], + "accessConstraint": [ + "otherRestrictions", + "in-confidence" + ], + "otherConstraint": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure." + ] + } + }, + { + "type": "security", + "security": { + "classification": "secret", + "classificationSystem": "Classification System Name", + "userNote": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "handlingDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ], + "coverageDescription": [ + { + "coverageName": "My First Coverage", + "coverageDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "processingLevelCode": { + "identifier": "processing level code" + }, + "attributeGroup": [{ + "attributeContentType": [ + "thematicClassification", + "physicalMeasurement" + ], + "attribute": [{ + "sequenceIdentifier": "sequenceIdentifier 1", + "sequenceIdentifierType": "sequenceIdentifierType", + "attributeDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "attributeIdentifier": [{ + "identifier": "identifier 1" + }, + { + "identifier": "identifier 2" + } + ], + "minValue": 9.9, + "maxValue": 9.9, + "units": "units", + "scaleFactor": 999, + "offset": 999, + "meanValue": 9.9, + "numberOfValues": 999, + "standardDeviation": 9.9, + "bitsPerValue": 999, + "boundMin": 9.9, + "boundMax": 9.9, + "boundUnits": "boundUnits", + "peakResponse": 9.9, + "toneGradations": 999, + "bandBoundaryDefinition": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "nominalSpatialResolution": 9.9, + "transferFunctionType": "transferFunctionType", + "transmittedPolarization": "transmittedPolarization", + "detectedPolarization": "detectedPolarization" + }, + { + "sequenceIdentifier": "sequenceIdentifier 2", + "sequenceIdentifierType": "sequenceIdentifierType", + "attributeDescription": "attributeDescription", + "attributeIdentifier": [{ + "identifier": "identifier" + }], + "minValue": 9.9, + "maxValue": 9.9, + "units": "units", + "scaleFactor": 999, + "offset": 999, + "meanValue": 9.9, + "numberOfValues": 999, + "standardDeviation": 9.9, + "bitsPerValue": 999 + } + ] + }, + { + "attributeContentType": [ + "modelResult" + ] + } + ], + "imageDescription": { + "illuminationElevationAngle": 9.9, + "illuminationAzimuthAngle": 9.9, + "imagingCondition": "imagingCondition", + "imageQualityCode": { + "identifier": "identifier" + }, + "cloudCoverPercent": 9.9, + "compressionQuantity": 9, + "triangulationIndicator": true, + "radiometricCalibrationAvailable": true, + "cameraCalibrationAvailable": true, + "filmDistortionAvailable": true, + "lensDistortionAvailable": true + } + }, + { + "coverageName": "My Second Coverage", + "coverageDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "processingLevelCode": { + "identifier": "identifier" + }, + "attributeGroup": [{ + "attributeContentType": [ + "attributeContentType" + ] + }, + { + "attributeContentType": [ + "attributeContentType" + ] + } + ], + "imageDescription": { + "illuminationElevationAngle": 60.0 + } + } + ], + "resourceFormat": [ + { + "formatSpecification": { + "title": "specification 1" + }, + "amendmentNumber": "amendmentNumber", + "compressionMethod": "compressionMethod" + }, + { + "formatSpecification": { + "title": "specification 2" + }, + "amendmentNumber": "amendmentNumber", + "compressionMethod": "compressionMethod" + } + ], + "resourceMaintenance": [ + { + "frequency": "semi-annually", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType" + }, + { + "date": "2016-10-12", + "dateType": "dateType" + } + ], + "scope": [{ + "scopeCode": "scopeCode" + }, + { + "scopeCode": "scopeCode" + } + ], + "note": [ + "note0", + "note1" + ], + "contact": [{ + "role": "custodian", + "party": [{ + "contactId": "CID005" + }] + }] + }, + { + "frequency": "frequency1" + } + ], + "environmentDescription": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "supplementalInfo": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "extent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [ + { + "description": "geographic extent description", + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [ + { + "type": "Point", + "coordinates": [100.0, 0.0] + }, + { + "type": "LineString", + "coordinates": [ + [100.0, 0.0], + [101.0, 1.0] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, 67.663378], + [-161.440345, 67.630173], + [-161.294611, 67.656257], + [-161.228063, 67.625736], + [-161.247712, 67.585909], + [-161.334662, 67.591324], + [-161.566245, 67.491263], + [-161.812338, 67.455299], + [-161.825019, 67.40123], + [-162.128301, 67.414364], + [-162.167825, 67.363047], + [-162.383403, 67.293329], + [-162.633432, 67.272237], + [-162.645587, 67.356665], + [-162.369023, 67.455264], + [-162.287324, 67.551235], + [-162.171139, 67.559356], + [-161.99344, 67.646806], + [-161.857964, 67.620329], + [-161.769431, 67.629407], + [-161.74223, 67.663378] + ] + ] + } + ] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "Polygon", + "coordinates": [ + [ + [-10.0, 50.0], + [90.0, 50.0], + [90.0, 25.0], + [-10.0, 25.0], + [-10.0, 50.0] + ] + ] + }] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "Polygon", + "coordinates": [ + [ + [140, 65], + [-170, 65], + [-170, 55], + [140, 55], + [140, 65] + ] + ] + }] + }, + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [{ + "type": "Polygon", + "coordinates": [ + [ + [-162, 65], + [-161, 65], + [-161, 60], + [-162, 60], + [-162, 65] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [100, 55], + [102, 55], + [102, 50], + [100, 50], + [100, 55] + ] + ] + } + ] + } + ], + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timeInstant": { + "id": "id", + "description": "description", + "identifier": { + "identifier": "identifier", + "namespace": "namespace" + }, + "instantName": [ + "instantName0", + "instantName1" + ], + "geologicAge": { + "ageTimeScale": "ageTimeScale", + "ageEstimate": "ageEstimate", + "ageUncertainty": "ageUncertainty", + "ageExplanation": "ageExplanation", + "ageReference": [{ + "title": "citation title" + }] + } + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startGeologicAge": { + "ageTimeScale": "International Chronostratigraphic Chart", + "ageEstimate": "13.82" + } + } + } + ], + "verticalExtent": [ + { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "minValue": 9.9, + "maxValue": 9.9, + "crsId": { + "referenceSystemType": "referenceSystemType0", + "referenceSystemIdentifier": { + "identifier": "identifier0" + } + } + }, + { + "minValue": 99.99, + "maxValue": 99.99, + "crsId": { + "referenceSystemType": "referenceSystemType1", + "referenceSystemIdentifier": { + "identifier": "identifier1" + } + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [ + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [{ + "type": "Polygon", + "coordinates": [ + [ + [-30, 25], + [-20, 25], + [-20, 20], + [-30, 20], + [-30, 25] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [10, 40], + [15, 35], + [15, 30], + [10, 30], + [10, 40] + ] + ] + } + ] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "GeometryCollection", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometries": [{ + "type": "Point", + "coordinates": [100.0, 0.0] + }, + { + "type": "LineString", + "coordinates": [ + [101.0, 0.0], + [102.0, 1.0] + ] + } + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [10, 40], + [15, 35], + [15, 30], + [10, 30], + [10, 40] + ] + ] + } + ] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, 67.663378], + [-161.440345, 67.630173], + [-161.294611, 67.656257], + [-161.228063, 67.625736], + [-161.247712, 67.585909], + [-161.334662, 67.591324], + [-161.566245, 67.491263], + [-161.812338, 67.455299], + [-161.825019, 67.40123], + [-162.128301, 67.414364], + [-162.167825, 67.363047], + [-162.383403, 67.293329], + [-162.633432, 67.272237], + [-162.645587, 67.356665], + [-162.369023, 67.455264], + [-162.287324, 67.551235], + [-162.171139, 67.559356], + [-161.99344, 67.646806], + [-161.857964, 67.620329], + [-161.769431, 67.629407], + [-161.74223, 67.663378] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "FeatureCollection", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "features": [{ + "type": "Feature", + "id": "ALCC-BH55", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "Point", + "coordinates": [102.0, 0.5] + }, + "properties": { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "featureName": [ + "fake name" + ] + } + }, + { + "type": "Feature", + "id": "ALCC-BH56", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "LineString", + "coordinates": [ + [102.0, 0.0], + [103.0, 1.0], + [104.0, 0.0], + [105.0, 1.0] + ] + }, + "properties": { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + }, + { + "type": "Feature", + "id": "ALCC-Co81", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "GeometryCollection", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometries": [{ + "type": "Point", + "coordinates": [100.0, 0.0] + }, + { + "type": "LineString", + "coordinates": [ + [101.0, 0.0], + [102.0, 1.0] + ] + } + ] + }, + "properties": { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ] + }] + } + ] + } + ] + }, + "resourceLineage": [ + { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "scope": { + "scopeCode": "scopeCode" + }, + "citation": [{ + "title": "Lineage Title 1", + "date": [{ + "date": "2017-10-13", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + }, + { + "title": "Lineage Title 2", + "date": [{ + "date": "2017-10-13", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + } + ], + "source": [{ + "sourceId": "SRC001", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "sourceCitation": { + "title": "Source Citation Title SRC001", + "date": [{ + "date": "2017-10-13", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + }, + "metadataCitation": [{ + "title": "First Source Metadata Citation" + }, + { + "title": "Next Source Metadata Citation" + } + ], + "spatialResolution": { + "scaleFactor": 99999 + }, + "referenceSystem": { + "referenceSystemType": "referenceSystemType", + "referenceSystemIdentifier": { + "identifier": "identifier" + } + }, + "sourceProcessStep": [{ + "description": "description", + "timePeriod": { + "endDateTime": "2017-12-28T15:15" + } + }, + { + "description": "description", + "timePeriod": { + "endDateTime": "2017-12-28T15:16" + } + } + ], + "scope": { + "scopeCode": "scopeCode SRC001", + "scopeExtent": [{ + "temporalExtent": [{ + "timePeriod": { + "description": "publication date", + "startDateTime": "2016-11-01" + } + }] + }] + } + }, + { + "sourceId": "SRC002", + "description": "description", + "sourceCitation": { + "title": "Source Citation Title SRC002", + "date": [{ + "date": "2017-10-13", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + }, + "scope": { + "scopeCode": "scopeCode SRC002", + "scopeExtent": [{ + "temporalExtent": [{ + "timePeriod": { + "description": "publication date", + "startDateTime": "2016-11-02" + } + }] + }] + } + } + ], + "processStep": [{ + "stepId": "stepId", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "rationale": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "timePeriod": { + "id": "TimePeriod001", + "startDateTime": "2016-10-14T11:10:15.2-10:00", + "endDateTime": "2016-12-31", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "TimePeriod Identifier", + "namespace": "namespace" + }, + "periodName": [ + "periodName0", + "periodName1" + ], + "timeInterval": { + "interval": 9.9, + "units": "year" + }, + "duration": { + "months": 9 + } + }, + "processor": [{ + "role": "processor", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "reviewer", + "party": [{ + "contactId": "CID004" + }] + } + ], + "reference": [{ + "title": "Process Step Reference" + }, + { + "title": "Another Process Step Reference" + } + ], + "scope": { + "scopeCode": "scopeCode" + } + }, + { + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "timePeriod": { + "endDateTime": "2017-12-28T15:28" + } + } + ] + }, + { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + ], + "resourceDistribution": [ + { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "liabilityStatement": "Blah blah blah liability. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", + "distributor": [ + { + "contact": { + "role": "distributor", + "party": [{ + "contactId": "CID002" + }] + }, + "orderProcess": [ + { + "fees": "10.00USD", + "plannedAvailability": "2016-10-21T00:00:00", + "orderingInstructions": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "turnaround": "turnaround" + }, + { + "fees": "2.00USD" + } + ], + "transferOption": [ + { + "unitsOfDistribution": "units of distribution", + "transferSize": 9.9, + "onlineOption": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "offlineOption": [ + { + "mediumSpecification": { + "title": "My Medium Specification Title" + }, + "density": 9.9, + "units": "units", + "numberOfVolumes": 9, + "mediumFormat": [ + "mediumFormat0", + "mediumFormat1" + ], + "note": "note", + "identifier": { + "identifier": "Medium Identifier" + } + }, + { + "mediumSpecification": { + "title": "dium specification title 1" + } + } + ], + "transferFrequency": { + "months": 9 + }, + "distributionFormat": [ + { + "formatSpecification": { + "title": "CSV" + }, + "amendmentNumber": "2.0.8-beta", + "compressionMethod": "7ZipUp", + "technicalPrerequisite": "Blah blah blah 2.0 technical prerequisite" + }, + { + "formatSpecification": { + "title": "format specification title 1" + } + } + ] + }, + { + "transferSize": 10.9, + "onlineOption": [{ + "uri": "http://ISO.uri/adiwg/3" + }], + "distributionFormat": [{ + "formatSpecification": { + "title": "Microsoft Excel" + } + }] + } + ] + }, + { + "contact": { + "role": "distributor", + "party": [{ + "contactId": "CID003" + }] + } + } + ] + } + ], + "associatedResource": [ + { + "resourceType": [{ + "type": "modelHardcopy", + "name": "Hardcopy of Model" + }, + { + "type": "videoDigital", + "name": "Video of the Making" + } + ], + "associationType": "partOfSeamlessDatabase", + "initiativeType": "investigation", + "resourceCitation": { + "title": "Resource Citation Title" + }, + "metadataCitation": { + "title": "Metadata Citation Title" + } + }, + { + "resourceType": [{ + "type": "type0", + "name": "name0" + }, + { + "type": "type1", + "name": "name1" + } + ], + "associationType": "associationType", + "initiativeType": "initiativeType", + "resourceCitation": { + "title": "title" + }, + "metadataCitation": { + "title": "title" + } + } + ], + "additionalDocumentation": [ + { + "resourceType": [{ + "type": "webService", + "name": "ADIwg API" + }, + { + "type": "databaseDigital", + "name": "DMV Data" + } + ], + "citation": [{ + "title": "A Good Additional Document" + }, + { + "title": "A More Better Additional Document" + } + ] + }, + { + "resourceType": [{ + "type": "multimediaHardcopy", + "name": "Multi-Media Hard-Copy" + }, + { + "type": "physicalObject", + "name": "Lab Specimen" + } + ], + "citation": [{ + "title": "A Much Mo Betha Additional Document" + }] + } + ], + "funding": [ + { + "allocation": [{ + "sourceAllocationId": "A123FW009", + "amount": 9999.99, + "currency": "USD", + "sourceId": "CID005", + "recipientId": "CID006", + "matching": true, + "onlineResource": [{ + "uri": "http://adiwg.org" + }], + "comment": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "amount": 999.99, + "currency": "CAD" + } + ], + "timePeriod": { + "startDateTime": "2016-10-14T11:10:15.2-10:00", + "endDateTime": "2016-12-31", + "id": "TimePeriod001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "TimePeriod Identifier", + "namespace": "namespace" + }, + "periodName": [ + "periodName0", + "periodName1" + ], + "timeInterval": { + "interval": 9.9, + "units": "year" + }, + "duration": { + "months": 9 + } + } + }, + { + "allocation": [{ + "amount": 9999.99, + "currency": "EUR" + }], + "timePeriod": { + "startDateTime": "2016-10-14" + } + } + ] + }, + "dataDictionary": [ + { + "citation": { + "title": "title" + }, + "subject": [ + "subject0", + "subject1" + ], + "recommendedUse": [ + "use0", + "use1" + ], + "locale": [{ + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "responsibleParty": { + "role": "author", + "party": [{ + "contactId": "CID001" + }] + }, + "dictionaryFunctionalLanguage": "UML", + "dictionaryIncludedWithResource": true, + "domain": [{ + "domainId": "DID001", + "commonName": "commonName", + "codeName": "codeName", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "domainItem": [{ + "name": "name0", + "value": "value0", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + }, + { + "name": "name1", + "value": "value1", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + }, + { + "name": "name2", + "value": "value2", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + } + ] + }, + { + "domainId": "DID002", + "commonName": "commonName", + "codeName": "codeName", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "domainItem": [{ + "name": "name0", + "value": "value0", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + }] + } + ], + "entity": [{ + "entityId": "entityId0", + "commonName": "commonName", + "codeName": "codeName", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "entityReference": [{ + "title": "entity reference citation 0" + }], + "primaryKeyAttributeCodeName": [ + "primaryAttribute0", + "primaryAttribute1" + ], + "index": [{ + "codeName": "codeName0", + "allowDuplicates": false, + "attributeCodeName": [ + "attributeCodeName00", + "attributeCodeName01" + ] + }, + { + "codeName": "codeName1", + "allowDuplicates": true, + "attributeCodeName": [ + "attributeCodeName1" + ] + } + ], + "attribute": [{ + "commonName": "Department ID", + "codeName": "codeName", + "alias": [ + "alias0", + "alias1" + ], + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "attributeReference": { + "title": "attribute reference citation Department ID" + }, + "dataType": "dataType", + "allowNull": true, + "mustBeUnique": false, + "units": "units", + "domainId": "DID001", + "minValue": "minValue", + "maxValue": "maxValue" + }, + { + "commonName": "Employee ID", + "codeName": "empId", + "alias": [ + "employeeId", + "employeeNumber" + ], + "definition": "Numeric code to uniquely identify an employee of Acme Oil", + "attributeReference": { + "title": "attribute reference citation for Employee ID" + }, + "dataType": "numeric", + "allowNull": false, + "mustBeUnique": true, + "units": "meters", + "domainId": "DID002", + "minValue": "1000000", + "maxValue": "5000000" + } + ], + "foreignKey": [{ + "localAttributeCodeName": [ + "localAttributeCodeName0", + "localAttributeCodeName1" + ], + "referencedEntityCodeName": "referencedEntityCodeName", + "referencedAttributeCodeName": [ + "referencedAttributeCodeName0", + "referencedAttributeCodeName1" + ] + }, + { + "localAttributeCodeName": [ + "employeeID" + ], + "referencedEntityCodeName": "EMPLOYEE", + "referencedAttributeCodeName": [ + "employeeID" + ] + } + ] + }, + { + "entityId": "entityId1", + "commonName": "commonName", + "codeName": "codeName", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "entityReference": [{ + "title": "entity reference citation 1" + }], + "primaryKeyAttributeCodeName": [ + "primaryAttribute" + ], + "attribute": [{ + "commonName": "Supervisor", + "codeName": "codeName", + "alias": [ + "alias0", + "alias1" + ], + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "attributeReference": { + "title": "attribute reference citation for supervisor" + }, + "dataType": "dataType", + "allowNull": true, + "mustBeUnique": false, + "units": "units", + "domainId": "DID001", + "minValue": "minValue", + "maxValue": "maxValue" + }, + { + "commonName": "Grade", + "codeName": "empId", + "alias": [ + "employeeId", + "employeeNumber" + ], + "definition": "Numeric code to uniquely identify an employee of Acme Oil", + "attributeReference": { + "title": "attribute reference citation for grade" + }, + "dataType": "numeric", + "allowNull": false, + "mustBeUnique": true, + "units": "meters", + "domainId": "DID002", + "minValue": "1000000", + "maxValue": "5000000" + } + ] + } + ] + }, + { + "citation": { + "title": "My Dictionary Title" + }, + "subject": [ + "birds", + "loons" + ], + "recommendedUse": [ + "Reconstruct database" + ], + "locale": [{ + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }], + "responsibleParty": { + "role": "author", + "party": [{ + "contactId": "CID006" + }] + }, + "dictionaryFunctionalLanguage": "MSSQL", + "dictionaryIncludedWithResource": false + } + ], + "metadataRepository": [ + { + "repository": "USGS ScienceBase", + "metadataStandard": "FGDC" + }, + { + "repository": "data.gov", + "metadataStandard": "iso19115_2" + } + ] + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/identifier.json b/test/writers/dcat_us/testData/identifier.json new file mode 100644 index 000000000..fff11049b --- /dev/null +++ b/test/writers/dcat_us/testData/identifier.json @@ -0,0 +1,93 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.0.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Person 001" + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "myMetadataIdentifierID", + "namespace": "gov.sciencebase.catalog", + "description": "metadata identifier" + }, + "metadataContact": [ + { + "role": "metadataContact", + "party": [ + { + "contactId": "CID001" + } + ] + } + ] + }, + "resourceInfo": { + "resourceType": [ + { + "type": "type", + "name": "name" + } + ], + "citation": { + "title": "myCitationTitle", + "identifier": [ + { + "identifier": "myDoiIdentifier0", + "namespace": "DOI", + "description": "myDescription0" + }, + { + "identifier": "myMetadataIdentifierID", + "namespace": "gov.sciencebase.catalog" + }, + { + "identifier": "myIdentifier1", + "namespace": "mySchema1", + "description": "myDescription1" + }, + { + "identifier": "myIdentifier1", + "namespace": "mySchema1", + "description": "myDescription1" + }, + { + "identifier": "myIdentifier0", + "namespace": "mySchema0", + "description": "myDescription1" + } + ], + "onlineResource": [ + { + "uri": "http://myOnlineResource-namespace.com" + } + ] + }, + "abstract": "myBody", + "status": [ + "status" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [ + { + "contactId": "CID001" + } + ] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + } + } + } +} diff --git a/test/writers/dcat_us/testData/identifier2.json b/test/writers/dcat_us/testData/identifier2.json new file mode 100644 index 000000000..72df8d0ee --- /dev/null +++ b/test/writers/dcat_us/testData/identifier2.json @@ -0,0 +1,93 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.0.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Person 001" + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "myMetadataIdentifierID", + "namespace": "gov.sciencebase.catalog", + "description": "metadata identifier" + }, + "metadataContact": [ + { + "role": "metadataContact", + "party": [ + { + "contactId": "CID001" + } + ] + } + ] + }, + "resourceInfo": { + "resourceType": [ + { + "type": "type", + "name": "name" + } + ], + "citation": { + "title": "myCitationTitle", + "identifier": [ + { + "identifier": "myDoiIdentifier0", + "namespace": "ISBN", + "description": "myDescription0" + }, + { + "identifier": "myMetadataIdentifierID", + "namespace": "gov.sciencebase.catalog" + }, + { + "identifier": "myIdentifier1", + "namespace": "mySchema1", + "description": "myDescription1" + }, + { + "identifier": "myIdentifier1", + "namespace": "mySchema1", + "description": "myDescription1" + }, + { + "identifier": "myIdentifier0", + "namespace": "mySchema0", + "description": "myDescription1" + } + ], + "onlineResource": [ + { + "uri": "http://myOnlineResource-doi.com" + } + ] + }, + "abstract": "myBody", + "status": [ + "status" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [ + { + "contactId": "CID001" + } + ] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + } + } + } +} diff --git a/test/writers/dcat_us/testData/isPartOf.json b/test/writers/dcat_us/testData/isPartOf.json new file mode 100644 index 000000000..73d34a6d9 --- /dev/null +++ b/test/writers/dcat_us/testData/isPartOf.json @@ -0,0 +1,2461 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "otherResourceLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "credit": [ + "Lim, Sonny B. - Guitar", + "Peterson, Jeff - Slack Key Guitar", + "Kamakawiwo'ole, Israel - Vocal" + ], + "timePeriod": { + "description": "ground condition", + "startDateTime": "2016-06-01", + "endDateTime": "2016-08-15" + }, + "temporalResolution": [ + { + "years": 1, + "months": 8, + "days": 13 + }, + { + "seconds": 5 + } + ], + "spatialReferenceSystem": [ + { + "referenceSystemType": "referenceSystemType0", + "referenceSystemIdentifier": { + "identifier": "spatial reference system identifier", + "namespace": "namespace", + "version": "version", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + } + }, + { + "referenceSystemType": "referenceSystemType1" + }, + { + "referenceSystemIdentifier": { + "identifier": "identifier2" + } + }, + { + "referenceSystemType": "projected", + "referenceSystemIdentifier": { + "identifier": "Zone 10", + "namespace": "UTM", + "description": "Universal Transverse Mercator Zone 10 Seattle, Washington" + } + }, + { + "referenceSystemType": "geodeticGeographic2D", + "referenceSystemIdentifier": { + "identifier": "4326", + "namespace": "urn:ogc:def:crs:EPSG", + "description": "epsg projection 4326 - wgs 84 - Latitude Longitude", + "authority": { + "title": "European Petroleum Survey Group" + } + } + }, + { + "referenceSystemType": "projected", + "referenceSystemWKT": "PROJCS ['Wyoming 4901, Eastern Zone (1983, meters)', GEOGCS ['GRS 80', DATUM ['GRS 80', SPHEROID ['GRS 80', 6378137.000000, 298.257222]], PRIMEM ['Greenwich', 0.000000 ], UNIT ['Decimal Degree', 0.01745329251994330]], PROJECTION ['Transverse Mercator'], PARAMETER ['Scale_Factor', 0.999938], PARAMETER ['Central_Meridian', -105.166667], PARAMETER ['Latitude_Of_Origin', 40.500000], PARAMETER ['False_Easting', 200000.000000], UNIT ['Meter', 1.000000000000]]" + }, + { + "referenceSystemType": "geodeticGeographic2D", + "referenceSystemParameterSet": { + "geodetic": { + "datumIdentifier": { + "identifier": "identifier" + }, + "ellipsoidIdentifier": { + "identifier": "identifier" + }, + "semiMajorAxis": 9.9, + "axisUnits": "axisUnits", + "denominatorOfFlatteningRatio": 9.9 + } + } + } + ], + "spatialRepresentationType": [ + "vector", + "stereoModel" + ], + "spatialRepresentation": [ + { + "gridRepresentation": { + "numberOfDimensions": 9, + "dimension": [{ + "dimensionType": "column", + "dimensionSize": 9, + "resolution": { + "type": "distance", + "value": 9.9, + "unitOfMeasure": "feet" + }, + "dimensionTitle": "COLUMN TITLE", + "dimensionDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + }, + { + "dimensionType": "row", + "dimensionSize": 9 + } + ], + "cellGeometry": "voxel", + "transformParamsAvailability": true + } + }, + { + "vectorRepresentation": { + "topologyLevel": "fullTopology3D", + "vectorObject": [{ + "objectType": "object Type 0", + "objectCount": 9 + }, + { + "objectType": "object Type 1", + "objectCount": 9 + } + ] + } + }, + { + "georectifiedRepresentation": { + "gridRepresentation": { + "numberOfDimensions": 9, + "dimension": [ + { + "dimensionType": "row", + "dimensionSize": 90 + }, + { + "dimensionType": "column", + "dimensionSize": 91 + } + ], + "cellGeometry": "cellGeometry", + "transformationParameterAvailable": true + }, + "checkPointAvailable": true, + "checkPointDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "cornerPoints": [ + [ + 0.0, + 0.0 + ], + [ + 0.0, + 1.0 + ], + [ + 1.0, + 1.0 + ], + [ + 1.0, + 0.0 + ] + ], + "centerPoint": [ + 0.5, + 0.5 + ], + "pointInPixel": "upperRight", + "transformationDimensionDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "transformationDimensionMapping": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + }, + { + "georeferenceableRepresentation": { + "gridRepresentation": { + "numberOfDimensions": 9, + "dimension": [{ + "dimensionType": "row", + "dimensionSize": 90 + }, + { + "dimensionType": "column", + "dimensionSize": 91 + } + ], + "cellGeometry": "cellGeometry", + "transformationParameterAvailable": true + }, + "controlPointAvailable": true, + "orientationParameterAvailable": true, + "orientationParameterDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "georeferencedParameter": "Georeferenced Parameter 00", + "parameterCitation": [{ + "title": "title0" + }, + { + "title": "title1" + } + ] + } + } + ], + "spatialResolution": [ + { + "scaleFactor": 99999 + }, { + "measure": { + "type": "distance", + "value": 99.9, + "unitOfMeasure": "unitOfMeasure" + } + }, { + "levelOfDetail": "levelOfDetail" + }, { + "geographicResolution": { + "latitudeResolution": 9.9, + "longitudeResolution": 9.9, + "unitOfMeasure": "unitOfMeasure" + } + }, { + "bearingDistanceResolution": { + "distanceResolution": 9.9, + "distanceUnitOfMeasure": "distanceUnitOfMeasure", + "bearingResolution": 9.9, + "bearingUnitOfMeasure": "bearingUnitOfMeasure", + "bearingReferenceDirection": "north", + "bearingReferenceMeridian": "assumed" + } + }, { + "coordinateResolution": { + "abscissaResolutionX": 9.9, + "ordinateResolutionY": 9.9, + "unitOfMeasure": "unitOfMeasure" + } + }], + "keyword": [ + { + "keyword": [ + { + "keyword": "Barrow" + }, + { + "keyword": "Prudhoe Bay" + }, + { + "keyword": "Kaparuk" + } + ], + "keywordType": "place", + "thesaurus": { + "title": "USGS Geographic Names Information System" + } + }, + { + "keyword": [ + { + "keyword": "Brown Bear", + "keywordId": "TSN12365741" + }, + { + "keyword": "Polar Bear", + "keywordId": "TSN125415741" + }, + { + "keyword": "Black Bear", + "keywordId": "TSN123689426" + }, + { + "keyword": "Cinnamon Bear", + "keywordId": "TSN123842165" + }, + { + "keyword": "Teddy Bear" + } + ], + "keywordType": "taxon", + "thesaurus": { + "title": "ITIS - Integrated Taxonomic Information System" + } + }, + { + "keyword": [ + { + "keyword": "butter" + }, + { + "keyword": "sugar" + }, + { + "keyword": "eggs" + } + ], + "keywordType": "theme", + "thesaurus": { + "title": "Exploring Cookies" + } + }, + { + "keyword": [ + { + "keyword": "inlandWaters", + "keywordId": "012" + }, + { + "keyword": "location", + "keywordId": "013" + }, + { + "keyword": "climatologyMeteorologyAtmosphere", + "keywordId": "004" + } + ], + "keywordType": "isoTopicCategory", + "thesaurus": { + "title": "ISO Topic Categories" + } + }, + { + "keyword": [ + { + "keyword": "carbon dating" + }, + { + "keyword": "ionization" + } + ], + "keywordType": "method", + "thesaurus": { + "title": "Lineage Methodology keyword set" + } + } + ], + "taxonomy": [ + { + "taxonomicSystem": [{ + "citation": { + "title": "ITIS - Integrated Taxonomic Information System", + "alternateTitle": [ + "Citation for ITIS" + ], + "date": [{ + "date": "2013-06-22", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + }, + "modifications": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "citation": { + "title": "Some OTHER Taxonomic System", + "date": [{ + "date": "2013-06-22", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + } + } + ], + "generalScope": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identificationReference": [{ + "title": "citation", + "identifier": [{ + "identifier": "identifier0", + "namespace": "namespace0", + "version": "version0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "title0", + "date": [{ + "date": "2013-06-22", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + } + }] + }, + { + "title": "citation1", + "identifier": [{ + "identifier": "identifier1", + "namespace": "namespace1", + "version": "version1", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "title1", + "date": [{ + "date": "2013-06-22", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + } + }] + } + ], + "observer": [{ + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "editor", + "party": [{ + "contactId": "CID001" + }] + } + ], + "identificationProcedure": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identificationCompleteness": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "voucher": [{ + "specimen": "bear claw", + "repository": { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + }, + { + "specimen": "moose tooth", + "repository": { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + } + ], + "taxonomicClassification": [{ + "taxonomicLevel": "taxonomicLevel0", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [{ + "taxonomicSystemId": "taxonomicSystemId00", + "taxonomicLevel": "taxonomicLevel00", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [{ + "taxonomicLevel": "taxonomicLevel000", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [{ + "taxonomicSystemId": "taxonomicSystemId0000.1", + "taxonomicLevel": "taxonomicLevel0000.1", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [] + }, + { + "taxonomicSystemId": "taxonomicSystemId0000.2", + "taxonomicLevel": "taxonomicLevel0000.2", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [] + } + ] + }] + }, + { + "taxonomicLevel": "taxonomicLevel01", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [{ + "taxonomicLevel": "taxonomicLevel010", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [] + }] + } + ] + }, + { + "taxonomicLevel": "taxonomicLevel0201", + "taxonomicName": "taxonomicName" + } + ] + }], + "graphicOverview": [ + { + "fileName": "fileName 0", + "fileDescription": "fileDescription 0", + "fileType": "fileType 0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName 1", + "fileDescription": "fileDescription 1", + "fileType": "fileType 1", + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/1" + }] + } + ], + "constraint": [ + { + "type": "use", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "reference": [{ + "title": "title0" + }, + { + "title": "title1" + } + ], + "releasability": { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "addressee": [{ + "role": "client", + "party": [{ + "contactId": "CID001" + }] + }, + { + "role": "stakeholder", + "party": [{ + "contactId": "CID002" + }, + { + "contactId": "CID003" + } + ] + } + ], + "disseminationConstraint": [ + "restricted", + "unrestricted" + ] + }, + "responsibleParty": [{ + "role": "coAuthor", + "party": [{ + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "rightsHolder", + "party": [{ + "contactId": "CID005" + }] + } + ] + }, + { + "type": "legal", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "legal": { + "useConstraint": [ + "threatenedOrEndangered", + "otherRestrictions" + ], + "accessConstraint": [ + "otherRestrictions", + "in-confidence" + ], + "otherConstraint": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure." + ] + } + }, + { + "type": "security", + "security": { + "classification": "secret", + "classificationSystem": "Classification System Name", + "userNote": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "handlingDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ], + "coverageDescription": [ + { + "coverageName": "My First Coverage", + "coverageDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "processingLevelCode": { + "identifier": "processing level code" + }, + "attributeGroup": [{ + "attributeContentType": [ + "thematicClassification", + "physicalMeasurement" + ], + "attribute": [{ + "sequenceIdentifier": "sequenceIdentifier 1", + "sequenceIdentifierType": "sequenceIdentifierType", + "attributeDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "attributeIdentifier": [{ + "identifier": "identifier 1" + }, + { + "identifier": "identifier 2" + } + ], + "minValue": 9.9, + "maxValue": 9.9, + "units": "units", + "scaleFactor": 999, + "offset": 999, + "meanValue": 9.9, + "numberOfValues": 999, + "standardDeviation": 9.9, + "bitsPerValue": 999, + "boundMin": 9.9, + "boundMax": 9.9, + "boundUnits": "boundUnits", + "peakResponse": 9.9, + "toneGradations": 999, + "bandBoundaryDefinition": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "nominalSpatialResolution": 9.9, + "transferFunctionType": "transferFunctionType", + "transmittedPolarization": "transmittedPolarization", + "detectedPolarization": "detectedPolarization" + }, + { + "sequenceIdentifier": "sequenceIdentifier 2", + "sequenceIdentifierType": "sequenceIdentifierType", + "attributeDescription": "attributeDescription", + "attributeIdentifier": [{ + "identifier": "identifier" + }], + "minValue": 9.9, + "maxValue": 9.9, + "units": "units", + "scaleFactor": 999, + "offset": 999, + "meanValue": 9.9, + "numberOfValues": 999, + "standardDeviation": 9.9, + "bitsPerValue": 999 + } + ] + }, + { + "attributeContentType": [ + "modelResult" + ] + } + ], + "imageDescription": { + "illuminationElevationAngle": 9.9, + "illuminationAzimuthAngle": 9.9, + "imagingCondition": "imagingCondition", + "imageQualityCode": { + "identifier": "identifier" + }, + "cloudCoverPercent": 9.9, + "compressionQuantity": 9, + "triangulationIndicator": true, + "radiometricCalibrationAvailable": true, + "cameraCalibrationAvailable": true, + "filmDistortionAvailable": true, + "lensDistortionAvailable": true + } + }, + { + "coverageName": "My Second Coverage", + "coverageDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "processingLevelCode": { + "identifier": "identifier" + }, + "attributeGroup": [{ + "attributeContentType": [ + "attributeContentType" + ] + }, + { + "attributeContentType": [ + "attributeContentType" + ] + } + ], + "imageDescription": { + "illuminationElevationAngle": 60.0 + } + } + ], + "resourceFormat": [ + { + "formatSpecification": { + "title": "specification 1" + }, + "amendmentNumber": "amendmentNumber", + "compressionMethod": "compressionMethod" + }, + { + "formatSpecification": { + "title": "specification 2" + }, + "amendmentNumber": "amendmentNumber", + "compressionMethod": "compressionMethod" + } + ], + "resourceMaintenance": [ + { + "frequency": "semi-annually", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType" + }, + { + "date": "2016-10-12", + "dateType": "dateType" + } + ], + "scope": [{ + "scopeCode": "scopeCode" + }, + { + "scopeCode": "scopeCode" + } + ], + "note": [ + "note0", + "note1" + ], + "contact": [{ + "role": "custodian", + "party": [{ + "contactId": "CID005" + }] + }] + }, + { + "frequency": "frequency1" + } + ], + "environmentDescription": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "supplementalInfo": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "extent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [ + { + "description": "geographic extent description", + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [ + { + "type": "Point", + "coordinates": [100.0, 0.0] + }, + { + "type": "LineString", + "coordinates": [ + [100.0, 0.0], + [101.0, 1.0] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, 67.663378], + [-161.440345, 67.630173], + [-161.294611, 67.656257], + [-161.228063, 67.625736], + [-161.247712, 67.585909], + [-161.334662, 67.591324], + [-161.566245, 67.491263], + [-161.812338, 67.455299], + [-161.825019, 67.40123], + [-162.128301, 67.414364], + [-162.167825, 67.363047], + [-162.383403, 67.293329], + [-162.633432, 67.272237], + [-162.645587, 67.356665], + [-162.369023, 67.455264], + [-162.287324, 67.551235], + [-162.171139, 67.559356], + [-161.99344, 67.646806], + [-161.857964, 67.620329], + [-161.769431, 67.629407], + [-161.74223, 67.663378] + ] + ] + } + ] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "Polygon", + "coordinates": [ + [ + [-10.0, 50.0], + [90.0, 50.0], + [90.0, 25.0], + [-10.0, 25.0], + [-10.0, 50.0] + ] + ] + }] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "Polygon", + "coordinates": [ + [ + [140, 65], + [-170, 65], + [-170, 55], + [140, 55], + [140, 65] + ] + ] + }] + }, + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [{ + "type": "Polygon", + "coordinates": [ + [ + [-162, 65], + [-161, 65], + [-161, 60], + [-162, 60], + [-162, 65] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [100, 55], + [102, 55], + [102, 50], + [100, 50], + [100, 55] + ] + ] + } + ] + } + ], + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timeInstant": { + "id": "id", + "description": "description", + "identifier": { + "identifier": "identifier", + "namespace": "namespace" + }, + "instantName": [ + "instantName0", + "instantName1" + ], + "geologicAge": { + "ageTimeScale": "ageTimeScale", + "ageEstimate": "ageEstimate", + "ageUncertainty": "ageUncertainty", + "ageExplanation": "ageExplanation", + "ageReference": [{ + "title": "citation title" + }] + } + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startGeologicAge": { + "ageTimeScale": "International Chronostratigraphic Chart", + "ageEstimate": "13.82" + } + } + } + ], + "verticalExtent": [ + { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "minValue": 9.9, + "maxValue": 9.9, + "crsId": { + "referenceSystemType": "referenceSystemType0", + "referenceSystemIdentifier": { + "identifier": "identifier0" + } + } + }, + { + "minValue": 99.99, + "maxValue": 99.99, + "crsId": { + "referenceSystemType": "referenceSystemType1", + "referenceSystemIdentifier": { + "identifier": "identifier1" + } + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [ + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [{ + "type": "Polygon", + "coordinates": [ + [ + [-30, 25], + [-20, 25], + [-20, 20], + [-30, 20], + [-30, 25] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [10, 40], + [15, 35], + [15, 30], + [10, 30], + [10, 40] + ] + ] + } + ] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "GeometryCollection", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometries": [{ + "type": "Point", + "coordinates": [100.0, 0.0] + }, + { + "type": "LineString", + "coordinates": [ + [101.0, 0.0], + [102.0, 1.0] + ] + } + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [10, 40], + [15, 35], + [15, 30], + [10, 30], + [10, 40] + ] + ] + } + ] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, 67.663378], + [-161.440345, 67.630173], + [-161.294611, 67.656257], + [-161.228063, 67.625736], + [-161.247712, 67.585909], + [-161.334662, 67.591324], + [-161.566245, 67.491263], + [-161.812338, 67.455299], + [-161.825019, 67.40123], + [-162.128301, 67.414364], + [-162.167825, 67.363047], + [-162.383403, 67.293329], + [-162.633432, 67.272237], + [-162.645587, 67.356665], + [-162.369023, 67.455264], + [-162.287324, 67.551235], + [-162.171139, 67.559356], + [-161.99344, 67.646806], + [-161.857964, 67.620329], + [-161.769431, 67.629407], + [-161.74223, 67.663378] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "FeatureCollection", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "features": [{ + "type": "Feature", + "id": "ALCC-BH55", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "Point", + "coordinates": [102.0, 0.5] + }, + "properties": { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "featureName": [ + "fake name" + ] + } + }, + { + "type": "Feature", + "id": "ALCC-BH56", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "LineString", + "coordinates": [ + [102.0, 0.0], + [103.0, 1.0], + [104.0, 0.0], + [105.0, 1.0] + ] + }, + "properties": { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + }, + { + "type": "Feature", + "id": "ALCC-Co81", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "GeometryCollection", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometries": [{ + "type": "Point", + "coordinates": [100.0, 0.0] + }, + { + "type": "LineString", + "coordinates": [ + [101.0, 0.0], + [102.0, 1.0] + ] + } + ] + }, + "properties": { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ] + }] + } + ] + } + ] + }, + "associatedResource": [ + { + "resourceType": [ + { + "type": "modelHardcopy", + "name": "Hardcopy of Model" + }, + { + "type": "videoDigital", + "name": "Video of the Making" + } + ], + "associationType": "partOfSeamlessDatabase", + "initiativeType": "investigation", + "resourceCitation": { + "title": "Resource Citation Title" + }, + "metadataCitation": { + "title": "Metadata Citation Title" + } + }, + { + "resourceType": [ + { + "type": "type0", + "name": "name0" + }, + { + "type": "type1", + "name": "name1" + } + ], + "associationType": "associationType", + "initiativeType": "initiativeType", + "resourceCitation": { + "title": "title" + }, + "metadataCitation": { + "title": "title" + } + }, + { + "resourceType": [ + { + "type": "type0", + "name": "name0" + }, + { + "type": "type1", + "name": "name1" + } + ], + "associationType": "collectiveTitle", + "initiativeType": "collection", + "resourceCitation": { + "title": "title", + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + } + ] + }, + "metadataCitation": { + "title": "title" + } + } + ] + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/issued.json b/test/writers/dcat_us/testData/issued.json new file mode 100644 index 000000000..e3aa1af80 --- /dev/null +++ b/test/writers/dcat_us/testData/issued.json @@ -0,0 +1,1108 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + } + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/keyword.json b/test/writers/dcat_us/testData/keyword.json new file mode 100644 index 000000000..02c7d53d2 --- /dev/null +++ b/test/writers/dcat_us/testData/keyword.json @@ -0,0 +1,254 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.0.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Person 001" + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "myMetadataIdentifierID", + "namespace": "gov.sciencebase.catalog", + "description": "metadata identifier" + }, + "metadataContact": [ + { + "role": "metadataContact", + "party": [ + { + "contactId": "CID001" + } + ] + } + ] + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + ], + "party": [ + { + "contactId": "CID001" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID001" + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID001" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "keyword": [ + { + "keyword": [ + { + "keyword": "Barrow" + }, + { + "keyword": "Prudhoe Bay" + }, + { + "keyword": "Kaparuk" + } + ], + "keywordType": "place", + "thesaurus": { + "title": "USGS Geographic Names Information System" + } + }, + { + "keyword": [ + { + "keyword": "Brown Bear", + "keywordId": "TSN12365741" + }, + { + "keyword": "Polar Bear", + "keywordId": "TSN125415741" + }, + { + "keyword": "Black Bear", + "keywordId": "TSN123689426" + }, + { + "keyword": "Cinnamon Bear", + "keywordId": "TSN123842165" + }, + { + "keyword": "Teddy Bear" + } + ], + "keywordType": "taxon", + "thesaurus": { + "title": "ITIS - Integrated Taxonomic Information System" + } + }, + { + "keyword": [ + { + "keyword": "butter" + }, + { + "keyword": "sugar" + }, + { + "keyword": "eggs" + } + ], + "keywordType": "theme", + "thesaurus": { + "title": "Exploring Cookies" + } + }, + { + "keyword": [ + { + "keyword": "inlandWaters", + "keywordId": "012" + }, + { + "keyword": "location", + "keywordId": "013" + }, + { + "keyword": "climatologyMeteorologyAtmosphere", + "keywordId": "004" + } + ], + "keywordType": "isoTopicCategory", + "thesaurus": { + "title": "ISO Topic Categories" + } + }, + { + "keyword": [ + { + "keyword": "carbon dating" + }, + { + "keyword": "ionization" + } + ], + "keywordType": "method", + "thesaurus": { + "title": "Lineage Methodology keyword set" + } + } + ] + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/landingPage.json b/test/writers/dcat_us/testData/landingPage.json new file mode 100644 index 000000000..e30757b12 --- /dev/null +++ b/test/writers/dcat_us/testData/landingPage.json @@ -0,0 +1,1107 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0", + "function": "landingPage" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + } + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/license.json b/test/writers/dcat_us/testData/license.json new file mode 100644 index 000000000..8d062caea --- /dev/null +++ b/test/writers/dcat_us/testData/license.json @@ -0,0 +1,1217 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "constraint": [ + { + "type": "use", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "reference": [{ + "title": "title0" + }, + { + "title": "title1" + } + ], + "releasability": { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "addressee": [ + { + "role": "client", + "party": [{ + "contactId": "CID001" + }] + }, + { + "role": "stakeholder", + "party": [ + { + "contactId": "CID002" + }, + { + "contactId": "CID003" + } + ] + } + ], + "disseminationConstraint": [ + "restricted", + "unrestricted" + ] + }, + "responsibleParty": [{ + "role": "coAuthor", + "party": [{ + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "rightsHolder", + "party": [{ + "contactId": "CID005" + }] + } + ] + }, + { + "type": "legal", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "legal": { + "useConstraint": [ + "threatenedOrEndangered", + "otherRestrictions" + ], + "accessConstraint": [ + "otherRestrictions", + "in-confidence" + ], + "otherConstraint": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure." + ] + } + }, + { + "type": "security", + "security": { + "classification": "secret", + "classificationSystem": "Classification System Name", + "userNote": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "handlingDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ] + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/modified.json b/test/writers/dcat_us/testData/modified.json new file mode 100644 index 000000000..11b748905 --- /dev/null +++ b/test/writers/dcat_us/testData/modified.json @@ -0,0 +1,368 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataContact": [ + { + "role": "metadataContact", + "party": [ + { + "contactId": "CID001" + } + ] + } + ] + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + } + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/modified2.json b/test/writers/dcat_us/testData/modified2.json new file mode 100644 index 000000000..9109ad356 --- /dev/null +++ b/test/writers/dcat_us/testData/modified2.json @@ -0,0 +1,376 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataContact": [ + { + "role": "metadataContact", + "party": [ + { + "contactId": "CID001" + } + ] + } + ] + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2019-06-22T16:15:14", + "dateType": "revision" + }, + { + "date": "2022-06-22T16:15:14", + "dateType": "revision" + }, + { + "date": "2018-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + } + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/publisher.json b/test/writers/dcat_us/testData/publisher.json new file mode 100644 index 000000000..e6f204a70 --- /dev/null +++ b/test/writers/dcat_us/testData/publisher.json @@ -0,0 +1,177 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal" + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual" + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "myMetadataIdentifierID", + "namespace": "gov.sciencebase.catalog", + "description": "metadata identifier" + }, + "metadataContact": [ + { + "role": "metadataContact", + "party": [ + { + "contactId": "CID001" + } + ] + } + ] + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "person", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "publisher", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + } + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/publisher2.json b/test/writers/dcat_us/testData/publisher2.json new file mode 100644 index 000000000..287f6bb3d --- /dev/null +++ b/test/writers/dcat_us/testData/publisher2.json @@ -0,0 +1,413 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": ["CID002", "CID003"], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [ + { + "type": "use", + "useLimitation": ["useLimitation0", "useLimitation1"] + }, + { + "type": "legal", + "legal": { + "useConstraint": ["useConstraint0", "useConstraint1"], + "accessConstraint": ["accessConstraint0", "accessConstraint1"], + "otherConstraint": ["otherConstraint0", "otherConstraint1"] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [ + { + "uri": "http://ISO.uri/adiwg/0" + } + ] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": ["voice", "sms", "message"] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": ["voice", "message"] + } + ], + "address": [ + { + "addressType": ["mailing", "physical"], + "description": "work location", + "deliveryPoint": ["address line 1", "address line 2"], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": ["mailing"], + "description": "telework location", + "deliveryPoint": ["address line 3"], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": ["e.mail@address.com1", "e.mail@address.com2"], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": ["hoursOfService1", "hoursOfService2"], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": ["CID005"], + "logoGraphic": [ + { + "fileName": "fileName" + } + ], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": ["voice"] + } + ], + "address": [ + { + "addressType": ["addressType"], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + } + ], + "electronicMailAddress": ["e.mail@address.com2"], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": ["hoursOfService"], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": ["voice"] + } + ], + "address": [ + { + "addressType": ["addressType"], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + } + ] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": ["CID003"], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": ["voice"] + } + ], + "address": [ + { + "addressType": ["addressType"], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + } + ] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": ["CID002"], + "contactType": "individual", + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": ["voice"] + } + ], + "address": [ + { + "addressType": ["addressType"], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + } + ] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "myMetadataIdentifierID", + "namespace": "gov.sciencebase.catalog", + "description": "metadata identifier" + }, + "metadataContact": [ + { + "role": "metadataContact", + "party": [ + { + "contactId": "CID001" + } + ] + } + ] + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "person", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [ + { + "containsData": true, + "geographicElement": [ + { + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, 67.663378], + [-161.440345, 67.630173], + [-161.294611, 67.656257], + [-161.228063, 67.625736], + [-161.247712, 67.585909], + [-161.334662, 67.591324], + [-161.566245, 67.491263], + [-161.812338, 67.455299], + [-161.825019, 67.40123], + [-162.128301, 67.414364], + [-162.167825, 67.363047], + [-162.383403, 67.293329], + [-162.633432, 67.272237], + [-162.645587, 67.356665], + [-162.369023, 67.455264], + [-162.287324, 67.551235], + [-162.171139, 67.559356], + [-161.99344, 67.646806], + [-161.857964, 67.620329], + [-161.769431, 67.629407], + [-161.74223, 67.663378] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": ["Agashashok River", "Camp Mosquito"], + "identifier": [ + { + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": ["string 1", "string 2"] + } + } + ] + } + ] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funding", + "party": [ + { + "contactId": "CID003", + "organizationMembers": ["CID004", "CID001"] + } + ] + }, + { + "role": "originator", + "party": [ + { + "contactId": "CID004" + } + ] + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "status": ["incomplete", "suspended"], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [ + { + "contactId": "CID004" + } + ] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + } + }, + "resourceDistribution": [ + { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "liabilityStatement": "Blah blah blah liability. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", + "distributor": [ + { + "contact": { + "role": "distributor", + "party": [ + { + "contactId": "CID002" + } + ] + } + }, + { + "contact": { + "role": "distributor", + "party": [ + { + "contactId": "CID003" + } + ] + } + } + ] + } + ] + } +} diff --git a/test/writers/dcat_us/testData/references.json b/test/writers/dcat_us/testData/references.json new file mode 100644 index 000000000..88350dde9 --- /dev/null +++ b/test/writers/dcat_us/testData/references.json @@ -0,0 +1,1231 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + } + }, + "associatedResource": [ + { + "resourceType": [{ + "type": "modelHardcopy", + "name": "Hardcopy of Model" + }, + { + "type": "videoDigital", + "name": "Video of the Making" + } + ], + "associationType": "partOfSeamlessDatabase", + "initiativeType": "investigation", + "resourceCitation": { + "title": "Resource Citation Title", + "onlineResource":[ + { + "uri":"http://ISO.uri/adiwg/0" + }, + { + "uri":"http://ISO.uri/adiwg/1" + }, + { + "uri":"http://ISO.uri/adiwg/2" + } + ] + }, + "metadataCitation": { + "title": "Metadata Citation Title" + } + }, + { + "resourceType": [{ + "type": "type0", + "name": "name0" + }, + { + "type": "type1", + "name": "name1" + } + ], + "associationType": "associationType", + "initiativeType": "initiativeType", + "resourceCitation": { + "title": "title", + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/3" + }, + { + "uri": "http://ISO.uri/adiwg/4" + }, + { + "uri": "http://ISO.uri/adiwg/5" + } + ] + }, + "metadataCitation": { + "title": "title" + } + } + ], + "additionalDocumentation": [ + { + "resourceType": [{ + "type": "webService", + "name": "ADIwg API" + }, + { + "type": "databaseDigital", + "name": "DMV Data" + } + ], + "citation": [ + { + "title": "A Good Additional Document", + "onlineResource":[ + { + "uri":"http://ISO.uri/adiwg/6" + }, + { + "uri":"http://ISO.uri/adiwg/7" + } + ] + }, + { + "title": "A More Better Additional Document", + "onlineResource":[ + { + "uri":"http://ISO.uri/adiwg/8" + }, + { + "uri":"http://ISO.uri/adiwg/9" + } + ] + } + ] + }, + { + "resourceType": [{ + "type": "multimediaHardcopy", + "name": "Multi-Media Hard-Copy" + }, + { + "type": "physicalObject", + "name": "Lab Specimen" + } + ], + "citation": [ + { + "title": "A Much Mo Betha Additional Document", + "onlineResource":[ + { + "uri":"http://ISO.uri/adiwg/10" + }, + { + "uri":"http://ISO.uri/adiwg/11" + } + ] + } + ] + } + ] + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/rights.json b/test/writers/dcat_us/testData/rights.json new file mode 100644 index 000000000..cc2b7fd94 --- /dev/null +++ b/test/writers/dcat_us/testData/rights.json @@ -0,0 +1,1216 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "constraint": [ + { + "type": "use", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "reference": [{ + "title": "title0" + }, + { + "title": "title1" + } + ], + "releasability": { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "addressee": [{ + "role": "client", + "party": [{ + "contactId": "CID001" + }] + }, + { + "role": "stakeholder", + "party": [{ + "contactId": "CID002" + }, + { + "contactId": "CID003" + } + ] + } + ], + "disseminationConstraint": [ + "restricted", + "unrestricted" + ] + }, + "responsibleParty": [{ + "role": "coAuthor", + "party": [{ + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "rightsHolder", + "party": [{ + "contactId": "CID005" + }] + } + ] + }, + { + "type": "legal", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "legal": { + "useConstraint": [ + "threatenedOrEndangered", + "otherRestrictions" + ], + "accessConstraint": [ + "otherRestrictions", + "non-public", + "in-confidence" + ], + "otherConstraint": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure." + ] + } + }, + { + "type": "security", + "security": { + "classification": "secret", + "classificationSystem": "Classification System Name", + "userNote": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "handlingDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ] + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/spatial.json b/test/writers/dcat_us/testData/spatial.json new file mode 100644 index 000000000..6c5a55402 --- /dev/null +++ b/test/writers/dcat_us/testData/spatial.json @@ -0,0 +1,3044 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "otherResourceLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "credit": [ + "Lim, Sonny B. - Guitar", + "Peterson, Jeff - Slack Key Guitar", + "Kamakawiwo'ole, Israel - Vocal" + ], + "timePeriod": { + "description": "ground condition", + "startDateTime": "2016-06-01", + "endDateTime": "2016-08-15" + }, + "temporalResolution": [ + { + "years": 1, + "months": 8, + "days": 13 + }, + { + "seconds": 5 + } + ], + "spatialReferenceSystem": [ + { + "referenceSystemType": "referenceSystemType0", + "referenceSystemIdentifier": { + "identifier": "spatial reference system identifier", + "namespace": "namespace", + "version": "version", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + } + }, + { + "referenceSystemType": "referenceSystemType1" + }, + { + "referenceSystemIdentifier": { + "identifier": "identifier2" + } + }, + { + "referenceSystemType": "projected", + "referenceSystemIdentifier": { + "identifier": "Zone 10", + "namespace": "UTM", + "description": "Universal Transverse Mercator Zone 10 Seattle, Washington" + } + }, + { + "referenceSystemType": "geodeticGeographic2D", + "referenceSystemIdentifier": { + "identifier": "4326", + "namespace": "urn:ogc:def:crs:EPSG", + "description": "epsg projection 4326 - wgs 84 - Latitude Longitude", + "authority": { + "title": "European Petroleum Survey Group" + } + } + }, + { + "referenceSystemType": "projected", + "referenceSystemWKT": "PROJCS ['Wyoming 4901, Eastern Zone (1983, meters)', GEOGCS ['GRS 80', DATUM ['GRS 80', SPHEROID ['GRS 80', 6378137.000000, 298.257222]], PRIMEM ['Greenwich', 0.000000 ], UNIT ['Decimal Degree', 0.01745329251994330]], PROJECTION ['Transverse Mercator'], PARAMETER ['Scale_Factor', 0.999938], PARAMETER ['Central_Meridian', -105.166667], PARAMETER ['Latitude_Of_Origin', 40.500000], PARAMETER ['False_Easting', 200000.000000], UNIT ['Meter', 1.000000000000]]" + }, + { + "referenceSystemType": "geodeticGeographic2D", + "referenceSystemParameterSet": { + "geodetic": { + "datumIdentifier": { + "identifier": "identifier" + }, + "ellipsoidIdentifier": { + "identifier": "identifier" + }, + "semiMajorAxis": 9.9, + "axisUnits": "axisUnits", + "denominatorOfFlatteningRatio": 9.9 + } + } + } + ], + "spatialRepresentationType": [ + "vector", + "stereoModel" + ], + "spatialRepresentation": [ + { + "gridRepresentation": { + "numberOfDimensions": 9, + "dimension": [{ + "dimensionType": "column", + "dimensionSize": 9, + "resolution": { + "type": "distance", + "value": 9.9, + "unitOfMeasure": "feet" + }, + "dimensionTitle": "COLUMN TITLE", + "dimensionDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + }, + { + "dimensionType": "row", + "dimensionSize": 9 + } + ], + "cellGeometry": "voxel", + "transformParamsAvailability": true + } + }, + { + "vectorRepresentation": { + "topologyLevel": "fullTopology3D", + "vectorObject": [{ + "objectType": "object Type 0", + "objectCount": 9 + }, + { + "objectType": "object Type 1", + "objectCount": 9 + } + ] + } + }, + { + "georectifiedRepresentation": { + "gridRepresentation": { + "numberOfDimensions": 9, + "dimension": [ + { + "dimensionType": "row", + "dimensionSize": 90 + }, + { + "dimensionType": "column", + "dimensionSize": 91 + } + ], + "cellGeometry": "cellGeometry", + "transformationParameterAvailable": true + }, + "checkPointAvailable": true, + "checkPointDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "cornerPoints": [ + [ + 0.0, + 0.0 + ], + [ + 0.0, + 1.0 + ], + [ + 1.0, + 1.0 + ], + [ + 1.0, + 0.0 + ] + ], + "centerPoint": [ + 0.5, + 0.5 + ], + "pointInPixel": "upperRight", + "transformationDimensionDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "transformationDimensionMapping": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + }, + { + "georeferenceableRepresentation": { + "gridRepresentation": { + "numberOfDimensions": 9, + "dimension": [{ + "dimensionType": "row", + "dimensionSize": 90 + }, + { + "dimensionType": "column", + "dimensionSize": 91 + } + ], + "cellGeometry": "cellGeometry", + "transformationParameterAvailable": true + }, + "controlPointAvailable": true, + "orientationParameterAvailable": true, + "orientationParameterDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "georeferencedParameter": "Georeferenced Parameter 00", + "parameterCitation": [{ + "title": "title0" + }, + { + "title": "title1" + } + ] + } + } + ], + "spatialResolution": [ + { + "scaleFactor": 99999 + }, { + "measure": { + "type": "distance", + "value": 99.9, + "unitOfMeasure": "unitOfMeasure" + } + }, { + "levelOfDetail": "levelOfDetail" + }, { + "geographicResolution": { + "latitudeResolution": 9.9, + "longitudeResolution": 9.9, + "unitOfMeasure": "unitOfMeasure" + } + }, { + "bearingDistanceResolution": { + "distanceResolution": 9.9, + "distanceUnitOfMeasure": "distanceUnitOfMeasure", + "bearingResolution": 9.9, + "bearingUnitOfMeasure": "bearingUnitOfMeasure", + "bearingReferenceDirection": "north", + "bearingReferenceMeridian": "assumed" + } + }, { + "coordinateResolution": { + "abscissaResolutionX": 9.9, + "ordinateResolutionY": 9.9, + "unitOfMeasure": "unitOfMeasure" + } + }], + "keyword": [ + { + "keyword": [ + { + "keyword": "Barrow" + }, + { + "keyword": "Prudhoe Bay" + }, + { + "keyword": "Kaparuk" + } + ], + "keywordType": "place", + "thesaurus": { + "title": "USGS Geographic Names Information System" + } + }, + { + "keyword": [ + { + "keyword": "Brown Bear", + "keywordId": "TSN12365741" + }, + { + "keyword": "Polar Bear", + "keywordId": "TSN125415741" + }, + { + "keyword": "Black Bear", + "keywordId": "TSN123689426" + }, + { + "keyword": "Cinnamon Bear", + "keywordId": "TSN123842165" + }, + { + "keyword": "Teddy Bear" + } + ], + "keywordType": "taxon", + "thesaurus": { + "title": "ITIS - Integrated Taxonomic Information System" + } + }, + { + "keyword": [ + { + "keyword": "butter" + }, + { + "keyword": "sugar" + }, + { + "keyword": "eggs" + } + ], + "keywordType": "theme", + "thesaurus": { + "title": "Exploring Cookies" + } + }, + { + "keyword": [ + { + "keyword": "inlandWaters", + "keywordId": "012" + }, + { + "keyword": "location", + "keywordId": "013" + }, + { + "keyword": "climatologyMeteorologyAtmosphere", + "keywordId": "004" + } + ], + "keywordType": "isoTopicCategory", + "thesaurus": { + "title": "ISO Topic Categories" + } + }, + { + "keyword": [ + { + "keyword": "carbon dating" + }, + { + "keyword": "ionization" + } + ], + "keywordType": "method", + "thesaurus": { + "title": "Lineage Methodology keyword set" + } + } + ], + "taxonomy": [ + { + "taxonomicSystem": [{ + "citation": { + "title": "ITIS - Integrated Taxonomic Information System", + "alternateTitle": [ + "Citation for ITIS" + ], + "date": [{ + "date": "2013-06-22", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + }, + "modifications": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "citation": { + "title": "Some OTHER Taxonomic System", + "date": [{ + "date": "2013-06-22", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + } + } + ], + "generalScope": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identificationReference": [{ + "title": "citation", + "identifier": [{ + "identifier": "identifier0", + "namespace": "namespace0", + "version": "version0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "title0", + "date": [{ + "date": "2013-06-22", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + } + }] + }, + { + "title": "citation1", + "identifier": [{ + "identifier": "identifier1", + "namespace": "namespace1", + "version": "version1", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "title1", + "date": [{ + "date": "2013-06-22", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + } + }] + } + ], + "observer": [{ + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "editor", + "party": [{ + "contactId": "CID001" + }] + } + ], + "identificationProcedure": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identificationCompleteness": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "voucher": [{ + "specimen": "bear claw", + "repository": { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + }, + { + "specimen": "moose tooth", + "repository": { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + } + ], + "taxonomicClassification": [{ + "taxonomicLevel": "taxonomicLevel0", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [{ + "taxonomicSystemId": "taxonomicSystemId00", + "taxonomicLevel": "taxonomicLevel00", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [{ + "taxonomicLevel": "taxonomicLevel000", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [{ + "taxonomicSystemId": "taxonomicSystemId0000.1", + "taxonomicLevel": "taxonomicLevel0000.1", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [] + }, + { + "taxonomicSystemId": "taxonomicSystemId0000.2", + "taxonomicLevel": "taxonomicLevel0000.2", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [] + } + ] + }] + }, + { + "taxonomicLevel": "taxonomicLevel01", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [{ + "taxonomicLevel": "taxonomicLevel010", + "taxonomicName": "taxonomicName", + "commonName": [ + "commonName0", + "commonName1" + ], + "subClassification": [] + }] + } + ] + }, + { + "taxonomicLevel": "taxonomicLevel0201", + "taxonomicName": "taxonomicName" + } + ] + }], + "graphicOverview": [ + { + "fileName": "fileName 0", + "fileDescription": "fileDescription 0", + "fileType": "fileType 0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName 1", + "fileDescription": "fileDescription 1", + "fileType": "fileType 1", + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/1" + }] + } + ], + "constraint": [ + { + "type": "use", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "reference": [{ + "title": "title0" + }, + { + "title": "title1" + } + ], + "releasability": { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "addressee": [{ + "role": "client", + "party": [{ + "contactId": "CID001" + }] + }, + { + "role": "stakeholder", + "party": [{ + "contactId": "CID002" + }, + { + "contactId": "CID003" + } + ] + } + ], + "disseminationConstraint": [ + "restricted", + "unrestricted" + ] + }, + "responsibleParty": [{ + "role": "coAuthor", + "party": [{ + "contactId": "CID006" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "rightsHolder", + "party": [{ + "contactId": "CID005" + }] + } + ] + }, + { + "type": "legal", + "useLimitation": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + ], + "scope": { + "scopeCode": "scopeCode" + }, + "graphic": [{ + "fileName": "fileName0" + }, + { + "fileName": "fileName1" + } + ], + "legal": { + "useConstraint": [ + "threatenedOrEndangered", + "otherRestrictions" + ], + "accessConstraint": [ + "otherRestrictions", + "in-confidence" + ], + "otherConstraint": [ + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure." + ] + } + }, + { + "type": "security", + "security": { + "classification": "secret", + "classificationSystem": "Classification System Name", + "userNote": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "handlingDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ], + "coverageDescription": [ + { + "coverageName": "My First Coverage", + "coverageDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "processingLevelCode": { + "identifier": "processing level code" + }, + "attributeGroup": [{ + "attributeContentType": [ + "thematicClassification", + "physicalMeasurement" + ], + "attribute": [{ + "sequenceIdentifier": "sequenceIdentifier 1", + "sequenceIdentifierType": "sequenceIdentifierType", + "attributeDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "attributeIdentifier": [{ + "identifier": "identifier 1" + }, + { + "identifier": "identifier 2" + } + ], + "minValue": 9.9, + "maxValue": 9.9, + "units": "units", + "scaleFactor": 999, + "offset": 999, + "meanValue": 9.9, + "numberOfValues": 999, + "standardDeviation": 9.9, + "bitsPerValue": 999, + "boundMin": 9.9, + "boundMax": 9.9, + "boundUnits": "boundUnits", + "peakResponse": 9.9, + "toneGradations": 999, + "bandBoundaryDefinition": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "nominalSpatialResolution": 9.9, + "transferFunctionType": "transferFunctionType", + "transmittedPolarization": "transmittedPolarization", + "detectedPolarization": "detectedPolarization" + }, + { + "sequenceIdentifier": "sequenceIdentifier 2", + "sequenceIdentifierType": "sequenceIdentifierType", + "attributeDescription": "attributeDescription", + "attributeIdentifier": [{ + "identifier": "identifier" + }], + "minValue": 9.9, + "maxValue": 9.9, + "units": "units", + "scaleFactor": 999, + "offset": 999, + "meanValue": 9.9, + "numberOfValues": 999, + "standardDeviation": 9.9, + "bitsPerValue": 999 + } + ] + }, + { + "attributeContentType": [ + "modelResult" + ] + } + ], + "imageDescription": { + "illuminationElevationAngle": 9.9, + "illuminationAzimuthAngle": 9.9, + "imagingCondition": "imagingCondition", + "imageQualityCode": { + "identifier": "identifier" + }, + "cloudCoverPercent": 9.9, + "compressionQuantity": 9, + "triangulationIndicator": true, + "radiometricCalibrationAvailable": true, + "cameraCalibrationAvailable": true, + "filmDistortionAvailable": true, + "lensDistortionAvailable": true + } + }, + { + "coverageName": "My Second Coverage", + "coverageDescription": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "processingLevelCode": { + "identifier": "identifier" + }, + "attributeGroup": [{ + "attributeContentType": [ + "attributeContentType" + ] + }, + { + "attributeContentType": [ + "attributeContentType" + ] + } + ], + "imageDescription": { + "illuminationElevationAngle": 60.0 + } + } + ], + "resourceFormat": [ + { + "formatSpecification": { + "title": "specification 1" + }, + "amendmentNumber": "amendmentNumber", + "compressionMethod": "compressionMethod" + }, + { + "formatSpecification": { + "title": "specification 2" + }, + "amendmentNumber": "amendmentNumber", + "compressionMethod": "compressionMethod" + } + ], + "resourceMaintenance": [ + { + "frequency": "semi-annually", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType" + }, + { + "date": "2016-10-12", + "dateType": "dateType" + } + ], + "scope": [{ + "scopeCode": "scopeCode" + }, + { + "scopeCode": "scopeCode" + } + ], + "note": [ + "note0", + "note1" + ], + "contact": [{ + "role": "custodian", + "party": [{ + "contactId": "CID005" + }] + }] + }, + { + "frequency": "frequency1" + } + ], + "environmentDescription": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "supplementalInfo": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "extent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [ + { + "description": "geographic extent description", + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [ + { + "type": "Point", + "coordinates": [100.0, 0.0] + }, + { + "type": "LineString", + "coordinates": [ + [100.0, 0.0], + [101.0, 1.0] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, 67.663378], + [-161.440345, 67.630173], + [-161.294611, 67.656257], + [-161.228063, 67.625736], + [-161.247712, 67.585909], + [-161.334662, 67.591324], + [-161.566245, 67.491263], + [-161.812338, 67.455299], + [-161.825019, 67.40123], + [-162.128301, 67.414364], + [-162.167825, 67.363047], + [-162.383403, 67.293329], + [-162.633432, 67.272237], + [-162.645587, 67.356665], + [-162.369023, 67.455264], + [-162.287324, 67.551235], + [-162.171139, 67.559356], + [-161.99344, 67.646806], + [-161.857964, 67.620329], + [-161.769431, 67.629407], + [-161.74223, 67.663378] + ] + ] + } + ] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "Polygon", + "coordinates": [ + [ + [-10.0, 50.0], + [90.0, 50.0], + [90.0, 25.0], + [-10.0, 25.0], + [-10.0, 50.0] + ] + ] + }] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "Polygon", + "coordinates": [ + [ + [140, 65], + [-170, 65], + [-170, 55], + [140, 55], + [140, 65] + ] + ] + }] + }, + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [{ + "type": "Polygon", + "coordinates": [ + [ + [-162, 65], + [-161, 65], + [-161, 60], + [-162, 60], + [-162, 65] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [100, 55], + [102, 55], + [102, 50], + [100, 50], + [100, 55] + ] + ] + } + ] + } + ], + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timeInstant": { + "id": "id", + "description": "description", + "identifier": { + "identifier": "identifier", + "namespace": "namespace" + }, + "instantName": [ + "instantName0", + "instantName1" + ], + "geologicAge": { + "ageTimeScale": "ageTimeScale", + "ageEstimate": "ageEstimate", + "ageUncertainty": "ageUncertainty", + "ageExplanation": "ageExplanation", + "ageReference": [{ + "title": "citation title" + }] + } + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startGeologicAge": { + "ageTimeScale": "International Chronostratigraphic Chart", + "ageEstimate": "13.82" + } + } + } + ], + "verticalExtent": [ + { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "minValue": 9.9, + "maxValue": 9.9, + "crsId": { + "referenceSystemType": "referenceSystemType0", + "referenceSystemIdentifier": { + "identifier": "identifier0" + } + } + }, + { + "minValue": 99.99, + "maxValue": 99.99, + "crsId": { + "referenceSystemType": "referenceSystemType1", + "referenceSystemIdentifier": { + "identifier": "identifier1" + } + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [ + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [{ + "type": "Polygon", + "coordinates": [ + [ + [-30, 25], + [-20, 25], + [-20, 20], + [-30, 20], + [-30, 25] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [10, 40], + [15, 35], + [15, 30], + [10, 30], + [10, 40] + ] + ] + } + ] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "GeometryCollection", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometries": [{ + "type": "Point", + "coordinates": [100.0, 0.0] + }, + { + "type": "LineString", + "coordinates": [ + [101.0, 0.0], + [102.0, 1.0] + ] + } + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [10, 40], + [15, 35], + [15, 30], + [10, 30], + [10, 40] + ] + ] + } + ] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, 67.663378], + [-161.440345, 67.630173], + [-161.294611, 67.656257], + [-161.228063, 67.625736], + [-161.247712, 67.585909], + [-161.334662, 67.591324], + [-161.566245, 67.491263], + [-161.812338, 67.455299], + [-161.825019, 67.40123], + [-162.128301, 67.414364], + [-162.167825, 67.363047], + [-162.383403, 67.293329], + [-162.633432, 67.272237], + [-162.645587, 67.356665], + [-162.369023, 67.455264], + [-162.287324, 67.551235], + [-162.171139, 67.559356], + [-161.99344, 67.646806], + [-161.857964, 67.620329], + [-161.769431, 67.629407], + [-161.74223, 67.663378] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "FeatureCollection", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "features": [{ + "type": "Feature", + "id": "ALCC-BH55", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "Point", + "coordinates": [102.0, 0.5] + }, + "properties": { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "featureName": [ + "fake name" + ] + } + }, + { + "type": "Feature", + "id": "ALCC-BH56", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "LineString", + "coordinates": [ + [102.0, 0.0], + [103.0, 1.0], + [104.0, 0.0], + [105.0, 1.0] + ] + }, + "properties": { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + }, + { + "type": "Feature", + "id": "ALCC-Co81", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "GeometryCollection", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometries": [{ + "type": "Point", + "coordinates": [100.0, 0.0] + }, + { + "type": "LineString", + "coordinates": [ + [101.0, 0.0], + [102.0, 1.0] + ] + } + ] + }, + "properties": { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ] + }] + } + ] + } + ] + }, + "resourceLineage": [ + { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "scope": { + "scopeCode": "scopeCode" + }, + "citation": [{ + "title": "Lineage Title 1", + "date": [{ + "date": "2017-10-13", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + }, + { + "title": "Lineage Title 2", + "date": [{ + "date": "2017-10-13", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + } + ], + "source": [{ + "sourceId": "SRC001", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "sourceCitation": { + "title": "Source Citation Title SRC001", + "date": [{ + "date": "2017-10-13", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + }, + "metadataCitation": [{ + "title": "First Source Metadata Citation" + }, + { + "title": "Next Source Metadata Citation" + } + ], + "spatialResolution": { + "scaleFactor": 99999 + }, + "referenceSystem": { + "referenceSystemType": "referenceSystemType", + "referenceSystemIdentifier": { + "identifier": "identifier" + } + }, + "sourceProcessStep": [{ + "description": "description", + "timePeriod": { + "endDateTime": "2017-12-28T15:15" + } + }, + { + "description": "description", + "timePeriod": { + "endDateTime": "2017-12-28T15:16" + } + } + ], + "scope": { + "scopeCode": "scopeCode SRC001", + "scopeExtent": [{ + "temporalExtent": [{ + "timePeriod": { + "description": "publication date", + "startDateTime": "2016-11-01" + } + }] + }] + } + }, + { + "sourceId": "SRC002", + "description": "description", + "sourceCitation": { + "title": "Source Citation Title SRC002", + "date": [{ + "date": "2017-10-13", + "dateType": "publication" + }], + "responsibleParty": [{ + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + }] + }, + "scope": { + "scopeCode": "scopeCode SRC002", + "scopeExtent": [{ + "temporalExtent": [{ + "timePeriod": { + "description": "publication date", + "startDateTime": "2016-11-02" + } + }] + }] + } + } + ], + "processStep": [{ + "stepId": "stepId", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "rationale": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "timePeriod": { + "id": "TimePeriod001", + "startDateTime": "2016-10-14T11:10:15.2-10:00", + "endDateTime": "2016-12-31", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "TimePeriod Identifier", + "namespace": "namespace" + }, + "periodName": [ + "periodName0", + "periodName1" + ], + "timeInterval": { + "interval": 9.9, + "units": "year" + }, + "duration": { + "months": 9 + } + }, + "processor": [{ + "role": "processor", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "reviewer", + "party": [{ + "contactId": "CID004" + }] + } + ], + "reference": [{ + "title": "Process Step Reference" + }, + { + "title": "Another Process Step Reference" + } + ], + "scope": { + "scopeCode": "scopeCode" + } + }, + { + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "timePeriod": { + "endDateTime": "2017-12-28T15:28" + } + } + ] + }, + { + "statement": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + ], + "resourceDistribution": [ + { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "liabilityStatement": "Blah blah blah liability. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", + "distributor": [ + { + "contact": { + "role": "distributor", + "party": [{ + "contactId": "CID002" + }] + }, + "orderProcess": [ + { + "fees": "10.00USD", + "plannedAvailability": "2016-10-21T00:00:00", + "orderingInstructions": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "turnaround": "turnaround" + }, + { + "fees": "2.00USD" + } + ], + "transferOption": [ + { + "unitsOfDistribution": "units of distribution", + "transferSize": 9.9, + "onlineOption": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "offlineOption": [ + { + "mediumSpecification": { + "title": "My Medium Specification Title" + }, + "density": 9.9, + "units": "units", + "numberOfVolumes": 9, + "mediumFormat": [ + "mediumFormat0", + "mediumFormat1" + ], + "note": "note", + "identifier": { + "identifier": "Medium Identifier" + } + }, + { + "mediumSpecification": { + "title": "dium specification title 1" + } + } + ], + "transferFrequency": { + "months": 9 + }, + "distributionFormat": [ + { + "formatSpecification": { + "title": "CSV" + }, + "amendmentNumber": "2.0.8-beta", + "compressionMethod": "7ZipUp", + "technicalPrerequisite": "Blah blah blah 2.0 technical prerequisite" + }, + { + "formatSpecification": { + "title": "format specification title 1" + } + } + ] + }, + { + "transferSize": 10.9, + "onlineOption": [{ + "uri": "http://ISO.uri/adiwg/3" + }], + "distributionFormat": [{ + "formatSpecification": { + "title": "Microsoft Excel" + } + }] + } + ] + }, + { + "contact": { + "role": "distributor", + "party": [{ + "contactId": "CID003" + }] + } + } + ] + } + ], + "associatedResource": [ + { + "resourceType": [{ + "type": "modelHardcopy", + "name": "Hardcopy of Model" + }, + { + "type": "videoDigital", + "name": "Video of the Making" + } + ], + "associationType": "partOfSeamlessDatabase", + "initiativeType": "investigation", + "resourceCitation": { + "title": "Resource Citation Title" + }, + "metadataCitation": { + "title": "Metadata Citation Title" + } + }, + { + "resourceType": [{ + "type": "type0", + "name": "name0" + }, + { + "type": "type1", + "name": "name1" + } + ], + "associationType": "associationType", + "initiativeType": "initiativeType", + "resourceCitation": { + "title": "title" + }, + "metadataCitation": { + "title": "title" + } + } + ], + "additionalDocumentation": [ + { + "resourceType": [{ + "type": "webService", + "name": "ADIwg API" + }, + { + "type": "databaseDigital", + "name": "DMV Data" + } + ], + "citation": [{ + "title": "A Good Additional Document" + }, + { + "title": "A More Better Additional Document" + } + ] + }, + { + "resourceType": [{ + "type": "multimediaHardcopy", + "name": "Multi-Media Hard-Copy" + }, + { + "type": "physicalObject", + "name": "Lab Specimen" + } + ], + "citation": [{ + "title": "A Much Mo Betha Additional Document" + }] + } + ], + "funding": [ + { + "allocation": [{ + "sourceAllocationId": "A123FW009", + "amount": 9999.99, + "currency": "USD", + "sourceId": "CID005", + "recipientId": "CID006", + "matching": true, + "onlineResource": [{ + "uri": "http://adiwg.org" + }], + "comment": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "amount": 999.99, + "currency": "CAD" + } + ], + "timePeriod": { + "startDateTime": "2016-10-14T11:10:15.2-10:00", + "endDateTime": "2016-12-31", + "id": "TimePeriod001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "TimePeriod Identifier", + "namespace": "namespace" + }, + "periodName": [ + "periodName0", + "periodName1" + ], + "timeInterval": { + "interval": 9.9, + "units": "year" + }, + "duration": { + "months": 9 + } + } + }, + { + "allocation": [{ + "amount": 9999.99, + "currency": "EUR" + }], + "timePeriod": { + "startDateTime": "2016-10-14" + } + } + ] + }, + "dataDictionary": [ + { + "citation": { + "title": "title" + }, + "subject": [ + "subject0", + "subject1" + ], + "recommendedUse": [ + "use0", + "use1" + ], + "locale": [{ + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "responsibleParty": { + "role": "author", + "party": [{ + "contactId": "CID001" + }] + }, + "dictionaryFunctionalLanguage": "UML", + "dictionaryIncludedWithResource": true, + "domain": [{ + "domainId": "DID001", + "commonName": "commonName", + "codeName": "codeName", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "domainItem": [{ + "name": "name0", + "value": "value0", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + }, + { + "name": "name1", + "value": "value1", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + }, + { + "name": "name2", + "value": "value2", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + } + ] + }, + { + "domainId": "DID002", + "commonName": "commonName", + "codeName": "codeName", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "domainItem": [{ + "name": "name0", + "value": "value0", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore." + }] + } + ], + "entity": [{ + "entityId": "entityId0", + "commonName": "commonName", + "codeName": "codeName", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "entityReference": [{ + "title": "entity reference citation 0" + }], + "primaryKeyAttributeCodeName": [ + "primaryAttribute0", + "primaryAttribute1" + ], + "index": [{ + "codeName": "codeName0", + "allowDuplicates": false, + "attributeCodeName": [ + "attributeCodeName00", + "attributeCodeName01" + ] + }, + { + "codeName": "codeName1", + "allowDuplicates": true, + "attributeCodeName": [ + "attributeCodeName1" + ] + } + ], + "attribute": [{ + "commonName": "Department ID", + "codeName": "codeName", + "alias": [ + "alias0", + "alias1" + ], + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "attributeReference": { + "title": "attribute reference citation Department ID" + }, + "dataType": "dataType", + "allowNull": true, + "mustBeUnique": false, + "units": "units", + "domainId": "DID001", + "minValue": "minValue", + "maxValue": "maxValue" + }, + { + "commonName": "Employee ID", + "codeName": "empId", + "alias": [ + "employeeId", + "employeeNumber" + ], + "definition": "Numeric code to uniquely identify an employee of Acme Oil", + "attributeReference": { + "title": "attribute reference citation for Employee ID" + }, + "dataType": "numeric", + "allowNull": false, + "mustBeUnique": true, + "units": "meters", + "domainId": "DID002", + "minValue": "1000000", + "maxValue": "5000000" + } + ], + "foreignKey": [{ + "localAttributeCodeName": [ + "localAttributeCodeName0", + "localAttributeCodeName1" + ], + "referencedEntityCodeName": "referencedEntityCodeName", + "referencedAttributeCodeName": [ + "referencedAttributeCodeName0", + "referencedAttributeCodeName1" + ] + }, + { + "localAttributeCodeName": [ + "employeeID" + ], + "referencedEntityCodeName": "EMPLOYEE", + "referencedAttributeCodeName": [ + "employeeID" + ] + } + ] + }, + { + "entityId": "entityId1", + "commonName": "commonName", + "codeName": "codeName", + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "entityReference": [{ + "title": "entity reference citation 1" + }], + "primaryKeyAttributeCodeName": [ + "primaryAttribute" + ], + "attribute": [{ + "commonName": "Supervisor", + "codeName": "codeName", + "alias": [ + "alias0", + "alias1" + ], + "definition": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "attributeReference": { + "title": "attribute reference citation for supervisor" + }, + "dataType": "dataType", + "allowNull": true, + "mustBeUnique": false, + "units": "units", + "domainId": "DID001", + "minValue": "minValue", + "maxValue": "maxValue" + }, + { + "commonName": "Grade", + "codeName": "empId", + "alias": [ + "employeeId", + "employeeNumber" + ], + "definition": "Numeric code to uniquely identify an employee of Acme Oil", + "attributeReference": { + "title": "attribute reference citation for grade" + }, + "dataType": "numeric", + "allowNull": false, + "mustBeUnique": true, + "units": "meters", + "domainId": "DID002", + "minValue": "1000000", + "maxValue": "5000000" + } + ] + } + ] + }, + { + "citation": { + "title": "My Dictionary Title" + }, + "subject": [ + "birds", + "loons" + ], + "recommendedUse": [ + "Reconstruct database" + ], + "locale": [{ + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }], + "responsibleParty": { + "role": "author", + "party": [{ + "contactId": "CID006" + }] + }, + "dictionaryFunctionalLanguage": "MSSQL", + "dictionaryIncludedWithResource": false + } + ], + "metadataRepository": [ + { + "repository": "USGS ScienceBase", + "metadataStandard": "FGDC" + }, + { + "repository": "data.gov", + "metadataStandard": "iso19115_2" + } + ] + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/systemOfRecords.json b/test/writers/dcat_us/testData/systemOfRecords.json new file mode 100644 index 000000000..1e89c262a --- /dev/null +++ b/test/writers/dcat_us/testData/systemOfRecords.json @@ -0,0 +1,1156 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + } + }, + "associatedResource": [ + { + "resourceType": [{ + "type": "modelHardcopy", + "name": "Hardcopy of Model" + }, + { + "type": "videoDigital", + "name": "Video of the Making" + } + ], + "associationType": "partOfSeamlessDatabase", + "initiativeType": "investigation", + "resourceCitation": { + "title": "Resource Citation Title" + }, + "metadataCitation": { + "title": "Metadata Citation Title" + } + }, + { + "resourceType": [{ + "type": "type0", + "name": "name0" + }, + { + "type": "type1", + "name": "name1" + } + ], + "associationType": "sorn", + "initiativeType": "sorn", + "resourceCitation": { + "title": "title", + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ] + }, + "metadataCitation": { + "title": "title" + } + } + ] + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/temporal.json b/test/writers/dcat_us/testData/temporal.json new file mode 100644 index 000000000..6d7755e85 --- /dev/null +++ b/test/writers/dcat_us/testData/temporal.json @@ -0,0 +1,1495 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "temporalResolution": [ + { + "years": 1, + "months": 8, + "days": 13 + }, + { + "seconds": 5 + } + ], + "extent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [ + { + "description": "geographic extent description", + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [ + { + "type": "Point", + "coordinates": [100.0, 0.0] + }, + { + "type": "LineString", + "coordinates": [ + [100.0, 0.0], + [101.0, 1.0] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, 67.663378], + [-161.440345, 67.630173], + [-161.294611, 67.656257], + [-161.228063, 67.625736], + [-161.247712, 67.585909], + [-161.334662, 67.591324], + [-161.566245, 67.491263], + [-161.812338, 67.455299], + [-161.825019, 67.40123], + [-162.128301, 67.414364], + [-162.167825, 67.363047], + [-162.383403, 67.293329], + [-162.633432, 67.272237], + [-162.645587, 67.356665], + [-162.369023, 67.455264], + [-162.287324, 67.551235], + [-162.171139, 67.559356], + [-161.99344, 67.646806], + [-161.857964, 67.620329], + [-161.769431, 67.629407], + [-161.74223, 67.663378] + ] + ] + } + ] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "Polygon", + "coordinates": [ + [ + [-10.0, 50.0], + [90.0, 50.0], + [90.0, 25.0], + [-10.0, 25.0], + [-10.0, 50.0] + ] + ] + }] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "Polygon", + "coordinates": [ + [ + [140, 65], + [-170, 65], + [-170, 55], + [140, 55], + [140, 65] + ] + ] + }] + }, + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [{ + "type": "Polygon", + "coordinates": [ + [ + [-162, 65], + [-161, 65], + [-161, 60], + [-162, 60], + [-162, 65] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [100, 55], + [102, 55], + [102, 50], + [100, 50], + [100, 55] + ] + ] + } + ] + } + ], + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timeInstant": { + "id": "id", + "description": "description", + "identifier": { + "identifier": "identifier", + "namespace": "namespace" + }, + "instantName": [ + "instantName0", + "instantName1" + ], + "geologicAge": { + "ageTimeScale": "ageTimeScale", + "ageEstimate": "ageEstimate", + "ageUncertainty": "ageUncertainty", + "ageExplanation": "ageExplanation", + "ageReference": [{ + "title": "citation title" + }] + } + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startGeologicAge": { + "ageTimeScale": "International Chronostratigraphic Chart", + "ageEstimate": "13.82" + } + } + } + ], + "verticalExtent": [ + { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "minValue": 9.9, + "maxValue": 9.9, + "crsId": { + "referenceSystemType": "referenceSystemType0", + "referenceSystemIdentifier": { + "identifier": "identifier0" + } + } + }, + { + "minValue": 99.99, + "maxValue": 99.99, + "crsId": { + "referenceSystemType": "referenceSystemType1", + "referenceSystemIdentifier": { + "identifier": "identifier1" + } + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [ + { + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "geographicElement": [{ + "type": "Polygon", + "coordinates": [ + [ + [-30, 25], + [-20, 25], + [-20, 20], + [-30, 20], + [-30, 25] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [10, 40], + [15, 35], + [15, 30], + [10, 30], + [10, 40] + ] + ] + } + ] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "GeometryCollection", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometries": [{ + "type": "Point", + "coordinates": [100.0, 0.0] + }, + { + "type": "LineString", + "coordinates": [ + [101.0, 0.0], + [102.0, 1.0] + ] + } + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [10, 40], + [15, 35], + [15, 30], + [10, 30], + [10, 40] + ] + ] + } + ] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, 67.663378], + [-161.440345, 67.630173], + [-161.294611, 67.656257], + [-161.228063, 67.625736], + [-161.247712, 67.585909], + [-161.334662, 67.591324], + [-161.566245, 67.491263], + [-161.812338, 67.455299], + [-161.825019, 67.40123], + [-162.128301, 67.414364], + [-162.167825, 67.363047], + [-162.383403, 67.293329], + [-162.633432, 67.272237], + [-162.645587, 67.356665], + [-162.369023, 67.455264], + [-162.287324, 67.551235], + [-162.171139, 67.559356], + [-161.99344, 67.646806], + [-161.857964, 67.620329], + [-161.769431, 67.629407], + [-161.74223, 67.663378] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }, + { + "containsData": true, + "geographicElement": [{ + "type": "FeatureCollection", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "features": [{ + "type": "Feature", + "id": "ALCC-BH55", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "Point", + "coordinates": [102.0, 0.5] + }, + "properties": { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "featureName": [ + "fake name" + ] + } + }, + { + "type": "Feature", + "id": "ALCC-BH56", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "LineString", + "coordinates": [ + [102.0, 0.0], + [103.0, 1.0], + [104.0, 0.0], + [105.0, 1.0] + ] + }, + "properties": { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + }, + { + "type": "Feature", + "id": "ALCC-Co81", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometry": { + "type": "GeometryCollection", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "geometries": [{ + "type": "Point", + "coordinates": [100.0, 0.0] + }, + { + "type": "LineString", + "coordinates": [ + [101.0, 0.0], + [102.0, 1.0] + ] + } + ] + }, + "properties": { + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + } + } + ] + }] + } + ] + } + ] + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/theme.json b/test/writers/dcat_us/testData/theme.json new file mode 100644 index 000000000..987b91901 --- /dev/null +++ b/test/writers/dcat_us/testData/theme.json @@ -0,0 +1,1205 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.6.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "Stan Smith", + "positionName": "Associate - retired", + "memberOfOrganization": [ + "CID002", + "CID003" + ], + "logoGraphic": [ + { + "fileName": "fileName0", + "fileDescription": "fileDescription0", + "fileType": "fileType0", + "fileConstraint": [{ + "type": "use", + "useLimitation": [ + "useLimitation0", + "useLimitation1" + ] + }, + { + "type": "legal", + "legal": { + "useConstraint": [ + "useConstraint0", + "useConstraint1" + ], + "accessConstraint": [ + "accessConstraint0", + "accessConstraint1" + ], + "otherConstraint": [ + "otherConstraint0", + "otherConstraint1" + ] + } + }, + { + "type": "security", + "security": { + "classification": "classification", + "classificationSystem": "classificationSystem", + "userNote": "userNote", + "handlingDescription": "handlingDescription" + } + } + ], + "fileUri": [{ + "uri": "http://ISO.uri/adiwg/0" + }] + }, + { + "fileName": "fileName1", + "fileDescription": "fileDescription1", + "fileType": "fileType1" + }, + { + "fileName": "fileName2" + } + ], + "phone": [ + { + "phoneName": "mobile", + "phoneNumber": "111-111-1111", + "service": [ + "voice", + "sms", + "message" + ] + }, + { + "phoneName": "office", + "phoneNumber": "222-222-2222", + "service": [ + "voice", + "message" + ] + } + ], + "address": [ + { + "addressType": [ + "mailing", + "physical" + ], + "description": "work location", + "deliveryPoint": [ + "address line 1", + "address line 2" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + }, + { + "addressType": [ + "mailing" + ], + "description": "telework location", + "deliveryPoint": [ + "address line 3" + ], + "city": "city", + "administrativeArea": "state", + "postalCode": "zip", + "country": "country" + } + ], + "electronicMailAddress": [ + "e.mail@address.com1", + "e.mail@address.com2" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/1", + "protocol": "protocol", + "name": "name", + "description": "description", + "function": "function" + }, + { + "uri": "http://ISO.uri/adiwg/2" + } + ], + "hoursOfService": [ + "hoursOfService1", + "hoursOfService2" + ], + "contactInstructions": "contactInstructions", + "contactType": "individual" + }, + { + "contactId": "CID002", + "isOrganization": true, + "name": "US Geological Survey", + "memberOfOrganization": [ + "CID005" + ], + "logoGraphic": [ + { + "fileName": "fileName" + }], + "phone": [ + { + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [ + { + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }], + "electronicMailAddress": [ + "e.mail@address.com2" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/2" + }], + "hoursOfService": [ + "hoursOfService" + ], + "contactInstructions": "contactInstructions", + "contactType": "federal" + }, + { + "contactId": "CID003", + "isOrganization": true, + "name": "Arctic Landscape Conservation Cooperative", + "contactType": "federal", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID004", + "isOrganization": false, + "name": "Joshua Bradley", + "positionName": "Data Manager", + "memberOfOrganization": [ + "CID003" + ], + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + }, + { + "contactId": "CID005", + "isOrganization": true, + "name": "US Department of the Interior", + "contactType": "federal" + }, + { + "contactId": "CID006", + "isOrganization": false, + "name": "Dennis Walworth", + "memberOfOrganization": [ + "CID002" + ], + "contactType": "individual", + "phone": [{ + "phoneName": "single service", + "phoneNumber": "111-111-1111", + "service": [ + "voice" + ] + }], + "address": [{ + "addressType": [ + "addressType" + ], + "city": "Anchorage", + "administrativeArea": "AK", + "postalCode": "99508" + }] + } + ], + "metadata": { + "metadataInfo": { + "metadataIdentifier": { + "identifier": "e9e82406-8308-4231-98e3-8b70fd438ada", + "namespace": "https://www.uuidgenerator.net/", + "version": "version 1.0", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "authority": { + "title": "Metadata Identifier Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + } + }, + "parentMetadata": { + "title": "Metadata Authority Title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "roleExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "defaultMetadataLocale": { + "language": "language", + "country": "country", + "characterSet": "characterSet" + }, + "otherMetadataLocale": [ + { + "language": "language0", + "country": "country0", + "characterSet": "characterSet0" + }, + { + "language": "language1", + "country": "country1", + "characterSet": "characterSet1" + } + ], + "metadataContact": [ + { + "role": "author", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "custodian", + "party": [{ + "contactId": "CID002" + }] + } + ], + "metadataDate": [ + { + "date": "2016-10-31", + "dateType": "dateType" + }, + { + "date": "2017-02-16", + "dateType": "creation" + }, + { + "date": "2016-10-31", + "dateType": "nextUpdate" + } + ], + "metadataOnlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "metadataMaintenance": { + "frequency": "monthly", + "date": [{ + "date": "2016-10-12", + "dateType": "dateType00" + }, + { + "date": "2017-02-10", + "dateType": "nextUpdate" + } + ], + "scope": [{ + "scopeCode": "dataset", + "scopeExtent": [{ + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "temporalExtent": [{ + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.200-10:00" + } + }, + { + "timePeriod": { + "startDateTime": "2016-10-24T11:10:15.200-10:00" + } + } + ] + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": false, + "identifier": { + "identifier": "identifier" + }, + "boundingBox": { + "westLongitude": -140.0, + "eastLongitude": -120.0, + "southLatitude": 49.0, + "northLatitude": 70.0 + }, + "geographicElement": [{ + "type": "Point", + "coordinates": [ + 100.0, + 0.0 + ] + }, + { + "type": "LineString", + "coordinates": [ + [ + 100.0, + 0.0 + ], + [ + 101.0, + 1.0 + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + } + ] + }] + } + ], + "scopeDescription": [{ + "dataset": "CUSTOMER", + "attributes": "customer_id, invoice" + }, + { + "dataset": "dataset", + "attributes": "attributes", + "features": "features", + "other": "other" + } + ] + }, + { + "scopeCode": "fieldSeason" + } + ], + "note": [ + "note00", + "note01" + ], + "contact": [{ + "role": "processor", + "party": [{ + "contactId": "CID004" + }] + }, + { + "role": "contributor", + "party": [{ + "contactId": "CID006" + }] + } + ] + }, + "alternateMetadataReference": [ + { + "title": "alternate metadata FGDC" + }, + { + "title": "alternate metadata NetCDF" + } + ], + "metadataStatus": "notAccepted" + }, + "resourceInfo": { + "resourceType": [ + { + "type": "tableDigital", + "name": "My Table Name" + }, + { + "type": "website", + "name": "My Website Name" + } + ], + "citation": { + "title": "Main Resource Title - Citation", + "alternateTitle": [ + "How I spent my summer", + "Research under the midnight-sun" + ], + "date": [ + { + "date": "2017-06-13", + "dateType": "publication" + }, + { + "date": "2017-06-22T16:15:14", + "dateType": "revision" + } + ], + "edition": "edition", + "responsibleParty": [ + { + "role": "principalInvestigator", + "roleExtent": [ + { + "description": "Extent 1: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + }, + { + "description": "Extent 2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "geographicExtent": [{ + "containsData": true, + "geographicElement": [{ + "type": "Feature", + "id": "polygon-75", + "bbox": [-10.0, -10.0, + 10.0, + 10.0 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-161.74223, + 67.663378 + ], + [-161.440345, + 67.630173 + ], + [-161.294611, + 67.656257 + ], + [-161.228063, + 67.625736 + ], + [-161.247712, + 67.585909 + ], + [-161.334662, + 67.591324 + ], + [-161.566245, + 67.491263 + ], + [-161.812338, + 67.455299 + ], + [-161.825019, + 67.40123 + ], + [-162.128301, + 67.414364 + ], + [-162.167825, + 67.363047 + ], + [-162.383403, + 67.293329 + ], + [-162.633432, + 67.272237 + ], + [-162.645587, + 67.356665 + ], + [-162.369023, + 67.455264 + ], + [-162.287324, + 67.551235 + ], + [-162.171139, + 67.559356 + ], + [-161.99344, + 67.646806 + ], + [-161.857964, + 67.620329 + ], + [-161.769431, + 67.629407 + ], + [-161.74223, + 67.663378 + ] + ] + ] + }, + "properties": { + "description": "Agashashok River site", + "featureName": [ + "Agashashok River", + "Camp Mosquito" + ], + "identifier": [{ + "identifier": "AGAR" + }, + { + "identifier": "Kup25" + } + ], + "featureScope": "collectionSite", + "acquisitionMethod": "butterfly net", + "customField": "not in schema", + "customArray": [ + "string 1", + "string 2" + ] + } + }] + }] + } + ], + "party": [ + { + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + }, + { + "role": "originator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [ + { + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [ + { + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [ + { + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + }, + "abstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "shortAbstract": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.", + "purpose": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "resourceUsage": [ + { + "specificUsage": "My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "temporalExtent": [ + { + "timeInstant": { + "dateTime": "2016-10-24T11:10:15.2-10:00", + "id": "instant_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "HighTide", + "namespace": "namespace" + }, + "instantName": [ + "instantName 00", + "instantName 01" + ] + } + }, + { + "timePeriod": { + "id": "period_001", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "SlackTide", + "namespace": "namespace" + }, + "periodName": [ + "periodName 00", + "periodName 01" + ], + "startDateTime": "2017", + "endDateTime": "2018", + "timeInterval": { + "interval": 9, + "units": "month" + }, + "duration": { + "months": 9 + } + } + }, + { + "timeInstant": { + "dateTime": "2017-03-25T23:10:15", + "id": "instant_002", + "description": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", + "identifier": { + "identifier": "LowTide", + "namespace": "namespace", + "version": "version", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt,", + "authority": { + "title": "title", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ], + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ], + "edition": "edition", + "responsibleParty": [{ + "role": "principalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID004" + } + ] + }, + { + "role": "funder", + "party": [{ + "contactId": "CID003", + "organizationMembers": [ + "CID004", + "CID001" + ] + }] + } + ], + "presentationForm": [ + "presentationForm0", + "presentationForm1" + ], + "identifier": [{ + "identifier": "identifier0" + }, + { + "identifier": "identifier1" + } + ], + "series": { + "seriesName": "seriesName", + "seriesIssue": "seriesIssue", + "issuePage": "issuePage" + }, + "otherCitationDetails": [ + "otherCitationDetails0", + "otherCitationDetails1" + ], + "onlineResource": [{ + "uri": "http://ISO.uri/adiwg/0" + }, + { + "uri": "http://ISO.uri/adiwg/1" + } + ], + "graphic": [{ + "fileName": "fileName" + }, + { + "fileName": "fileName" + } + ] + } + }, + "instantName": [ + "instantName 20", + "instantName 21" + ] + } + } + ], + "userDeterminedLimitation": "My Specific Limitation is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "limitationResponse": [ + "Exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.", + "Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. My Specific Usage is quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." + ], + "documentedIssue": { + "title": "My Documented Issue", + "date": [{ + "date": "2016-10-13", + "dateType": "dateType0" + }, + { + "date": "2016-10-22T16:15:14", + "dateType": "dateType1" + } + ] + }, + "additionalDocumentation": [ + { + "title": "title1" + }, + { + "title": "title2" + } + ], + "userContactInfo": [ + { + "role": "administrator", + "party": [{ + "contactId": "CID006" + }] + }, + { + "role": "coPrincipalInvestigator", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID003" + } + ] + } + ] + }, + { + "specificUsage": "My specific usage is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + ], + "status": [ + "incomplete", + "suspended" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [{ + "contactId": "CID001" + }, + { + "contactId": "CID006" + } + ] + }, + { + "role": "principalInvestigator", + "party": [{ + "contactId": "CID004" + }] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + }, + "keyword": [ + { + "keyword": [ + { + "keyword": "Barrow" + }, + { + "keyword": "Prudhoe Bay" + }, + { + "keyword": "Kaparuk" + } + ], + "keywordType": "place", + "thesaurus": { + "title": "USGS Geographic Names Information System" + } + }, + { + "keyword": [ + { + "keyword": "Brown Bear", + "keywordId": "TSN12365741" + }, + { + "keyword": "Polar Bear", + "keywordId": "TSN125415741" + }, + { + "keyword": "Black Bear", + "keywordId": "TSN123689426" + }, + { + "keyword": "Cinnamon Bear", + "keywordId": "TSN123842165" + }, + { + "keyword": "Teddy Bear" + } + ], + "keywordType": "taxon", + "thesaurus": { + "title": "ITIS - Integrated Taxonomic Information System" + } + }, + { + "keyword": [ + { + "keyword": "butter" + }, + { + "keyword": "sugar" + }, + { + "keyword": "eggs" + } + ], + "keywordType": "theme", + "thesaurus": { + "title": "Exploring Cookies" + } + }, + { + "keyword": [ + { + "keyword": "inlandWaters", + "keywordId": "012" + }, + { + "keyword": "location", + "keywordId": "013" + }, + { + "keyword": "climatologyMeteorologyAtmosphere", + "keywordId": "004" + } + ], + "keywordType": "isoTopicCategory", + "thesaurus": { + "title": "ISO Topic Categories" + } + }, + { + "keyword": [ + { + "keyword": "carbon dating" + }, + { + "keyword": "ionization" + } + ], + "keywordType": "method", + "thesaurus": { + "title": "Lineage Methodology keyword set" + } + } + ] + } + } + } + \ No newline at end of file diff --git a/test/writers/dcat_us/testData/title.json b/test/writers/dcat_us/testData/title.json new file mode 100644 index 000000000..2336d0f1f --- /dev/null +++ b/test/writers/dcat_us/testData/title.json @@ -0,0 +1,61 @@ +{ + "schema": { + "name": "mdJson", + "version": "2.0.0" + }, + "contact": [ + { + "contactId": "CID001", + "isOrganization": false, + "name": "name" + } + ], + "metadata": { + "metadataInfo": { + "metadataContact": [ + { + "role": "metadataContact", + "party": [ + { + "contactId": "CID001" + } + ] + } + ] + }, + "resourceInfo": { + "resourceType": [ + { + "type": "type", + "name": "name" + } + ], + "citation": { + "title": "myCitationTitle", + "alternateTitle": [ + "alternateTitle0", + "alternateTitle1" + ] + }, + "abstract": "abstract", + "status": [ + "status" + ], + "pointOfContact": [ + { + "role": "pointOfContact", + "party": [ + { + "contactId": "CID001" + } + ] + } + ], + "defaultResourceLocale": { + "language": "eng", + "country": "USA", + "characterSet": "UTF-8" + } + } + } +}