├── .gitignore ├── .nojekyll ├── .travis.yml ├── Gemfile ├── LICENSE.md ├── README.md ├── Rakefile ├── extensions ├── asciidoctor_extensions.rb └── requirement_block.rb ├── ghpages ├── extensions.adoc └── implementation_guide.adoc ├── images ├── core-geometry-model.png ├── geopackage-features.png ├── geopackage-overview.png ├── geopackage-tiles.png ├── geopackage-uml.png └── umlnotationforrdbmstables.png ├── model ├── GPKG22.eap ├── GPKG22forFeatures.eap └── GPKG22forTiles.eap ├── process.md ├── spec ├── 2d-gridded-coverage │ ├── README.md │ ├── ReleaseNotes │ │ ├── ReadMe.md │ │ ├── abstract_tests │ │ │ └── README.md │ │ ├── annex-history.adoc │ │ ├── clause-0-preface.adoc │ │ ├── clause-1-intro.adoc │ │ ├── clause-2-references.adoc │ │ ├── clause-3-terms.adoc │ │ ├── clause-4-change-log.adoc │ │ ├── clause-5-critical.adoc │ │ ├── clause-6-substantive.adoc │ │ ├── clause-7-future.adoc │ │ ├── gpkg-tiled-gridded-coverage-release-notes.adoc │ │ └── requirements │ │ │ ├── README.md │ │ │ ├── REQ014.adoc │ │ │ ├── REQ021.adoc │ │ │ └── requirements_class_Core.adoc │ ├── abstract_tests │ │ ├── README.md │ │ ├── TEST001.adoc │ │ ├── TEST002.adoc │ │ ├── TEST003.adoc │ │ ├── TEST004.adoc │ │ ├── TEST005.adoc │ │ ├── TEST006.adoc │ │ ├── TEST007.adoc │ │ ├── TEST008.adoc │ │ ├── TEST009.adoc │ │ ├── TEST010.adoc │ │ ├── TEST011.adoc │ │ └── TEST012.adoc │ ├── annex-a.adoc │ ├── annex-b.adoc │ ├── annex-bibliography.adoc │ ├── annex-c.adoc │ ├── annex-history.adoc │ ├── annex-n.adoc │ ├── clause_0_front_material.adoc │ ├── clause_1_scope.adoc │ ├── clause_2_conformance.adoc │ ├── clause_3_references.adoc │ ├── clause_4_terms_and_definitions.adoc │ ├── clause_5_conventions.adoc │ ├── clause_6_informative_text.adoc │ ├── clause_7_normative_text.adoc │ ├── clause_8_media_types.adoc │ ├── images │ │ ├── README.md │ │ └── image1.png │ ├── requirements │ │ ├── README.md │ │ ├── REQ001.adoc │ │ ├── REQ002.adoc │ │ ├── REQ003.adoc │ │ ├── REQ004.adoc │ │ ├── REQ005.adoc │ │ ├── REQ006.adoc │ │ ├── REQ007.adoc │ │ ├── REQ008.adoc │ │ ├── REQ009.adoc │ │ ├── REQ010.adoc │ │ ├── REQ011.adoc │ │ ├── REQ012.adoc │ │ ├── REQ013.adoc │ │ ├── REQ014.adoc │ │ ├── REQ015.adoc │ │ ├── REQ016.adoc │ │ ├── REQ017.adoc │ │ ├── REQ018.adoc │ │ ├── REQ019.adoc │ │ ├── REQ020.adoc │ │ ├── REQ021.adoc │ │ ├── requirement.adoc │ │ ├── requirements_class_Core.adoc │ │ ├── requirements_class_Tiff_Encoding.adoc │ │ └── v1-0-req-classes │ │ │ ├── ReadMe.md │ │ │ ├── requirements_class_2d_Gridded_Coverage_Ancillary.adoc │ │ │ ├── requirements_class_2d_Gridded_Tile_Ancillary.adoc │ │ │ ├── requirements_class_Table_Values.adoc │ │ │ ├── requirements_class_Tiff_Encoding.adoc │ │ │ └── requirements_class_Tile_Pyramid_User_Data_Tables.adoc │ ├── standard.css │ └── standard_document.adoc ├── conceptual-model │ ├── .github │ │ └── workflows │ │ │ ├── docker.yml │ │ │ └── generate.yml │ ├── .gitignore │ ├── .gitlab-ci.yml │ ├── Gemfile │ ├── Makefile │ ├── Makefile.win │ ├── RDF │ │ ├── gpkg │ │ │ ├── .project │ │ │ ├── attributes.ttl │ │ │ ├── core.ttl │ │ │ ├── extensions.ttl │ │ │ ├── features.ttl │ │ │ ├── metadata.ttl │ │ │ ├── rte.ttl │ │ │ ├── schema.ttl │ │ │ ├── tgce.ttl │ │ │ └── tiles.ttl │ │ ├── oapi-common │ │ │ ├── .project │ │ │ ├── bbox.ttl │ │ │ └── crs.ttl │ │ └── tms │ │ │ ├── .project │ │ │ └── tms.ttl │ ├── UML │ │ ├── README.md │ │ ├── attributes.uml │ │ ├── convention1.uml │ │ ├── convention2.uml │ │ ├── convention3.uml │ │ ├── convention4.uml │ │ ├── convention5.uml │ │ ├── convention6.uml │ │ ├── core.uml │ │ ├── extensions.uml │ │ ├── features.uml │ │ ├── metadata.uml │ │ ├── rte.uml │ │ ├── schema.uml │ │ ├── tgce.uml │ │ └── tiles.uml │ ├── document.adoc │ ├── figures │ │ ├── README.md │ │ ├── attributes.png │ │ ├── convention1.png │ │ ├── convention2.png │ │ ├── convention3.png │ │ ├── convention4.png │ │ ├── convention5.png │ │ ├── convention6.png │ │ ├── core.png │ │ ├── extensions.png │ │ ├── features.png │ │ ├── metadata.png │ │ ├── rte.png │ │ ├── schema.png │ │ ├── tgce.png │ │ └── tiles.png │ ├── iev │ │ └── cache │ │ │ └── version │ ├── metanorma.yml │ └── sections │ │ ├── 00-preface.adoc │ │ ├── 01-scope.adoc │ │ ├── 02-conformance.adoc │ │ ├── 03-references.adoc │ │ ├── 04-terms_and_definitions.adoc │ │ ├── 05-conventions.adoc │ │ ├── 06-informative-text.adoc │ │ ├── 07-conceptual-model.adoc │ │ ├── 08-logical-model.adoc │ │ ├── annex-history.adoc │ │ └── requirements │ │ ├── README.md │ │ ├── requirements_class_attributes.adoc │ │ ├── requirements_class_core.adoc │ │ ├── requirements_class_extensions.adoc │ │ ├── requirements_class_features.adoc │ │ ├── requirements_class_metadata.adoc │ │ ├── requirements_class_rte.adoc │ │ ├── requirements_class_schema.adoc │ │ ├── requirements_class_tgce.adoc │ │ └── requirements_class_tiles.adoc ├── core │ ├── 0_introduction.adoc │ ├── 1_base.adoc │ ├── 2_options.adoc │ ├── 2a_features.adoc │ ├── 2b_tiles.adoc │ ├── 2e_extensions-mechanism.adoc │ ├── 2f_attributes.adoc │ ├── 4_security.adoc │ ├── annexes │ │ ├── README.md │ │ ├── ats.adoc │ │ ├── background.adoc │ │ ├── biblio.adoc │ │ ├── ddl.adoc │ │ ├── endnotes.adoc │ │ ├── extension_crs_wkt.adoc │ │ ├── extension_geometry_encoding.adoc │ │ ├── extension_geometry_srsid_triggers.adoc │ │ ├── extension_geometry_type_triggers.adoc │ │ ├── extension_geometry_types.adoc │ │ ├── extension_metadata.adoc │ │ ├── extension_related_tables.adoc │ │ ├── extension_schema.adoc │ │ ├── extension_spatialindex.adoc │ │ ├── extension_template.adoc │ │ ├── extension_tiled_gridded_coverage_data.adoc │ │ ├── extension_tiles_webp.adoc │ │ ├── extension_zoom_other_intervals.adoc │ │ ├── extensions.adoc │ │ ├── geometrytypes.adoc │ │ ├── metadataexample.adoc │ │ ├── normref.adoc │ │ ├── rasterortilemetadataexample.adoc │ │ ├── tilesexample.adoc │ │ └── triggers.adoc │ ├── index.adoc │ └── release_notes │ │ ├── 1.3.1 │ │ ├── README.md │ │ ├── annex-bibliography.adoc │ │ ├── annex-history.adoc │ │ ├── clause-0-preface.adoc │ │ ├── clause-1-intro.adoc │ │ ├── clause-2-references.adoc │ │ ├── clause-3-terms.adoc │ │ ├── clause-4-change-log.adoc │ │ ├── clause-5-critical.adoc │ │ ├── clause-6-substantive.adoc │ │ ├── clause-7-future.adoc │ │ ├── rn.adoc │ │ └── standard.css │ │ └── 1.4.0 │ │ ├── README.md │ │ ├── annex-bibliography.adoc │ │ ├── annex-history.adoc │ │ ├── clause-0-preface.adoc │ │ ├── clause-1-intro.adoc │ │ ├── clause-2-references.adoc │ │ ├── clause-3-terms.adoc │ │ ├── clause-4-change-log.adoc │ │ ├── clause-5-critical.adoc │ │ ├── clause-6-substantive.adoc │ │ ├── clause-7-future.adoc │ │ ├── rn.adoc │ │ └── standard.css ├── crs_wkt │ ├── README.md │ ├── annex-a.adoc │ ├── annex-b.adoc │ ├── annex-bibliography.adoc │ ├── annex-history.adoc │ ├── annex-n.adoc │ ├── api_guidelines_assessment.adoc │ ├── clause_0_front_material.adoc │ ├── clause_1_scope.adoc │ ├── clause_2_conformance.adoc │ ├── clause_3_references.adoc │ ├── clause_4_terms_and_definitions.adoc │ ├── clause_5_conventions.adoc │ ├── clause_6_informative_text.adoc │ ├── clause_7_normative_text.adoc │ ├── release_notes │ │ ├── 1.1.0 │ │ │ ├── README.md │ │ │ ├── annex-bibliography.adoc │ │ │ ├── annex-history.adoc │ │ │ ├── clause-0-preface.adoc │ │ │ ├── clause-1-intro.adoc │ │ │ ├── clause-2-references.adoc │ │ │ ├── clause-3-terms.adoc │ │ │ ├── clause-4-change-log.adoc │ │ │ ├── clause-5-critical.adoc │ │ │ ├── clause-6-substantive.adoc │ │ │ ├── clause-7-future.adoc │ │ │ ├── rn.adoc │ │ │ └── standard.css │ │ └── 1.1.1 │ │ │ ├── README.md │ │ │ ├── annex-bibliography.adoc │ │ │ ├── annex-history.adoc │ │ │ ├── clause-0-preface.adoc │ │ │ ├── clause-1-intro.adoc │ │ │ ├── clause-2-references.adoc │ │ │ ├── clause-3-terms.adoc │ │ │ ├── clause-4-change-log.adoc │ │ │ ├── clause-5-critical.adoc │ │ │ ├── clause-6-substantive.adoc │ │ │ ├── clause-7-future.adoc │ │ │ ├── rn.adoc │ │ │ └── standard.css │ ├── standard.css │ └── standard_document.adoc └── related-tables │ ├── README.md │ ├── annex-ats.adoc │ ├── annex-bibliography.adoc │ ├── annex-example.adoc │ ├── annex-history.adoc │ ├── annex-n.adoc │ ├── annex-profile.adoc │ ├── annex-sql.adoc │ ├── clause_0_front_material.adoc │ ├── clause_1_scope.adoc │ ├── clause_2_conformance.adoc │ ├── clause_3_references.adoc │ ├── clause_4_terms_and_definitions.adoc │ ├── clause_5_conventions.adoc │ ├── clause_6_informative_text.adoc │ ├── clause_7_normative_text.adoc │ ├── clause_8_media_types.adoc │ ├── images │ ├── AirportsAndRunways.png │ ├── README.md │ ├── RelatedTablesConcept.png │ ├── bridgearrival.png │ ├── gpsapproach.png │ ├── related_tables_uml.png │ └── t13.png │ ├── requirements │ ├── README.md │ ├── REQ001.adoc │ ├── REQ002.adoc │ ├── REQ003.adoc │ ├── REQ004.adoc │ ├── REQ005.adoc │ ├── REQ006.adoc │ ├── REQ007.adoc │ ├── REQ008.adoc │ ├── REQ009.adoc │ ├── REQ010.adoc │ ├── REQ011.adoc │ ├── media-table_def.adoc │ ├── media-udmt.adoc │ ├── relatedattr-table_def.adoc │ ├── relatedattr-udft.adoc │ ├── relatedfeat-table_def.adoc │ ├── relatedfeat-udft.adoc │ ├── relatedtiles-table_def.adoc │ ├── relatedtiles-udft.adoc │ ├── requirement.adoc │ ├── requirements_class.adoc │ ├── requirements_class_Media.adoc │ ├── requirements_class_RelatedAttributes.adoc │ ├── requirements_class_RelatedFeatures.adoc │ ├── requirements_class_RelatedTiles.adoc │ ├── requirements_class_SimpleAttributes.adoc │ ├── requirements_class_Table_Definitions.adoc │ ├── simpleattr-table_def.adoc │ └── simpleattr-udat.adoc │ ├── standard.css │ └── standard_document.adoc └── stylesheets └── asciidoctor.css /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea/ 2 | /build/ 3 | Gemfile.lock 4 | *.iml 5 | .project 6 | .DS_Store 7 | /spec/conceptual-model/relaton 8 | document.doc 9 | document.html 10 | document.err 11 | document.presentation.xml 12 | document.xml 13 | -------------------------------------------------------------------------------- /.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/.nojekyll -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: ruby 2 | branches: 3 | only: 4 | - master 5 | script: rake travis 6 | env: 7 | global: 8 | secure: "AAAAB3NzaC1yc2EAAAADAQABAAACAQDE1PH04S9emq7EveGUBsquUDArpKLIB2V+HyvZ3Yu5/E7jl2sLMpe+VJJo5Pk1YBX2+ink+1DNvAeZ0juC6otHuY+RzCVskT2f6x/HwYfASMTi/bBJLSvH2wcp9QSiqca0vY17ihWryzbCJq6IWQ4z5EuRcCiUXAebRog9/Wx9DFQzDHCh0jzdzZp2UfAt1BbSx54oGFQQdCT4zooytfX/4SMf5fSDlXLJ+1vp5IMx1VwEUENP/7Q3oBt1IJcoxwavlAiCBIhengTPGmGYFH8hDJ5nuv9xV2aNyl2/2KXcZLos4EnH9iNC04rFH82GZjTlXMTReJ4ihUY+103hCM3An2sUZDq0AOxp61CISa8GqTMD1Ktka7aMAvYMRZ3qo/5dXaTsXBWgUm7++1Tpy/pzEkZ3RMtl6U5XEIPkL3ePSaTO0lqSW0bPuXg0zxOikHiEiaScG8PRnJggv75yWlmv1JDiyi1qLIsIPI+gNSkI+/DaYZdwsQgdohGtRiO7T/YpK7qM9vEOv0T8GqDLnqk3SrAQ4EFb4Kc0z/mw924boMMVBpo+BM9gESU2p3IPfLmTmp9fHpIaUl//igVrUmO2bqSlT+W3I943DgeehnAtzfM7cvtbIbIhQz/fiqo3iSkg5leJDdDwKkNZbapBQ6Qvgw6eNYuagFjoAyI0CO0oQw==" 9 | 10 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'rake', '>= 0.9.2' 4 | gem 'asciidoctor', '~> 1.5.8' 5 | gem 'coderay', '1.0.9' 6 | gem 'tilt' 7 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | require 'fileutils' 2 | 3 | task :init_local do 4 | Dir.mkdir 'build' unless File.directory? 'build' 5 | end 6 | 7 | task :generate do 8 | system 'bundle exec asciidoctor -D build/spec -I ./extensions -r asciidoctor_extensions.rb -a linkcss ./spec/core/index.adoc' 9 | system 'bundle exec asciidoctor -D build/spec/2d-gridded-coverage -I ./extensions -r asciidoctor_extensions.rb -a linkcss -o index.html ./spec/2d-gridded-coverage/standard_document.adoc' 10 | system 'bundle exec asciidoctor -D build/spec/related-tables -I ./extensions -r asciidoctor_extensions.rb -a linkcss -o index.html ./spec/related-tables/standard_document.adoc' 11 | system 'bundle exec asciidoctor -D build/guide ./ghpages/implementation_guide.adoc' 12 | system 'bundle exec asciidoctor -D build ./ghpages/extensions.adoc' 13 | FileUtils.cp_r 'images/.', 'build/spec' 14 | FileUtils.cp_r 'stylesheets/.', 'build/spec' 15 | FileUtils.cp_r 'spec/2d-gridded-coverage/images/.', 'build/spec/2d-gridded-coverage/images' 16 | FileUtils.cp_r 'stylesheets/.', 'build/spec/2d-gridded-coverage' 17 | FileUtils.cp_r 'spec/related-tables/images/.', 'build/spec/related-tables/images' 18 | FileUtils.cp_r 'stylesheets/.', 'build/spec/related-tables' 19 | end 20 | 21 | desc 'Generate site' 22 | task :build => [:init_local, :generate] 23 | 24 | task :init_travis do 25 | repo = %x(git config remote.origin.url).gsub(/^git:/, 'https:').strip 26 | deploy_branch = 'gh-pages' 27 | 28 | system "git clone --depth 1 -b #{deploy_branch} #{repo} build" 29 | Dir.chdir 'build/spec' 30 | system 'git rm -r .' 31 | Dir.chdir '../..' 32 | Dir.chdir 'build/guide' 33 | system 'git rm -r .' 34 | Dir.chdir '../..' 35 | end 36 | 37 | task :publish do 38 | Dir.chdir 'build' 39 | system "git config user.name '#{ENV['GIT_NAME']}'" 40 | system "git config user.email '#{ENV['GIT_EMAIL']}'" 41 | system 'git config credential.helper "store --file=.git/credentials"' 42 | File.open('.git/credentials', 'w') do |f| 43 | f.write("https://#{ENV['GH_TOKEN']}:@github.com") 44 | end 45 | 46 | system 'git add *' 47 | system 'git commit -m "Publish specification to github pages"' 48 | 49 | system 'git config --global push.default simple' 50 | system 'git push origin' 51 | 52 | File.delete '.git/credentials' 53 | end 54 | 55 | desc 'Generate site from Travis CI and publish site to GitHub Pages' 56 | task :travis => [:init_travis, :build, :publish] 57 | unless ENV['TRAVIS_PULL_REQUEST'].to_s.to_i > 0 58 | # Only publish when we're not building to validate a pull request 59 | task :travis => [:publish] 60 | end 61 | -------------------------------------------------------------------------------- /extensions/asciidoctor_extensions.rb: -------------------------------------------------------------------------------- 1 | require 'asciidoctor' 2 | require 'asciidoctor/extensions' 3 | require File.dirname(__FILE__) + '/requirement_block' 4 | 5 | Asciidoctor::Extensions.register do 6 | block RequirementBlock 7 | end 8 | -------------------------------------------------------------------------------- /extensions/requirement_block.rb: -------------------------------------------------------------------------------- 1 | require 'asciidoctor' 2 | require 'asciidoctor/extensions' 3 | 4 | class RequirementBlock < Asciidoctor::Extensions::BlockProcessor 5 | option :name, :requirement 6 | option :contexts, [:paragraph] 7 | option :content_model, :simple 8 | 9 | def process parent, reader, attributes 10 | doc = parent.document 11 | requirement_id = doc.counter('requirement') 12 | attributes['id'] = "_requirement-#{requirement_id}" unless attributes['id'] 13 | attributes['title'] = "#{doc.attributes['requirement-caption'] || 'Requirement'} #{requirement_id}" unless attributes['title'] 14 | 15 | block = Asciidoctor::Block.new parent, :quote, :source => reader.lines, :attributes => attributes 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /images/core-geometry-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/images/core-geometry-model.png -------------------------------------------------------------------------------- /images/geopackage-features.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/images/geopackage-features.png -------------------------------------------------------------------------------- /images/geopackage-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/images/geopackage-overview.png -------------------------------------------------------------------------------- /images/geopackage-tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/images/geopackage-tiles.png -------------------------------------------------------------------------------- /images/geopackage-uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/images/geopackage-uml.png -------------------------------------------------------------------------------- /images/umlnotationforrdbmstables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/images/umlnotationforrdbmstables.png -------------------------------------------------------------------------------- /model/GPKG22.eap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/model/GPKG22.eap -------------------------------------------------------------------------------- /model/GPKG22forFeatures.eap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/model/GPKG22forFeatures.eap -------------------------------------------------------------------------------- /model/GPKG22forTiles.eap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/model/GPKG22forTiles.eap -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/README.md: -------------------------------------------------------------------------------- 1 | This folder contains the text for the standard 2 | 3 | * standard_document.adoc - the main standard document with references to all sections 4 | * remaining adocs - each section of the standard document is in a separate document: follow directions in each document to populate 5 | * images - directory for image files used as figures 6 | * requirements - directory for requirements and requirement classes to be referenced in clause_7_normative_text.adoc 7 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/ReleaseNotes/ReadMe.md: -------------------------------------------------------------------------------- 1 | This folder contains release notes by version number for the GeoPackage Tiled Gridded Coverage Extension. 2 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/ReleaseNotes/abstract_tests/README.md: -------------------------------------------------------------------------------- 1 | This folder contains the Abstract Test Suite showing which Tests have been modified for the revision. 2 | 3 | Each file describes a single test. The naming convention for these files is: 4 | 5 | "TESTn.adoc" where "n" corresponds to the test number. Numbers should have preceeding zeros appropriate for the total number of tests in the project (e.g., the first test could be TEST001 if less than 1000 tests are anticipated). 6 | 7 | The test is expressed according to this pattern: 8 | 9 | NOTE: for each test, there should be a corresponding requirement in the "requirements" folder. 10 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/ReleaseNotes/annex-history.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | == Revision History 4 | 5 | [width="90%",options="header"] 6 | |=== 7 | |Date |Release |Editor | Primary clauses modified |Description 8 | |2021-03-09 |1.1 |C. Reed|all |initial version 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/ReleaseNotes/clause-0-preface.adoc: -------------------------------------------------------------------------------- 1 | .[big]*Preface* 2 | 3 | This document provides the set of revision notes for the GeoPackage Tiled Gridded Coverage Extension Standard, version 1.1 [OGC 17-066r2] and does not modify that standard. 4 | 5 | This document provides the details of edits, deficiency corrections, and enhancements of the above-referenced standard. It also documents those items that have been deprecated. Finally, this document provides implementations details related to issues of backwards compatibility. 6 | 7 | _Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights._ 8 | 9 | _Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the standard set forth in this document, and to provide supporting documentation._ 10 | 11 | .[big]*Keywords* 12 | ogcdoc, geopackage, tiled gridded coverage, tiles, coverage, release notes 13 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/ReleaseNotes/clause-1-intro.adoc: -------------------------------------------------------------------------------- 1 | == Introduction 2 | 3 | === Scope 4 | 5 | This Release Notes document provides information on changes to version 1.0 of the GeoPackage Tiled Gridded Coverage Extension. 6 | 7 | === Document contributor contact points 8 | 9 | All questions regarding this document should be directed to the contacts provided below or the referenced standard editor(s). 10 | 11 | .Contacts 12 | [width="80%",options="header"] 13 | |==================== 14 | |Name |Organization 15 | |Jeff Yutzler | Image Matters 16 | |Carl Reed | Carl Reed & Associates 17 | |==================== 18 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/ReleaseNotes/clause-2-references.adoc: -------------------------------------------------------------------------------- 1 | [[references]] 2 | == References 3 | 4 | The following normative documents are new or updated references in the standard to which these Release Notes apply. 5 | 6 | OGC: http://docs.opengeospatial.org/is/17-066r2/17-066r2.html[OGC GeoPackage Extension for Tiled Gridded Coverage Data version 1.1] 7 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/ReleaseNotes/clause-3-terms.adoc: -------------------------------------------------------------------------------- 1 | == Terms and definitions 2 | 3 | This document uses the terms defined in OGC Policy Directive 49, which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this standard and OGC documents do not use the equivalent phrases in the ISO/IEC Directives, Part 2. 4 | 5 | For the purposes of this document, the following additional terms and definitions apply. 6 | 7 | === administrative change 8 | An administrative change is a change that does not alter the conformance abstract tests for any requirements. It includes typographical errors, changes in wording to improve clarity or consistency, and perfunctory changes such as changes in version numbers. 9 | 10 | === critical Change 11 | A critical change is a change that alters requirements in a way that is known to cause reverse compatibility issues. 12 | 13 | === substantive change 14 | A substantive change is a change that alters requirements or schemas in a way that is not deemed to have a high risk for causing reverse compatibility issues. 15 | 16 | === Abbreviated terms 17 | 18 | //List any abbreviations and their full expansions that are used in this document 19 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/ReleaseNotes/clause-5-critical.adoc: -------------------------------------------------------------------------------- 1 | [[Clause_Critical]] 2 | == Description of Critical Changes 3 | 4 | === 5 |
6 | 7 | //If no critical changes are present, use the phrase below. 8 | 9 | There are no critical changes in this release. 10 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/ReleaseNotes/clause-6-substantive.adoc: -------------------------------------------------------------------------------- 1 | [[Clause_Substantive]] 2 | == Description of Substantive Changes 3 | 4 | There are two substantive changes incorporated into the GeoPackage Tiled Gridded Coverage Version 1.1 extension. These changes do not impact backwards compatibility. 5 | 6 | === https://github.com/opengeospatial/geopackage/issues/552[Issue 552]: Request ability to support additional data types in GeoPackage coverages. 7 | 8 | A synopsis of the issue and related suggested changes is: 9 | 10 | The CDB SWG is considering the use of GeoPackage to store coverage data as component of CDB 2.0. CDB currently uses a variety of data element types (in GeoTiff) to store coverage data. Therefore, the CDB SWG is requesting being able to use these data types in a GeoPackage coverage tile: 11 | 12 | 8/16/32-bit signed integers 13 | 8-bit unsigned integer (16-bit integer is currently supported, but only for PNG) 14 | 32-bit floating point (already supported in GeoPackage coverages) 15 | 1-bit (will be used in CDB 1.2 when adopted, as a binary mask) 16 | 17 | Therefore there is benefit to allowing the use of GeoPackage coverages beyond a few narrow use cases that the existing formats allow. 18 | 19 | === https://github.com/opengeospatial/geopackage/issues/576[Issue 576]: Clarify existing requirements classes 20 | 21 | A synopsis of the issue is and related changes are: 22 | 23 | Right now there is a lack of precision in some of the TGCE requirements classes. Also there are currently too many requirements classes. The current set of requirements classes can be consolidated into two requirements classes and related conformance classes: 24 | Core (Requirements 1-13 / Section 7) 25 | TIFF Encoding (Requirements 14-21 / Section 8) 26 | 27 | Therefore Requirement 14 needs to get moved into the TIFF Encoding Requirements Class and rewritten in such a way that it can be supplanted by a more flexible (but harder to implement) Requirements Class as described in issues #552 and #553 (See above). 28 | 29 | The SWG discussed and approved the changes necessary to resolve this issue. 30 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/ReleaseNotes/clause-7-future.adoc: -------------------------------------------------------------------------------- 1 | [[Clause_FutureWork]] 2 | == Future Work 3 | 4 | //OPTIONAL: Describe any Change Requests or Issues which are planned to be addressed in a future version of the standard. 5 | 6 | The SWG did discuss Issue 553 - Request to allow multiple channels in a GeoPackage Coverage. The SWG determined in principle that the aims of issue 553 require at least a new requirements class, if not an entirely new extension. Therefore the SWG agreed to table this issue so that the SWG can produce a pull request containing proposed text. This is a substantive change that will require a formal SWG motion and vote. 7 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/ReleaseNotes/requirements/README.md: -------------------------------------------------------------------------------- 1 | This folder contains requirements description for each requirement that was modified for the revision. 2 | 3 | Each file is a single requirement. The naming convention for these files is: 4 | 5 | "REQn.adoc" where "n" corresponds to the requirement number. Numbers should have preceeding zeros appropriate for the total number of requirements in the project (e.g., the first requirement could be REQ001 if less than 1000 requirements are anticipated). 6 | 7 | The requirement files are integrated into the main document as links. 8 | 9 | The requirement is expressed according to this pattern: 10 | 11 | NOTE: for each requirement, there should be a corresponding Abstract Test in the "abstract_tests" folder. 12 | 13 | NOTE: sample code may reference one or more requirements and should state which requirements are included in the code by adding the following line to the Extended Description: 14 | 15 | "#REQS: reqnum1,reqnum2,...reqnumn" 16 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/ReleaseNotes/requirements/REQ014.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 14* {set:cellbgcolor:#CACCCE}| Req/gpkg- pyramid-user-data-datatype-float + 4 | + 5 | 6 | (extends http://www.geopackage.org/spec/#r36[_GPKG-36_] and http://www.geopackage.org/spec/#r37[_GPKG-37_]) For data where the `datatype` column of the corresponding row in the `gpkg_2d_gridded_coverage_ancillary` table is _float_, the `tile_data` BLOB in the http://www.geopackage.org/spec/#tiles_user_tables[_tile pyramid user data table_] containing tiled, gridded data SHALL be of http://www.ietf.org/rfc/rfc2046.txt[_MIME type_] `image/tiff` and the default data encoding SHALL be 32-bit floating point as described in the TIFF Encoding below. {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/ReleaseNotes/requirements/REQ021.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 21* {set:cellbgcolor:#CACCCE}|Req/gpkg-tiff-valid-component-value + 4 | + 5 | 6 | All pixels in a tile of coverage data _SHALL_ be set with a valid component value. The mechanisms defined in this extension _SHALL_ be used to indicate a missing value for a pixel. Use the data_null value defined in link:#coverage-ancillary[Coverage Ancillary]. Special Note: Special floating point values such as NaN and Inf SHALL NOT be used. {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/ReleaseNotes/requirements/requirements_class_Core.adoc: -------------------------------------------------------------------------------- 1 | [cols="1,4",width="90%"] 2 | |=== 3 | 2+|*Requirements Class : Table Definitions* {set:cellbgcolor:#CACCCE} 4 | 2+|http://www.opengis.net/spec/geopackage-gr/1.1/core {set:cellbgcolor:#FFFFFF} 5 | |Target type |Token 6 | |Dependency |http://www.geopackage.org/spec/#tiles 7 | |*Requirement 1* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ001.adoc[Req/coverage-ancillary] {set:cellbgcolor:#FFFFFF} 8 | |*Requirement 2* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ002.adoc[Req/tile-ancillary] {set:cellbgcolor:#FFFFFF} 9 | |*Requirement 3* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ003.adoc[Req/gpkg-spatial-ref-sys-row] {set:cellbgcolor:#FFFFFF} 10 | |*Requirement 4* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ004.adoc[Req/gpkg-spatial-ref-sys-record] {set:cellbgcolor:#FFFFFF} 11 | |*Requirement 5* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ005.adoc[Req/gpkg-contents] {set:cellbgcolor:#FFFFFF} 12 | |*Requirement 6* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ006.adoc[Req/gpkg-extensions] {set:cellbgcolor:#FFFFFF} 13 | |*Requirement 7* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ007.adoc[Req/gpkg-2d-gridded-coverage-ancillary] {set:cellbgcolor:#FFFFFF} 14 | |*Requirement 8* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ008.adoc[Req/gpkg-2d-gridded-coverage-ancillary-set-name] {set:cellbgcolor:#FFFFFF} 15 | |*Requirement 9* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ009.adoc[Req/gpkg-2d-gridded-coverage-ancillary-datatype] {set:cellbgcolor:#FFFFFF} 16 | |*Requirement 10* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ010.adoc[Req/gpkg-2d-gridded-tile-ancillary] {set:cellbgcolor:#FFFFFF} 17 | |*Requirement 11* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ011.adoc[Req/gpkg-2d-gridded-tile-ancillary-values] {set:cellbgcolor:#FFFFFF} 18 | |*Requirement 12* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ012.adoc[Req/gpkg-2d-gridded-tile-ancillary-dvalues-id] {set:cellbgcolor:#FFFFFF} 19 | |*Requirement 13* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ012.adoc[Req/gpkg-pyramid-user-data-datatype-integer] {set:cellbgcolor:#FFFFFF} 20 | |=== 21 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/abstract_tests/README.md: -------------------------------------------------------------------------------- 1 | This folder contains the Abstract Test Suite. 2 | 3 | Each file describes a single test. The naming convention for these files is: 4 | 5 | "TESTn.adoc" where "n" corresponds to the test number. Numbers should have preceeding zeros appropriate for the total number of tests in the project (e.g., the first test could be TEST001 if less than 1000 tests are anticipated). 6 | 7 | The test is expressed according to this pattern: 8 | 9 | NOTE: for each test, there should be a corresponding requirement in the "requirements" folder. 10 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/abstract_tests/TEST001.adoc: -------------------------------------------------------------------------------- 1 | [cols=",",options="header",] 2 | |====================================================================================================== 3 | |*Test Case ID* |`/extensions/coverage/table_def/gpkg_2d_gridded_coverage_ancillary` 4 | |*Test Purpose:* |Verify that the "gpkg_2d_gridded_coverage_ancillary" table has the proper definition. 5 | |*Test Method:* a| 6 | 1. `PRAGMA table_info(gpkg_2d_gridded_coverage_ancillary)` 7 | 2. Fail if table does not have all of the columns specified in Table 27 8 | 3. Pass if logged pass and no fails 9 | 10 | |*Reference* |Req 1 11 | |*Test Type* |Basic 12 | |====================================================================================================== 13 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/abstract_tests/TEST002.adoc: -------------------------------------------------------------------------------- 1 | [cols=",",options="header",] 2 | |================================================================================================== 3 | |*Test Case ID* |`/extensions/coverage/table_def/gpkg_2d_gridded_tile_ancillary` 4 | |*Test Purpose:* |Verify that the "gpkg_2d_gridded_tile_ancillary" table has the proper definition. 5 | |*Test Method:* a| 6 | 1. `PRAGMA table_info(gpkg_2d_gridded_tile_ancillary)` 7 | 2. Fail if table does not have all of the columns specified in Table 1 8 | 3. Pass if logged pass and no fails 9 | 10 | |*Reference* |Req 2 11 | |*Test Type* |Basic 12 | |================================================================================================== 13 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/abstract_tests/TEST003.adoc: -------------------------------------------------------------------------------- 1 | [cols=",",options="header",] 2 | |======================================================================================================================================= 3 | |*Test Case ID* |`/extensions/coverage/table_val/gpkg_spatial_ref_sys/rows` 4 | |*Test Purpose:* |Verify that the "gpkg_spatial_ref_sys" table has the required rows. 5 | |*Test Method:* a| 6 | 1. `SELECT COUNT(*) FROM gpkg_spatial_ref_sys WHERE organization_coordsys_id = 4979 AND (organization = _EPSG_ OR organization = _epsg_)` 7 | 2. Fail if count is zero 8 | 3. Pass if logged pass and no fails 9 | 10 | |*Reference* |Annex F.11 Req 3 11 | |*Test Type* |Basic 12 | |======================================================================================================================================= 13 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/abstract_tests/TEST004.adoc: -------------------------------------------------------------------------------- 1 | [cols=",",options="header",] 2 | |=================================================================================================== 3 | |*Test Case ID* |`/extensions/coverage/table_val/gpkg_spatial_ref_sys/refs` 4 | |*Test Purpose:* |Verify that all elevation data uses an SRS that is defined in gpkg_spatial_ref_sys 5 | |*Test Method:* a| 6 | 1. `SELECT table_name FROM gpkg_contents WHERE data_type = _2d-gridded-coverage_;` 7 | 2. For each table_name 8 | a. `SELECT COUNT(*) FROM gpkg_tile_matrix_set WHERE table_name = _\{table_name}_` 9 | b. Fail if count is not 1 10 | 3. Pass if no fails 11 | 12 | |*Reference:* |Annex F.11 Req 4 13 | |*Test Type* |Capability 14 | |=================================================================================================== 15 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/abstract_tests/TEST005.adoc: -------------------------------------------------------------------------------- 1 | [cols=",",options="header",] 2 | |=================================================================================================== 3 | |*Test Case ID* |`/extensions/coverage/table_val/gpkg_spatial_ref_sys` 4 | |*Test Purpose:* |Verify that all elevation data uses an SRS that is defined in gpkg_spatial_ref_sys 5 | |*Test Method:* a| 6 | 1. `SELECT table_name FROM gpkg_contents WHERE data_type = _2d-gridded-coverage_;` 7 | 2. Not testable if result set is empty 8 | 3. Manually inspect that all elevation data is accounted for in the result set 9 | 10 | |*Reference:* |Annex F.11 Req 5 11 | |*Test Type* |Capability 12 | |=================================================================================================== 13 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/abstract_tests/TEST006.adoc: -------------------------------------------------------------------------------- 1 | [cols=",",options="header",] 2 | |============================================================================================================================================= 3 | |*Test Case ID* |`/extensions/coverage/table_val/gpkg_extensions` 4 | |*Test Purpose:* |Verify that all required rows are present in gpkg_extensions 5 | |*Test Method:* a| 6 | 1. `SELECT table_name, column_name, extension_name, definition, scope from gpkg_extensions";` 7 | 2. Verify that the required rows in Table 3 for table_name gpkg_2d_gridded_coverage_ancillary and gpkg_2d_gridded_tile_ancillary are present. 8 | 3. SELECT table_name FROM gpkg_contents WHERE data_type = _2d-gridded-coverage_; 9 | 4. For each table_name 10 | a. `SELECT column_name, definition, scope from gpkg_extensions WHERE extension_name = _gpkg_2d_gridded_coverage_ AND table_name = _\{table_name}_` 11 | b. Fail if no rows found 12 | c. Fail if the results do not match the entry in Table 30 for a user defined table 13 | 5. Pass if no fails 14 | 15 | |*Reference:* |Annex F.11 Req 6 16 | |*Test Type* |Capability 17 | |============================================================================================================================================= 18 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/abstract_tests/TEST007.adoc: -------------------------------------------------------------------------------- 1 | [cols=",",options="header",] 2 | |======================================================================================================= 3 | |*Test Case ID* |`/extensions/coverage/table_ref/gpkg_contents/gpkg_2d_gridded_coverage_ancillary` 4 | |*Test Purpose:* |Verify that all required rows are present in gpkg_2d_gridded_coverage_ancillary 5 | |*Test Method:* a| 6 | 1. `SELECT table_name FROM gpkg_contents WHERE data_type = _2d-gridded-coverage_;` 7 | 2. For each table_name 8 | a. `SELECT COUNT(*) FROM gpkg_2d_gridded_coverage_ancillary WHERE tile_matrix_set_name = _\{table_name}_` 9 | b. Fail if count is not 1 10 | 3. Pass if no fails 11 | 12 | |*Reference:* |Annex F.11 Req 7 13 | |*Test Type* |Capability 14 | |======================================================================================================= 15 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/abstract_tests/TEST008.adoc: -------------------------------------------------------------------------------- 1 | [cols=",",options="header",] 2 | |======================================================================================================= 3 | |*Test Case ID* |`/extensions/coverage/table_ref/gpkg_2d_gridded_coverage_ancillary/gpkg_tile_matrix_set` 4 | |*Test Purpose:* |Verify that gpkg_2d_gridded_coverage_ancillary references gpkg_tile_matrix_set 5 | |*Test Method:* a| 6 | 1. `SELECT tile_matrix_set_name FROM _gpkg_2d_gridded_coverage_ancillary_;` 7 | 2. For each tile_matrix_set_name 8 | a. `SELECT count(*) FROM gpkg_tile_matrix_set WHERE table_name = _\{tile_matrix_set_name}_` 9 | b. Fail if count is not 1 10 | 3. Pass if no fails 11 | 12 | |*Reference:* |Annex F.11 Req 8 13 | |*Test Type* |Capability 14 | |======================================================================================================= 15 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/abstract_tests/TEST009.adoc: -------------------------------------------------------------------------------- 1 | [cols=",",options="header",] 2 | |========================================================================================================================================================================================= 3 | |*Test Case ID* |`/extensions/coverage/table_val/gpkg_2d_gridded_coverage_ancillary` 4 | |*Test Purpose:* |Verify that gpkg_2d_gridded_coverage_ancillary contains valid column values 5 | |*Test Method:* a| 6 | 1. `SELECT datatype, scale, offset FROM _gpkg_2d_gridded_coverage_ancillary_ WHERE tile_matrix_set_name IN (SELECT table_name FROM gpkg_contents WHERE data_type = _2d-gridded-coverage_);` 7 | 2. For each result in 1 8 | a. Fail if datatype is not "integer" or "float" 9 | b. Fail if datatype is "float" and scale is not 1.0 10 | c. Fail if datatype is "float" and offset is not 0.0 11 | 3. Pass if no fails 12 | 13 | |*Reference:* |Annex F.11 Req 9 14 | |*Test Type* |Capability 15 | |========================================================================================================================================================================================= 16 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/abstract_tests/TEST010.adoc: -------------------------------------------------------------------------------- 1 | [cols=",",options="header",] 2 | |============================================================================================================================================================================================================================================================================= 3 | |*Test Case ID* |`/extensions/coverage/table_ref/tpudt/gpkg_2d_gridded_tile_ancillary` 4 | |*Test Purpose:* |Verify that all required rows are present in gpkg_2d_gridded_tile_ancillary 5 | |*Test Method:* a| 6 | 1. `SELECT table_name FROM gpkg_contents WHERE data_type = _2d-gridded-coverage_;` 7 | 2. For each table_name 8 | a. `SELECT \{table_name}.id as tid, gpkg_2d_gridded_tile_ancillary.tpudt_id as taid from elev_png LEFT OUTER JOIN gpkg_2d_gridded_tile_ancillary ON \{table_name}.id = gpkg_2d_gridded_tile_ancillary.tpudt_id AND gpkg_2d_gridded_tile_ancillary.tpudt_name = _\{table_name}_` 9 | b. For each row 10 | c. Fail if taid is null 11 | 3. Pass if no fails 12 | 13 | |*Reference:* |Annex F.11 Req 10, 12 14 | |*Test Type* |Capability 15 | |============================================================================================================================================================================================================================================================================= 16 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/abstract_tests/TEST011.adoc: -------------------------------------------------------------------------------- 1 | [cols=",",options="header",] 2 | |======================================================================================================= 3 | |*Test Case ID* |`/extensions/coverage/table_val/gpkg_2d_gridded_tile_ancillary` 4 | |*Test Purpose:* |Verify that all required rows in gpkg_2d_gridded_tile_ancillary have valid values 5 | |*Test Method:* a| 6 | 1. `SELECT tpudt_name, scale, offset FROM gpkg_2d_gridded_tile_ancillary;` 7 | 2. For each row 8 | a. PRAGMA table_info(\{tpudt_name}) 9 | b. Fail if tpudt_name is not a table or view 10 | c. `SELECT datatype from gpkg_2d_gridded_coverage_ancillary WHERE tile_matrix_set_name = _\{tpudt_name}_` 11 | d. Fail if no rows found 12 | e. Fail if datatype is "float" and scale is not 1.0 13 | f. Fail if datatype is "float" and offset is not 0.0 14 | 3. Pass if no fails 15 | 16 | |*Reference:* |Annex F.11 Req 11 17 | |*Test Type* |Capability 18 | |======================================================================================================= 19 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/abstract_tests/TEST012.adoc: -------------------------------------------------------------------------------- 1 | [cols=",",options="header",] 2 | |============================================================================================================================================================================== 3 | |*Test Case ID* |`/extensions/coverage/table_val/tpudt` 4 | |*Test Purpose:* |Verify that all rows in tile pyramid user data tables have valid values 5 | |*Test Method:* a| 6 | 1. `SELECT table_name FROM gpkg_contents WHERE data_type = _2d-gridded-coverage_;` 7 | 2. For each table_name 8 | a. `SELECT t.datatype AS datatype, u.id AS id, u.tile_data AS tile_data FROM gpkg_2d_gridded_coverage_ancillary t, \{table_name} u WHERE t.tile_matrix_set_name = _table_name_;` 9 | b. For each row 10 | c. If datatype is float, fail if tile_data is not a valid TIFF image as per requirements 115-121 11 | d. If datatype is integer, fail if tile_data is not a valid PNG image 12 | 3. Pass if no fails 13 | 14 | |*Reference:* |Annex F.11 Req 13, 14, 115-121 15 | |*Test Type* |Capability 16 | |============================================================================================================================================================================== 17 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/annex-a.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | == Conformance Class Abstract Test Suite (Normative) 4 | 5 | === Tiled Gridded Coverage Core Conformance Class 6 | 7 | include::abstract_tests/TEST001.adoc[] 8 | 9 | include::abstract_tests/TEST002.adoc[] 10 | 11 | include::abstract_tests/TEST003.adoc[] 12 | 13 | include::abstract_tests/TEST004.adoc[] 14 | 15 | include::abstract_tests/TEST005.adoc[] 16 | 17 | include::abstract_tests/TEST006.adoc[] 18 | 19 | include::abstract_tests/TEST007.adoc[] 20 | 21 | include::abstract_tests/TEST008.adoc[] 22 | 23 | include::abstract_tests/TEST009.adoc[] 24 | 25 | include::abstract_tests/TEST010.adoc[] 26 | 27 | include::abstract_tests/TEST011.adoc[] 28 | 29 | include::abstract_tests/TEST012.adoc[] 30 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/annex-b.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | == Informative - GML example showing domainSet, rangeType, and rangetSet 4 | 5 | [source,xml] 6 | ---- 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 0 0 20 | 21 | 3327 2946 22 | 23 | 24 | 25 | 26 | 27 | x 28 | 29 | y 30 | 31 | 32 | 33 | 34 | 35 | 291355.903287358 4640962.87782889 36 | 37 | 38 | 39 | 40 | 41 | 0.298582141738734 0 42 | 43 | 0 -0.298582141738591 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | D:\Documents\Data\DTM001.tiff 56 | 57 | Not interleaved 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | Height above mean sea level 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | ---- 86 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/annex-bibliography.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | [[Bibliography]] 4 | = Bibliography 5 | 6 | [NOTE] 7 | .Example Bibliography (Delete this note). 8 | =============================================== 9 | The TC has approved Springer LNCS as the official document citation type. 10 | 11 | Springer LNCS is widely used in technical and computer science journals and other publications 12 | 13 | * For citations in the text please use square brackets and consecutive numbers: [1], [2], [3] 14 | 15 | – Actual References: 16 | 17 | [n] Journal: Author Surname, A.: Title. Publication Title. Volume number, Issue number, Pages Used (Year Published) 18 | 19 | [n] Web: Author Surname, A.: Title, http://Website-Url 20 | 21 | =============================================== 22 | 23 | ((( Example ))) 24 | [[OGC2015]] 25 | [1] OGC: OGC Testbed 12 Annex B: Architecture. (2015). 26 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/annex-c.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | == Table Definition SQL for Grid-Regular Extension (Normative) 4 | 5 | === Coverage Ancillary Table Definition SQL 6 | 7 | [source,sql] 8 | ---- 9 | CREATE TABLE 'gpkg_2d_gridded_coverage_ancillary' ( 10 | id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, 11 | tile_matrix_set_name TEXT NOT NULL UNIQUE, 12 | datatype TEXT NOT NULL DEFAULT 'integer', 13 | scale REAL NOT NULL DEFAULT 1.0, 14 | offset REAL NOT NULL DEFAULT 0.0, 15 | precision REAL DEFAULT 1.0, 16 | data_null REAL, 17 | grid_cell_encoding TEXT DEFAULT 'grid-value-is-center', 18 | uom TEXT, 19 | field_name TEXT DEFAULT 'Height', 20 | quantity_definition TEXT DEFAULT 'Height', 21 | CONSTRAINT fk_g2dgtct_name FOREIGN KEY('tile_matrix_set_name') REFERENCES gpkg_tile_matrix_set (table_name), 22 | CHECK (datatype in ('integer','float')) 23 | ); 24 | ---- 25 | 26 | 27 | === Tile Ancillary Table Definition SQL 28 | 29 | [source,sql] 30 | ---- 31 | CREATE TABLE gpkg_2d_gridded_tile_ancillary ( 32 | id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, 33 | tpudt_name TEXT NOT NULL, 34 | tpudt_id INTEGER NOT NULL, 35 | scale REAL NOT NULL DEFAULT 1.0, 36 | offset REAL NOT NULL DEFAULT 0.0, 37 | min REAL DEFAULT NULL, 38 | max REAL DEFAULT NULL, 39 | mean REAL DEFAULT NULL, 40 | std_dev REAL DEFAULT NULL, 41 | CONSTRAINT fk_g2dgtat_name FOREIGN KEY (tpudt_name) REFERENCES gpkg_contents(table_name), 42 | UNIQUE (tpudt_name, tpudt_id) 43 | ); 44 | ---- 45 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/annex-history.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | == Revision History 4 | 5 | [width="90%",options="header"] 6 | |=== 7 | |Date |Release |Editor | Primary clauses modified |Description 8 | |2017-07-25 |0.1 |C. Reed |all |initial version 9 | |2018-02-26 |R1 |C. Reed |all |Address comments from TC vote 10 | |2021-04-01| 1.1 | C. Reed |all | Changes for minor revision. See revision notes 11 | |=== 12 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/annex-n.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | == Title ( {Normative/Informative} ) 4 | 5 | [NOTE] 6 | Place other Annex material in sequential annexes beginning with "B" and leave final two annexes for the Revision History and Bibliography 7 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/clause_1_scope.adoc: -------------------------------------------------------------------------------- 1 | == Scope 2 | 3 | This extension defines the rules for encoding and storing 16-bit and 32-bit tiled regular grid coverages composed of regular gridded data, such as elevation and temperature, in a GeoPackage. This capability may be used to support use cases such as the following: 4 | 5 | * Visualization 6 | ** 2D and 3D Draping and Texture mapping 7 | ** 2D (hill shade, color relief, slope, aspect) 8 | ** 3D (supporting changing view angles and level of detail) 9 | * Analysis 10 | ** Contouring of any continuous coverage 11 | ** Volume computations 12 | ** Slicing for 3D printers and other applications 13 | ** Viewshed and line-of-sight 14 | ** Cross-country mobility (off-road routing) 15 | ** Site suitability and planning (slope analysis such as helicopter landing zones) 16 | ** 3D geometry representations of features (ground-based, airspace) 17 | ** Terrain association (associating images to mapped locations) 18 | ** Augmented reality training 19 | ** Mesh generation 20 | ** Ancillary data for classification tools 21 | ** Trend Analysis 22 | ** “Heat” maps 23 | ** Drainage calculations 24 | ** Profiling 25 | 26 | This extension was designed to be relatively easy to implement and to be suitable for a wide variety of computing environments, including the mobile/handheld computing environmentfootnote:[We acknowledge that this approach will not support certain applications that require a high degree of precision and/or accuracy (e.g., targeting). This is due to the encoding mechanism (PNG or TIFF).]. 27 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/clause_2_conformance.adoc: -------------------------------------------------------------------------------- 1 | == Conformance 2 | 3 | This standard defines requirements for a Regular Grid Coverage, such as an elevation matrix, to be stored in a GeoPackage. 4 | 5 | Conformance with this standard shall be checked using all the relevant tests specified in Annex A (normative) of this document. The framework, concepts, and methodology for testing, and the criteria to be achieved to claim conformance are specified in the OGC Compliance Testing Policies and Procedures and the OGC Compliance Testing web sitefootnote:[http://www.opengeospatial.org/cite[www.opengeospatial.org/cite]]. 6 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/clause_3_references.adoc: -------------------------------------------------------------------------------- 1 | == References 2 | 3 | The following normative documents contain provisions that, through reference in this text, constitute provisions of this document. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest edition of the normative document referred to applies. 4 | 5 | ISO: ISO 12639, TIFF™ Revision 6.0 Final, June 3, 1992 Adobe® Systems Incorporated, 2004 6 | 7 | [[New_WKT_Reference]]ISO / OGC: ISO 19162:2015 _Geographic information -- Well-known text representation of coordinate reference systems_. Also OGC 12-063r5. http://docs.opengeospatial.org/is/12-063r5/12-063r5.html, 2015 8 | 9 | [[Old_WKT_Reference]]OGC: OGC 01-009 _Implementation Specification: Coordinate Transformation Services Revision 1.0_ http://portal.opengeospatial.org/files/?artifact_id=999[_http://portal.opengeospatial.org/files/?artifact_id=999_], 2001 10 | 11 | OGC: GC 08-015r2, _Abstract Specification Topic 2 – Spatial Referencing by Coordinates_, (ISO 19111), 2010 12 | 13 | OGC: OGC 07-011, _Abstract Specification Topic 6: Schema for coverage geometry and functions_, (ISO 19123), 2006 14 | 15 | OGC: OGC 15-115r3 _CDB Core Standard: Model and Physical Data Store Structure_ https://portal.opengeospatial.org/files/?artifact_id=72712, 2016 16 | 17 | OGC: OGC 09-146r6 _Coverage Implementation Schema 1.1_ http://docs.opengeospatial.org/is/09-146r6/09-146r6.html, 2017 18 | 19 | OGC: OGC 12-128r12, _GeoPackage Encoding Standard 1.1_ http://www.geopackage.org/spec110/, 2015 20 | 21 | OGC: OGC 06-121r9 Web Services Common Standard, version 2.0.0, 2010 22 | 23 | [[_Ref425705852]]OGC: OGC 08-094r1, OGC^®^ SWE Common Data Model Encoding Standard, version 2.0, 2011 24 | 25 | UCUM : http://unitsofmeasure.org/ucum.html[The Unified Code for Units of Measure]. 2014 26 | 27 | Adobe Systems Incorporated: Adobe _TIFF ™ Revision 6.0 Final_, ftp://download.osgeo.org/libtiff/doc/TIFF6.pdf[_ftp://download.osgeo.org/libtiff/doc/TIFF6.pdf_], 1992 28 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/clause_5_conventions.adoc: -------------------------------------------------------------------------------- 1 | == Conventions 2 | 3 | This section provides details and examples for any conventions used in the document. Examples of conventions are symbols, abbreviations, use of XML schema, or special notes regarding how to read the document. 4 | 5 | === Identifiers 6 | 7 | The normative provisions in this standard are denoted by the URI 8 | 9 | http://www.opengis.net/spec/geopackage-gr/1.1 10 | 11 | All requirements and conformance tests that appear in this document are denoted by partial URIs which are relative to this base. The three letter acronym “Req” is equivalent to the above URI. NOTE: The abbreviation “gr” stands for grid-regular. 12 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/clause_8_media_types.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/2d-gridded-coverage/clause_8_media_types.adoc -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/images/README.md: -------------------------------------------------------------------------------- 1 | Image files for graphics go here. 2 | 3 | Each graphic is a separate file with the naming convention: 4 | 5 | "FIGn.xxx" where "n" is a number with leading zeroes appropriate for the total number of figures and "xxx" is the appropriate extension for the file type. 6 | 7 | or, for other graphics not associated with figures: 8 | 9 | "GRPn.xxx" where "n" is a sequential number with leading zeroes appropriate for the total number of graphics and "xxx" is the appropriate extension for the file type. 10 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/images/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/2d-gridded-coverage/images/image1.png -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/README.md: -------------------------------------------------------------------------------- 1 | This folder contains requirements description. 2 | 3 | Each file is a single requirement. The naming convention for these files is: 4 | 5 | "REQn.adoc" where "n" corresponds to the requirement number. Numbers should have preceeding zeros appropriate for the total number of requirements in the project (e.g., the first requirement could be REQ001 if less than 1000 requirements are anticipated). 6 | 7 | The requirement files are integrated into the main document as links. 8 | 9 | The requirement is expressed according to this pattern: 10 | 11 | NOTE: for each requirement, there should be a corresponding Abstract Test in the "abstract_tests" folder. 12 | 13 | NOTE: sample code may reference one or more requirements and should state which requirements are included in the code by adding the following line to the Extended Description: 14 | 15 | "#REQS: reqnum1,reqnum2,...reqnumn" 16 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ001.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 1* {set:cellbgcolor:#CACCCE}|Req/table-defs/coverage-ancillary + 4 | + 5 | 6 | A GeoPackage that contains tiled gridded data _SHALL_ contain a `gpkg_2d_gridded_coverage_ancillary` table or view as per the Coverage Ancillary Table Definition below. Subsequent extensions or custom implementations _MAY_ add additional columns to this table. Clients _SHALL_ ignore additional columns that are unrecognized. {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ002.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 2* {set:cellbgcolor:#CACCCE}|Req/table-defs/tile-ancillary + 4 | + 5 | 6 | A GeoPackage that contains tiled gridded data _SHALL_ contain a `gpkg_2d_gridded_tile_ancillary` table or view as per http://www.geopackage.org/spec/#gpkg_2d_gridded_tile_ancillary_table[_Tile Ancillary Table Definition_]. Subsequent extensions or custom implementations _MAY_ add additional columns to this table. Clients _SHALL_ ignore additional columns that are unrecognized.{set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ003.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 3* {set:cellbgcolor:#CACCCE}|Req/gpkg-spatial-ref-sys-row + 4 | + 5 | 6 | GeoPackages complying with this extension _SHALL_ have a row in the `gpkg_spatial_ref_sys` table as described in http://www.geopackage.org/spec/#gpkg_spatial_ref_sys_record[_Spatial Ref Sys Table Record_]:{set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ004.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 4* {set:cellbgcolor:#CACCCE}|Req/gpkg-spatial-ref-sys-record + 4 | + 5 | 6 | The `gpkg_spatial_ref_sys` table in a GeoPackage _SHALL_ contain records to define all spatial reference systems used by tiled gridded data in a GeoPackage. The spatial reference system _SHALL_ be used to define the vertical datum, reference geoid, and units of measure for the tiled gridded elevation data.{set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ005.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 5* {set:cellbgcolor:#CACCCE}|Req/gpkg-contents + 4 | + 5 | 6 | The http://www.geopackage.org/spec/#\_contents[`gpkg_contents`] table _SHALL_ contain a row with a `data_type` column value of _2d-gridded-coverage_ for each tile pyramid containing tiled gridded data. When relevant, such as for elevation, the `srs_id` column value for that row _SHOULD_ reference an SRS that has a vertical datum. This requirement extends core requirement http://www.geopackage.org/spec/#r34[_GPKG-34_]). NOTE: Ideally for elevation data the vertical datum for each pyramid of elevation will be specified. However, it is impractical to mandate this for a number of reasons, including the difficulty in testing whether a specific SRS has a valid vertical datum. {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ006.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 6* {set:cellbgcolor:#CACCCE}|Req/gpkg-extensions + 4 | + 5 | 6 | GeoPackages complying with this extension _SHALL_ have rows in the `gpkg_extensions` table as described in <> Extensions Table Record (below). {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ007.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 7* {set:cellbgcolor:#CACCCE}| Req/gpkg-2d-gridded + 4 | + 5 | 6 | For each row in `gpkg_contents` with a `data_type` column value of _2d-gridded-coverage_, there _SHALL_ be a row in `gpkg_2d_gridded_coverage_ancillary`. Values of the `tile_matrix_set_name` column _SHALL_ reference values in the `gpkg_contents` `table_name` column. {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ008.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 8* {set:cellbgcolor:#CACCCE}| Req/gpkg-2d-gridded-coverage-ancillary-set-name + 4 | + 5 | 6 | Values of the `gpkg_2d_gridded_coverage_ancillary` `tile_matrix_set_name` column _SHALL_ reference values in the `gpkg_tile_matrix_set` `table_name` column. {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ009.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 9* {set:cellbgcolor:#CACCCE}| Req/gpkg-2d-gridded-coverage-ancillary-datatype + 4 | + 5 | 6 | Values of the `gpkg_2d_gridded_coverage_ancillary` `datatype` column _MAY_ be _integer_ or _float_. When the `datatype` is _float_, the `scale` and `offset` values _SHALL_ be set to the defaults. {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ010.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 10* {set:cellbgcolor:#CACCCE}| Req/gpkg-2d-gridded-tile-ancillary-row + 4 | + 5 | 6 | For each row in a tile pyramid user data table corresponding to tiled gridded data such as elevation data, there _SHALL_ be a row in `gpkg_2d_gridded_tile_ancillary`. {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ011.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 11* {set:cellbgcolor:#CACCCE}| Req/gpkg-2d-gridded-tile-ancillary-values + 4 | + 5 | 6 | Values of the `gpkg_2d_gridded_tile_ancillary` `tpudt_name` column _SHALL_ reference existing http://www.geopackage.org/spec/#tiles_user_tables[_tile pyramid user data tables_] and rows in `gpkg_2d_gridded_coverage_ancillary`. When the datatype of the corresponding `gpkg_2d_gridded_coverage_ancillary` row is _float_, the `scale` and `offset` values _SHALL_ be set to the defaults. {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ012.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 12* {set:cellbgcolor:#CACCCE}| Req/gpkg-2d-gridded-tile-ancillary-values-id + 4 | + 5 | 6 | Values of the `gpkg_2d_gridded_tile_ancillary` `tpudt_id` column _SHALL_ reference values in `id` column of the table referenced in `tpudt_name`. {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ013.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 13* {set:cellbgcolor:#CACCCE}| Req/gpkg-pyramid-user-data-datatype-integer + 4 | + 5 | 6 | For data where the `datatype` column of the corresponding row in the `gpkg_2d_gridded_coverage_ancillary` table is _integer_, the `tile_data` BLOB in the http://www.geopackage.org/spec/#tiles_user_tables[_tile pyramid user data table_] containing tiled, gridded data _SHALL_ be of http://www.ietf.org/rfc/rfc2046.txt[_MIME type_] `image/png` or `image/tiff`. If type `png` is being used, the data _SHALL_ be 16-bit unsigned integer (single channel - "greyscale"). 7 | 8 | NOTE: For additional requirements related to the use of TIFF, please see the TIFF Requirements Class. 9 | {set:cellbgcolor:#FFFFFF} 10 | |=== 11 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ014.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 14* {set:cellbgcolor:#CACCCE}| Req/gpkg- pyramid-user-data-datatype-float + 4 | + 5 | 6 | (extends http://www.geopackage.org/spec/#r36[_GPKG-36_] and http://www.geopackage.org/spec/#r37[_GPKG-37_]) For data where the `datatype` column of the corresponding row in the `gpkg_2d_gridded_coverage_ancillary` table is _float_, the `tile_data` BLOB in the http://www.geopackage.org/spec/#tiles_user_tables[_tile pyramid user data table_] containing tiled, gridded data _SHALL_ be of http://www.ietf.org/rfc/rfc2046.txt[_MIME type_] `image/tiff` and the default data encoding _SHALL_ be 32-bit floating point as described in the TIFF Encoding. {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ015.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 15* {set:cellbgcolor:#CACCCE}|Req/gpkg-tiff + 4 | + 5 | 6 | A TIFF file used for storing tiled `GeneralGridCoverage`, class grid-regular (such as elevation data), _SHALL_ conform to the TIFF specificationfootnote:[https://www.loc.gov/preservation/digital/formats/fdd/fdd000022.shtml]. {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ016.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 16* {set:cellbgcolor:#CACCCE}|Req/gpkg-tiff-samplesperpixel + 4 | + 5 | 6 | A TIFF file storing tiled GeneralGridCoverage, class grid-regular, such as elevation data, _SHALL_ have one sample per grid cellfootnote:[Note: In this document, pixel and grid cell may be considered as equivalent terms.]. This requirement constrains TIFF Section 2. {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ017.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 17* {set:cellbgcolor:#CACCCE}|Req/gpkg-tiff-datatype + 4 | + 5 | A TIFF file storing tiled GeneralGridCoverage, class grid-regular (such as elevation data) _SHALL_ have 32-bit floating (FLOAT - 11) data type or have a binary data type where the SampleFormat has a value of either 1 (unsigned integer) or 2 (signed integer) AND the BitsPerSample is either 8, 16, or 32. 6 | 7 | This requirement constrains TIFF Section 19. {set:cellbgcolor:#FFFFFF} 8 | |=== 9 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ018.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 18* {set:cellbgcolor:#CACCCE}|Req/gpkg-tiff-lzw + 4 | + 5 | 6 | A TIFF file storing tiled regular gridded coverages _MAY_ use the LZW compression option as per TIFF Section 13 - LZW Compression. + 7 | 8 | NOTE: TIFF section 13 describes TIFF compression scheme 5, an adaptive compression scheme for raster images. {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ019.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 19* {set:cellbgcolor:#CACCCE}|Req/gpkg-tiff-single-image + 4 | + 5 | 6 | A TIFF file storing tiled regular gridded coverages _SHALL_ only contain single images per TIFF file. This requirement constrains TIFF Section 2. Multiple image files are not allowed. {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ020.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 20* {set:cellbgcolor:#CACCCE}|Req/gpkg-tiff-internal-tiles + 4 | + 5 | 6 | A TIFF file storing tiled `GeneralGridCoverage`, `class grid-regular`, such as elevation data, _SHALL NOT_ contain internal tiles as per TIFF Section 15. This requirement constrains TIFF Section 15. {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/REQ021.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 21* {set:cellbgcolor:#CACCCE}|Req/gpkg-tiff-valid-component-value + 4 | + 5 | 6 | All pixels in a tile of coverage data _SHALL_ be set with a valid component value. The mechanisms defined in this extension _SHALL_ be used to indicate a missing value for a pixel. Use the data_null value defined in link:#coverage-ancillary[Coverage Ancillary]. Special Note: Special floating point values such as NaN and Inf SHALL NOT be used. {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/requirement.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 1* {set:cellbgcolor:#CACCCE}|/req/req-class-a/req-name-1 + 4 | + 5 | 6 | Requirement 'shall' statement {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/requirements_class_Core.adoc: -------------------------------------------------------------------------------- 1 | [cols="1,4",width="90%"] 2 | |=== 3 | 2+|*Requirements Class : Table Definitions* {set:cellbgcolor:#CACCCE} 4 | 2+|http://www.opengis.net/spec/geopackage-gr/1.1/core {set:cellbgcolor:#FFFFFF} 5 | |Target type |Token 6 | |Dependency |http://www.geopackage.org/spec/#tiles 7 | |*Requirement 1* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ001.adoc[Req/coverage-ancillary] {set:cellbgcolor:#FFFFFF} 8 | |*Requirement 2* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ002.adoc[Req/tile-ancillary] {set:cellbgcolor:#FFFFFF} 9 | |*Requirement 3* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ003.adoc[Req/gpkg-spatial-ref-sys-row] {set:cellbgcolor:#FFFFFF} 10 | |*Requirement 4* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ004.adoc[Req/gpkg-spatial-ref-sys-record] {set:cellbgcolor:#FFFFFF} 11 | |*Requirement 5* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ005.adoc[Req/gpkg-contents] {set:cellbgcolor:#FFFFFF} 12 | |*Requirement 6* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ006.adoc[Req/gpkg-extensions] {set:cellbgcolor:#FFFFFF} 13 | |*Requirement 7* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ007.adoc[Req/gpkg-2d-gridded-coverage-ancillary] {set:cellbgcolor:#FFFFFF} 14 | |*Requirement 8* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ008.adoc[Req/gpkg-2d-gridded-coverage-ancillary-set-name] {set:cellbgcolor:#FFFFFF} 15 | |*Requirement 9* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ009.adoc[Req/gpkg-2d-gridded-coverage-ancillary-datatype] {set:cellbgcolor:#FFFFFF} 16 | |*Requirement 10* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ010.adoc[Req/gpkg-2d-gridded-tile-ancillary] {set:cellbgcolor:#FFFFFF} 17 | |*Requirement 11* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ011.adoc[Req/gpkg-2d-gridded-tile-ancillary-values] {set:cellbgcolor:#FFFFFF} 18 | |*Requirement 12* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ012.adoc[Req/gpkg-2d-gridded-tile-ancillary-dvalues-id] {set:cellbgcolor:#FFFFFF} 19 | |*Requirement 13* {set:cellbgcolor:#CACCCE} |link:../requirements/REQ013.adoc[Req/gpkg-pyramid-user-data-datatype-integer] {set:cellbgcolor:#FFFFFF} 20 | |=== 21 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/requirements_class_Tiff_Encoding.adoc: -------------------------------------------------------------------------------- 1 | [cols="1,4",width="90%"] 2 | |=== 3 | 2+|*Requirements Class : Tiff Encoding* {set:cellbgcolor:#CACCCE} 4 | 2+|http://www.opengis.net/spec/geopackage-gr/1.0/tiff {set:cellbgcolor:#FFFFFF} 5 | |Target type |Token 6 | |Dependency |http://www.geopackage.org/spec/#tiles 7 | |*Requirement 14* {set:cellbgcolor:#CACCCE} |Req/gpkg- pyramid-user-data-datatype-float {set:cellbgcolor:#FFFFFF} 8 | |*Requirement 15* {set:cellbgcolor:#CACCCE} |Req/gpkg-gr-tiff {set:cellbgcolor:#FFFFFF} 9 | |*Requirement 16* {set:cellbgcolor:#CACCCE} |Req/gpkg-gr-tiff-samplesperpixel {set:cellbgcolor:#FFFFFF} 10 | |*Requirement 17* {set:cellbgcolor:#CACCCE} |Req/gpkg-gr-tiff-datatype 11 | {set:cellbgcolor:#FFFFFF} 12 | |*Requirement 18* {set:cellbgcolor:#CACCCE} |Req/gpkg-gr-tiff-lzw {set:cellbgcolor:#FFFFFF} 13 | |*Requirement 19* {set:cellbgcolor:#CACCCE} |Req/gpkg-gr-tiff-single-image {set:cellbgcolor:#FFFFFF} 14 | |*Requirement 20* {set:cellbgcolor:#CACCCE} |Req/gpkg-gr-tiff-internal-tiles 15 | {set:cellbgcolor:#FFFFFF} 16 | |*Requirement 21* {set:cellbgcolor:#CACCCE} |Req/gpkg-tiff-valid-component-value 17 | {set:cellbgcolor:#FFFFFF} 18 | |=== 19 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/v1-0-req-classes/ReadMe.md: -------------------------------------------------------------------------------- 1 | Requirements classes from version 1.0 that have been merged into core for version 1.1. 2 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/v1-0-req-classes/requirements_class_2d_Gridded_Coverage_Ancillary.adoc: -------------------------------------------------------------------------------- 1 | [cols="1,4",width="90%"] 2 | |=== 3 | 2+|*Requirements Class : 2d Gridded Coverage Ancillary* {set:cellbgcolor:#CACCCE} 4 | 2+|http://www.opengis.net/spec/geopackage-gr/1.0/grid-coverage-ancillary {set:cellbgcolor:#FFFFFF} 5 | |Target type |Token 6 | |Dependency |http://www.geopackage.org/spec/#tiles 7 | |*Requirement 7* {set:cellbgcolor:#CACCCE} |Req/gpkg-2d-gridded-coverage-ancillary + 8 | requirement description {set:cellbgcolor:#FFFFFF} 9 | |*Requirement 8* {set:cellbgcolor:#CACCCE} |Req/gpkg-2d-gridded-coverage-ancillary-set-name + 10 | requirement description {set:cellbgcolor:#FFFFFF} 11 | 12 | |*Requirement 9* {set:cellbgcolor:#CACCCE} |Req/gpkg-2d-gridded-coverage-ancillary-datatype + 13 | requirement description 14 | {set:cellbgcolor:#FFFFFF} 15 | |=== 16 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/v1-0-req-classes/requirements_class_2d_Gridded_Tile_Ancillary.adoc: -------------------------------------------------------------------------------- 1 | [cols="1,4",width="90%"] 2 | |=== 3 | 2+|*Requirements Class : 2d Gridded Tile Ancillary* {set:cellbgcolor:#CACCCE} 4 | 2+|http://www.opengis.net/spec/geopackage-gr/1.0/grid-tile-ancillary {set:cellbgcolor:#FFFFFF} 5 | |Target type |Token 6 | |Dependency |http://www.geopackage.org/spec/#tiles 7 | |*Requirement 10* {set:cellbgcolor:#CACCCE} |Req/gpkg-2d-gridded-tile-ancillary + 8 | requirement description {set:cellbgcolor:#FFFFFF} 9 | |*Requirement 11* {set:cellbgcolor:#CACCCE} |Req/gpkg-2d-gridded-tile-ancillary-values + 10 | requirement description {set:cellbgcolor:#FFFFFF} 11 | |*Requirement 12* {set:cellbgcolor:#CACCCE} |Req/gpkg-2d-gridded-tile-ancillary-dvalues-id + 12 | requirement description 13 | {set:cellbgcolor:#FFFFFF} 14 | |=== 15 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/v1-0-req-classes/requirements_class_Table_Values.adoc: -------------------------------------------------------------------------------- 1 | [cols="1,4",width="90%"] 2 | |=== 3 | 2+|*Requirements Class : Table Values* {set:cellbgcolor:#CACCCE} 4 | 2+|http://www.opengis.net/spec/geopackage-gr/1.0/table-values {set:cellbgcolor:#FFFFFF} 5 | |Target type |Token 6 | |Dependency |http://www.geopackage.org/spec/#tiles 7 | |*Requirement 3* {set:cellbgcolor:#CACCCE} |Req/gpkg-spatial-ref-sys-row {set:cellbgcolor:#FFFFFF} 8 | |*Requirement 4* {set:cellbgcolor:#CACCCE} |Req/gpkg-spatial-ref-sys-record {set:cellbgcolor:#FFFFFF} 9 | |*Requirement 5* {set:cellbgcolor:#CACCCE} |Req/gpkg-contents {set:cellbgcolor:#FFFFFF} 10 | |*Requirement 6* {set:cellbgcolor:#CACCCE} |Req/gpkg-extensions {set:cellbgcolor:#FFFFFF} 11 | |=== 12 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/v1-0-req-classes/requirements_class_Tiff_Encoding.adoc: -------------------------------------------------------------------------------- 1 | [cols="1,4",width="90%"] 2 | |=== 3 | 2+|*Requirements Class : Tiff Encoding* {set:cellbgcolor:#CACCCE} 4 | 2+|http://www.opengis.net/spec/geopackage-gr/1.0/tiff {set:cellbgcolor:#FFFFFF} 5 | |Target type |Token 6 | |Dependency |http://www.geopackage.org/spec/#tiles 7 | |*Requirement 15* {set:cellbgcolor:#CACCCE} |Req/gpkg-gr-tiff {set:cellbgcolor:#FFFFFF} 8 | |*Requirement 16* {set:cellbgcolor:#CACCCE} |Req/gpkg-gr-tiff-samplesperpixel {set:cellbgcolor:#FFFFFF} 9 | |*Requirement 17* {set:cellbgcolor:#CACCCE} |Req/gpkg-gr-tiff-float 10 | {set:cellbgcolor:#FFFFFF} 11 | |*Requirement 18* {set:cellbgcolor:#CACCCE} |Req/gpkg-gr-tiff-lzw {set:cellbgcolor:#FFFFFF} 12 | |*Requirement 19* {set:cellbgcolor:#CACCCE} |Req/gpkg-gr-tiff-single-image {set:cellbgcolor:#FFFFFF} 13 | |*Requirement 20* {set:cellbgcolor:#CACCCE} |Req/gpkg-gr-tiff-internal-tiles 14 | {set:cellbgcolor:#FFFFFF} 15 | |*Requirement 21* {set:cellbgcolor:#CACCCE} |Req/gpkg-tiff-valid-component-value 16 | {set:cellbgcolor:#FFFFFF} 17 | |=== 18 | -------------------------------------------------------------------------------- /spec/2d-gridded-coverage/requirements/v1-0-req-classes/requirements_class_Tile_Pyramid_User_Data_Tables.adoc: -------------------------------------------------------------------------------- 1 | [cols="1,4",width="90%"] 2 | |=== 3 | 2+|*Requirements Class : Tile Pyramid User Data Tables* {set:cellbgcolor:#CACCCE} 4 | 2+|http://www.opengis.net/spec/geopackage-gr/1.0/tile-pyramid-user-data-tablaes {set:cellbgcolor:#FFFFFF} 5 | |Target type |Token 6 | |Dependency |http://www.geopackage.org/spec/#tiles 7 | |*Requirement 13* {set:cellbgcolor:#CACCCE} |Req/gpkg-pyramid-user-data-datatype-integer {set:cellbgcolor:#FFFFFF} 8 | |*Requirement 14* {set:cellbgcolor:#CACCCE} |Req/gpkg-pyramid-user-data-datatype-float {set:cellbgcolor:#FFFFFF} 9 | 10 | |=== 11 | -------------------------------------------------------------------------------- /spec/conceptual-model/.github/workflows/docker.yml: -------------------------------------------------------------------------------- 1 | # Auto-generated by Cimas: Do not edit it manually! 2 | # See https://github.com/metanorma/cimas 3 | name: docker 4 | 5 | on: 6 | push: 7 | branches: [ master, main ] 8 | pull_request: 9 | paths-ignore: 10 | - .gitlab-ci.yml 11 | - .github/workflows/test.yml 12 | - .github/workflows/generate.yml 13 | repository_dispatch: 14 | types: [ metanorma/metanorma-docker ] 15 | 16 | jobs: 17 | test-docker: 18 | runs-on: ubuntu-latest 19 | container: docker://metanorma/mn 20 | steps: 21 | - uses: actions/checkout@v2 22 | with: 23 | token: ${{ secrets.METANORMA_CI_PAT_TOKEN || github.token }} 24 | submodules: true 25 | 26 | - uses: actions/cache@v2 27 | with: 28 | path: /config/fonts 29 | key: fontist-docker 30 | restore-keys: fontist-docker 31 | 32 | - uses: actions/cache@v2 33 | with: 34 | path: ~/.metanorma-ietf-workgroup-cache.json 35 | key: metanorma-ietf-workgroup-cache 36 | restore-keys: metanorma-ietf-workgroup-cache 37 | 38 | - uses: metanorma/metanorma-build-scripts/gh-rubygems-setup-action@master 39 | with: 40 | token: ${{ secrets.METANORMA_CI_PAT_TOKEN }} 41 | 42 | - run: | 43 | curl -L --retry 3 https://raw.githubusercontent.com/metanorma/metanorma-build-scripts/master/gemfile-to-bundle-add.sh | bash 44 | 45 | - uses: actions-mn/cli/site-gen@main 46 | with: 47 | agree-to-terms: true 48 | 49 | - uses: actions/upload-artifact@master 50 | with: 51 | name: site 52 | path: site 53 | 54 | deploy-gh-pages: 55 | if: github.ref == 'refs/heads/master' 56 | runs-on: ubuntu-latest 57 | needs: test-docker 58 | steps: 59 | - uses: actions/checkout@v2 60 | 61 | - uses: actions/download-artifact@v1 62 | with: 63 | name: site 64 | 65 | - uses: peaceiris/actions-gh-pages@v3 66 | with: 67 | github_token: ${{ github.token }} 68 | publish_dir: ./site 69 | force_orphan: true 70 | user_name: ${{ github.actor }} 71 | user_email: ${{ format('{0}@users.noreply.github.com', github.actor) }} 72 | commit_message: "${{ format('Deploy to GitHub Pages: {0}', github.sha) }}" 73 | 74 | - uses: kolpav/purge-artifacts-action@v1 75 | with: 76 | token: ${{ github.token }} 77 | expire-in: 0 78 | -------------------------------------------------------------------------------- /spec/conceptual-model/.github/workflows/generate.yml: -------------------------------------------------------------------------------- 1 | # Auto-generated by Cimas: Do not edit it manually! 2 | # See https://github.com/metanorma/cimas 3 | name: generate 4 | 5 | on: 6 | push: 7 | branches: [ master, main ] 8 | pull_request: 9 | paths-ignore: 10 | - .gitlab-ci.yml 11 | - .github/workflows/test.yml 12 | - .github/workflows/docker.yml 13 | workflow_dispatch: 14 | 15 | jobs: 16 | test-linux: 17 | name: Test on ${{ matrix.os }} 18 | runs-on: ${{ matrix.os }} 19 | strategy: 20 | fail-fast: false 21 | matrix: 22 | os: [ ubuntu-latest, windows-latest, macos-latest ] 23 | steps: 24 | - uses: actions/checkout@v2 25 | with: 26 | token: ${{ secrets.METANORMA_CI_PAT_TOKEN || github.token }} 27 | submodules: true 28 | 29 | - uses: actions/cache@v2 30 | with: 31 | path: ~/.cache/xml2rfc 32 | key: xml2rfc 33 | restore-keys: xml2rfc 34 | 35 | - uses: actions/cache@v2 36 | with: 37 | path: ~/.fontist 38 | key: fontist-${{ runner.os }} 39 | restore-keys: fontist-${{ runner.os }} 40 | 41 | - uses: actions/cache@v2 42 | with: 43 | path: ~/.metanorma-ietf-workgroup-cache.json 44 | key: metanorma-ietf-workgroup-cache 45 | restore-keys: metanorma-ietf-workgroup-cache 46 | 47 | - if: matrix.os == 'windows-latest' 48 | run: rm Gemfile 49 | 50 | - uses: actions-mn/setup@master 51 | 52 | - uses: actions-mn/cli/site-gen@main 53 | with: 54 | agree-to-terms: true 55 | -------------------------------------------------------------------------------- /spec/conceptual-model/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .swp 3 | .tmp.xml 4 | 5 | # Deploy key 6 | deploy_key 7 | -------------------------------------------------------------------------------- /spec/conceptual-model/.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | # Auto-generated by Cimas: Do not edit it manually! 2 | # See https://github.com/metanorma/cimas 3 | image: 4 | name: metanorma/mn 5 | entrypoint: [ "" ] 6 | 7 | cache: 8 | paths: 9 | 10 | stages: 11 | - build 12 | - deploy 13 | 14 | 15 | build: 16 | stage: build 17 | script: 18 | # We need to do this to install mscorefonts 19 | - curl -Ls -o yq https://github.com/mikefarah/yq/releases/download/3.3.0/yq_linux_amd64 20 | - chmod +x yq && mv yq /usr/bin 21 | - yq 22 | - apt-add-repository -y contrib && apt-get update 23 | - echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections 24 | - apt-get install -y ttf-mscorefonts-installer 25 | - curl -Ls https://raw.githubusercontent.com/metanorma/vista-fonts-installer/master/vista-fonts-installer.sh | bash 26 | - curl -L --retry 3 https://raw.githubusercontent.com/metanorma/metanorma-build-scripts/master/gemfile-to-bundle-add.sh | bash 27 | - bundle install 28 | - metanorma site generate sources --output-dir public 29 | 30 | artifacts: 31 | paths: 32 | - public 33 | 34 | pages: 35 | dependencies: 36 | - build 37 | stage: deploy 38 | script: 39 | - > 40 | 'curl --location --output artifacts.zip --header 41 | "JOB-TOKEN: $CI_JOB_TOKEN" "https://gitlab.com/api/v4/projects/$CI_PROJECT_ID/jobs/artifacts/master/download?job=build"' 42 | artifacts: 43 | paths: 44 | - public 45 | only: 46 | - master 47 | -------------------------------------------------------------------------------- /spec/conceptual-model/Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "metanorma-cli" 4 | gem "relaton-cli" 5 | -------------------------------------------------------------------------------- /spec/conceptual-model/RDF/gpkg/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | gpkg 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /spec/conceptual-model/RDF/gpkg/attributes.ttl: -------------------------------------------------------------------------------- 1 | # baseURI: http://ogc.org/spec/oapi-common/0.1/attributes 2 | # imports: http://ogc.org/spec/gpkg/1.3.0/core 3 | # prefix: attributes 4 | 5 | @prefix attributes: . 6 | @prefix core: . 7 | @prefix owl: . 8 | @prefix rdf: . 9 | @prefix rdfs: . 10 | @prefix xsd: . 11 | 12 | 13 | a owl:Ontology ; 14 | owl:imports ; 15 | owl:versionInfo "Created with TopBraid Composer" ; 16 | . 17 | attributes:ATTRIBUTES 18 | a core:DataType ; 19 | rdfs:label "ATTRIBUTES" ; 20 | . 21 | attributes:AttributesStore 22 | a owl:Class ; 23 | rdfs:label "Attributes store" ; 24 | rdfs:subClassOf core:EntityStore ; 25 | rdfs:subClassOf [ 26 | a owl:Restriction ; 27 | owl:hasValue attributes:ATTRIBUTES ; 28 | owl:onProperty core:dataType ; 29 | ] ; 30 | . 31 | -------------------------------------------------------------------------------- /spec/conceptual-model/RDF/gpkg/extensions.ttl: -------------------------------------------------------------------------------- 1 | # baseURI: http://ogc.org/spec/gpkg/1.3.0/extensions 2 | # imports: http://ogc.org/spec/gpkg/1.3.0/core 3 | # prefix: extensions 4 | 5 | @prefix extensions: . 6 | @prefix owl: . 7 | @prefix rdf: . 8 | @prefix rdfs: . 9 | @prefix xsd: . 10 | 11 | 12 | rdfs:subClassOf [ 13 | a owl:Restriction ; 14 | owl:minCardinality "0"^^xsd:nonNegativeInteger ; 15 | owl:onProperty extensions:extension ; 16 | ] ; 17 | . 18 | 19 | a owl:Ontology ; 20 | owl:imports ; 21 | owl:versionInfo "Created with TopBraid Composer" ; 22 | . 23 | extensions:Extension 24 | a owl:Class ; 25 | rdfs:label "Extension" ; 26 | rdfs:subClassOf [ 27 | a owl:Restriction ; 28 | owl:cardinality "1"^^xsd:nonNegativeInteger ; 29 | owl:onProperty extensions:definition ; 30 | ] ; 31 | rdfs:subClassOf [ 32 | a owl:Restriction ; 33 | owl:cardinality "1"^^xsd:nonNegativeInteger ; 34 | owl:onProperty extensions:scope ; 35 | ] ; 36 | rdfs:subClassOf [ 37 | a owl:Restriction ; 38 | owl:cardinality "1"^^xsd:nonNegativeInteger ; 39 | owl:onProperty ; 40 | ] ; 41 | rdfs:subClassOf [ 42 | a owl:Restriction ; 43 | owl:minCardinality "0"^^xsd:nonNegativeInteger ; 44 | owl:onProperty ; 45 | ] ; 46 | rdfs:subClassOf [ 47 | a owl:Restriction ; 48 | owl:minCardinality "0"^^xsd:nonNegativeInteger ; 49 | owl:onProperty ; 50 | ] ; 51 | . 52 | extensions:ExtensionScope 53 | a owl:Class ; 54 | rdfs:label "Extension" ; 55 | . 56 | extensions:READ-WRITE 57 | a extensions:ExtensionScope ; 58 | rdfs:label "READ-WRITE" ; 59 | . 60 | extensions:WRITE-ONLY 61 | a extensions:ExtensionScope ; 62 | rdfs:label "WRITE-ONLY" ; 63 | . 64 | extensions:definition 65 | a rdf:Property ; 66 | rdfs:label "definition" ; 67 | rdfs:range xsd:anyURI ; 68 | . 69 | extensions:extension 70 | a rdf:Property ; 71 | rdfs:label "extension" ; 72 | rdfs:range extensions:Extension ; 73 | . 74 | extensions:scope 75 | a rdf:Property ; 76 | rdfs:label "scope" ; 77 | rdfs:range extensions:ExtensionScope ; 78 | . 79 | -------------------------------------------------------------------------------- /spec/conceptual-model/RDF/oapi-common/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | oapi-common 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /spec/conceptual-model/RDF/oapi-common/bbox.ttl: -------------------------------------------------------------------------------- 1 | # baseURI: http://ogc.org/spec/oapi-common/0.1/bbox 2 | # imports: http://ogc.org/spec/oapi-common/0.1/crs 3 | # imports: http://www.w3.org/2003/01/geo/wgs84_pos 4 | # prefix: bbox 5 | 6 | @prefix bbox: . 7 | @prefix owl: . 8 | @prefix rdf: . 9 | @prefix rdfs: . 10 | @prefix xsd: . 11 | 12 | 13 | a owl:Ontology ; 14 | owl:imports ; 15 | owl:imports ; 16 | owl:versionInfo "Created with TopBraid Composer" ; 17 | . 18 | bbox:AxisLabel 19 | a owl:Class ; 20 | rdfs:label "Axis label" ; 21 | . 22 | bbox:AxisLabel_X 23 | a bbox:AxisLabel ; 24 | rdfs:label "X" ; 25 | . 26 | bbox:AxisLabel_Y 27 | a bbox:AxisLabel ; 28 | rdfs:label "Y" ; 29 | . 30 | bbox:AxisLabel_lat 31 | a bbox:AxisLabel ; 32 | rdfs:label "lat" ; 33 | . 34 | bbox:AxisLabel_lon 35 | a bbox:AxisLabel ; 36 | rdfs:label "lon" ; 37 | . 38 | bbox:BoundingBox 39 | a owl:Class ; 40 | rdfs:label "Bounding box" ; 41 | rdfs:subClassOf [ 42 | a owl:Restriction ; 43 | owl:cardinality "1"^^xsd:nonNegativeInteger ; 44 | owl:onProperty bbox:lowerLeft ; 45 | ] ; 46 | rdfs:subClassOf [ 47 | a owl:Restriction ; 48 | owl:cardinality "1"^^xsd:nonNegativeInteger ; 49 | owl:onProperty bbox:upperRight ; 50 | ] ; 51 | rdfs:subClassOf [ 52 | a owl:Restriction ; 53 | owl:cardinality "1"^^xsd:nonNegativeInteger ; 54 | owl:onProperty ; 55 | ] ; 56 | rdfs:subClassOf [ 57 | a owl:Restriction ; 58 | owl:cardinality "2"^^xsd:nonNegativeInteger ; 59 | owl:onProperty bbox:axisLabel ; 60 | ] ; 61 | . 62 | bbox:axisLabel 63 | a rdf:Property ; 64 | rdfs:label "axis label" ; 65 | rdfs:range bbox:AxisLabel ; 66 | . 67 | bbox:bbox 68 | a rdf:Property ; 69 | rdfs:label "bbox" ; 70 | rdfs:range bbox:BoundingBox ; 71 | . 72 | bbox:lowerLeft 73 | a rdf:Property ; 74 | rdfs:label "lower left" ; 75 | rdfs:range ; 76 | . 77 | bbox:upperRight 78 | a rdf:Property ; 79 | rdfs:label "upper right" ; 80 | rdfs:range ; 81 | . 82 | -------------------------------------------------------------------------------- /spec/conceptual-model/RDF/oapi-common/crs.ttl: -------------------------------------------------------------------------------- 1 | # baseURI: http://ogc.org/spec/oapi-common/0.1/crs 2 | # imports: http://purl.org/dc/terms/ 3 | # prefix: crs 4 | 5 | @prefix crs: . 6 | @prefix owl: . 7 | @prefix rdf: . 8 | @prefix rdfs: . 9 | @prefix xsd: . 10 | 11 | 12 | a owl:Ontology ; 13 | owl:imports ; 14 | owl:versionInfo "Created with TopBraid Composer" ; 15 | . 16 | crs:CoordinateReferenceSystem 17 | a owl:Class ; 18 | rdfs:label "Coordinate reference system" ; 19 | rdfs:subClassOf [ 20 | a owl:Restriction ; 21 | owl:maxCardinality "1"^^xsd:nonNegativeInteger ; 22 | owl:onProperty crs:definition ; 23 | ] ; 24 | rdfs:subClassOf [ 25 | a owl:Restriction ; 26 | owl:maxCardinality "1"^^xsd:nonNegativeInteger ; 27 | owl:onProperty ; 28 | ] ; 29 | rdfs:subClassOf [ 30 | a owl:Restriction ; 31 | owl:maxCardinality "1"^^xsd:nonNegativeInteger ; 32 | owl:onProperty ; 33 | ] ; 34 | rdfs:subClassOf [ 35 | a owl:Restriction ; 36 | owl:maxCardinality "1"^^xsd:nonNegativeInteger ; 37 | owl:onProperty ; 38 | ] ; 39 | . 40 | crs:crs 41 | a rdf:Property ; 42 | rdfs:label "crs" ; 43 | rdfs:range crs:CoordinateReferenceSystem ; 44 | . 45 | crs:definition 46 | a rdf:Property ; 47 | rdfs:label "definition" ; 48 | rdfs:range xsd:string ; 49 | . 50 | -------------------------------------------------------------------------------- /spec/conceptual-model/RDF/tms/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | tms 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /spec/conceptual-model/UML/README.md: -------------------------------------------------------------------------------- 1 | Store UML content in this directory. Feel free to use any organizational scheme that you like. 2 | 3 | Figures derived from UML diagrams should be placed in the "figures" folder. 4 | -------------------------------------------------------------------------------- /spec/conceptual-model/UML/attributes.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | class AttributesStore { 4 | dataType = ATTRIBUTES 5 | } 6 | EntityStore <|.. AttributesStore 7 | 8 | @enduml -------------------------------------------------------------------------------- /spec/conceptual-model/UML/convention1.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | Class AnyClass { 4 | +id: integer 5 | ... 6 | } 7 | Class AssociatedClass { 8 | +id: integer 9 | +parent_id: integer 10 | ... 11 | } 12 | 13 | AnyClass --> AssociatedClass : association 14 | 15 | @enduml -------------------------------------------------------------------------------- /spec/conceptual-model/UML/convention2.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | Class GeoPackage { 4 | } 5 | Class EntityStore{ 6 | } 7 | 8 | GeoPackage o-- "*" EntityStore : contents 9 | 10 | @enduml -------------------------------------------------------------------------------- /spec/conceptual-model/UML/convention3.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | Class BaseClass { 4 | } 5 | Class ChildClass { 6 | } 7 | 8 | BaseClass <|-- ChildClass 9 | 10 | @enduml -------------------------------------------------------------------------------- /spec/conceptual-model/UML/convention4.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | Class BaseClass { 4 | } 5 | Class RealizedClass { 6 | } 7 | 8 | BaseClass <|.. RealizedClass 9 | 10 | @enduml -------------------------------------------------------------------------------- /spec/conceptual-model/UML/convention5.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | Class AnyClass{ 4 | mandatory_attribute: String 5 | optional_attribute: String? 6 | } 7 | 8 | @enduml -------------------------------------------------------------------------------- /spec/conceptual-model/UML/convention6.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | Class AnyClass { 4 | +id: integer 5 | ... 6 | } 7 | Class AssociatedClass { 8 | +id: integer 9 | +parent_id: integer 10 | ... 11 | } 12 | 13 | AnyClass ..> AssociatedClass : dependency 14 | 15 | @enduml -------------------------------------------------------------------------------- /spec/conceptual-model/UML/core.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | struct CoordinateReferenceSystem { 4 | title: String 5 | id: Integer 6 | organization: String 7 | organization_coordsys_id: Integer 8 | definition: WKT2 9 | description: String? 10 | } 11 | struct BoundingBox { 12 | min_x: Double 13 | min_y: Double 14 | max_x: Double 15 | max_y: Double 16 | } 17 | entity EntityStore { 18 | title: String 19 | identifier: String? 20 | description: String? 21 | last_change: DateTime 22 | } 23 | enum DataType { 24 | features 25 | tiles 26 | attributes 27 | 2d-gridded-coverage 28 | } 29 | enum ValueType { 30 | Boolean 31 | TinyInteger 32 | SmallInteger 33 | MediumInteger 34 | Integer 35 | Float 36 | Real 37 | String 38 | Blob 39 | Geometry 40 | Date 41 | DateTime 42 | } 43 | class EntityType { 44 | dataType: DataType 45 | } 46 | class AttributeType { 47 | name: String 48 | valueType: ValueType 49 | } 50 | entity GeoPackage { 51 | } 52 | class Entity << (O,lightblue) Object >> { 53 | } 54 | GeoPackage o-- "3..n" CoordinateReferenceSystem 55 | EntityStore --> CoordinateReferenceSystem 56 | EntityStore o-- "0..1" BoundingBox 57 | BoundingBox --> CoordinateReferenceSystem 58 | GeoPackage o-- "*" EntityStore: contents 59 | EntityStore o-- "*" Entity 60 | EntityStore o-- EntityType 61 | EntityType o-- "*" AttributeType 62 | Entity ..> EntityType 63 | Entity o-- "*" Attribute 64 | Attribute ..> AttributeType 65 | 66 | @enduml 67 | -------------------------------------------------------------------------------- /spec/conceptual-model/UML/extensions.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | class Extension { 4 | title: String 5 | definition: String 6 | scope: ExtensionScope 7 | } 8 | class ExtensionScope { 9 | <> 10 | READ-WRITE 11 | WRITE-ONLY 12 | } 13 | GeoPackage o-- "*" Extension 14 | Extension --> "*" EntityStore 15 | Extension --> "*" AttributeType 16 | EntityStore o-- "*" AttributeType 17 | 18 | @enduml 19 | -------------------------------------------------------------------------------- /spec/conceptual-model/UML/features.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | class GeometryAttributeType { 4 | valueType = Geometry 5 | geometryType: GeometryType 6 | z: DimensionSupport 7 | m: DimensionSupport 8 | } 9 | class DimensionSupport { 10 | <> 11 | PROHIBITED 12 | MANDATORY 13 | OPTIONAL 14 | } 15 | class GeometryType { 16 | <> 17 | GEOMETRY 18 | POINT 19 | LINESTRING 20 | POLYGON 21 | MULTIPOINT 22 | MULTILINESTRING 23 | MULTIPOLYGON 24 | GEOMETRYCOLLECTION 25 | CIRCULARSTRING 26 | COMPOUNDCURVE 27 | CURVEPOLYGON 28 | MULTICURVE 29 | MULTISURFACE 30 | CURVE 31 | SURFACE 32 | } 33 | class GeometryAttribute { 34 | geometry: GeoPackageBinary? 35 | } 36 | class AttributeType { 37 | name: String 38 | valueType: ValueType 39 | } 40 | class Attribute { 41 | value: Any? 42 | } 43 | object FeatureStore { 44 | dataType = features 45 | } 46 | object Feature { 47 | } 48 | EntityStore <|.. FeatureStore 49 | EntityType <|.. FeatureType 50 | Entity <|.. Feature 51 | FeatureStore o-- FeatureType 52 | AttributeType <|-- GeometryAttributeType 53 | FeatureStore o-- "*" Feature: features 54 | GeometryAttributeType --o FeatureType 55 | GeometryAttributeType --> CoordinateReferenceSystem : crs 56 | Feature ..> FeatureType 57 | Attribute ..> AttributeType 58 | GeometryAttribute ..> GeometryAttributeType 59 | Feature o-- GeometryAttribute: geometry 60 | Attribute <|-- GeometryAttribute 61 | 62 | @enduml -------------------------------------------------------------------------------- /spec/conceptual-model/UML/metadata.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | class MetadataEntityStore { 4 | } 5 | class MetadataAttributeType { 6 | valueType = String 7 | } 8 | class Metadata { 9 | scope: MetadataScope 10 | uri: String 11 | mimeType: String 12 | content: String 13 | } 14 | class MetadataReference { 15 | scope: ReferenceScope 16 | timestamp: DateTime 17 | } 18 | class ReferenceScope { 19 | <> 20 | geopackage 21 | entityStore 22 | attributeType 23 | entity 24 | value 25 | } 26 | class MetadataScope { 27 | <> 28 | undefined 29 | fieldSession 30 | collectionSession 31 | series 32 | dataset 33 | featureType 34 | feature 35 | attributeType 36 | attribute 37 | tile 38 | model 39 | catalog 40 | schema 41 | taxonomy 42 | software 43 | service 44 | collectionHardware 45 | nonGeographicDataset 46 | dimensionGroup 47 | style 48 | } 49 | MetadataReference o-- "0..1" EntityStore 50 | MetadataReference o-- "0..1" AttributeType 51 | MetadataReference o-- "0..1" Entity 52 | MetadataReference o-- "0..1" Value 53 | Metadata --> "1..n" MetadataReference 54 | Metadata --> "0..1" Metadata: parentMetadata 55 | MetadataEntityStore o-- "*" Metadata 56 | MetadataEntityStore o-- "*" MetadataReference 57 | MetadataEntityStore ..|> EntityStore 58 | Attribute <|-- MetadataAttribute 59 | Metadata --> MetadataAttribute 60 | MetadataAttributeType --|> AttributeType 61 | Metadata ..|> Entity 62 | MetadataAttribute ..> MetadataAttributeType 63 | MetadataAttribute *-- MetadataDocument 64 | EntityType <|-- MetadataEntityType 65 | Metadata --> MetadataEntityType 66 | MetadataEntityType o-- MetadataAttributeType 67 | @enduml 68 | -------------------------------------------------------------------------------- /spec/conceptual-model/UML/rte.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | class RelationStore { 4 | type: RelationName 5 | } 6 | class RelationName { 7 | <> 8 | media 9 | simple_attributes 10 | features 11 | attributes 12 | tiles 13 | } 14 | GeoPackage o-- "*" RelationStore 15 | 16 | EntityStore <|-- RelationStore 17 | RelationStore --> "2" EntityStore 18 | RelationStore o-- Relation 19 | Relation --> "2" Entity 20 | @enduml 21 | -------------------------------------------------------------------------------- /spec/conceptual-model/UML/schema.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | class SchemaStore { 4 | } 5 | class AttributeType { 6 | name: String? 7 | title: String? 8 | description: String? 9 | mimeType: String? 10 | constraintName: String? 11 | } 12 | class Constraint { 13 | description: String? 14 | } 15 | class RangeConstraint { 16 | min: Numeric 17 | minIsInclusive: Boolean 18 | max: Numeric 19 | maxIsInclusive: Boolean 20 | } 21 | class GlobConstraint { 22 | glob: String 23 | } 24 | class EnumConstraint { 25 | value: String 26 | } 27 | Constraint <|-- RangeConstraint 28 | Constraint <|-- GlobConstraint 29 | Constraint <|-- EnumConstraint 30 | GeoPackage o-- "*" SchemaStore 31 | EntityStore <|.. SchemaStore 32 | SchemaStore o-- "*" Constraint 33 | Constraint --> AttributeType 34 | Constraint --> EntityStore 35 | SchemaStore o-- "*" EntityStore 36 | SchemaStore o-- "*" AttributeType 37 | 38 | @enduml 39 | -------------------------------------------------------------------------------- /spec/conceptual-model/UML/tgce.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | class TiledGriddedCoverage { 4 | id: Integer 5 | dataType = tiles 6 | coverageDataType: TGCEDatatype 7 | scale: Real 8 | offset: Real 9 | precision: Real? 10 | nullValue: Real? 11 | gridCellEncoding: GridCellEncoding? 12 | unitOfMeasure: String? 13 | fieldName: String? 14 | quantityDefinition: String? 15 | } 16 | class CoverageTile { 17 | scale: Real 18 | offset: Real 19 | min: Real? 20 | max: Real? 21 | mean: Real? 22 | standardDeviation: Real? 23 | } 24 | class TGCEDatatype { 25 | <> 26 | integer 27 | float 28 | } 29 | class GridCellEncoding { 30 | <> 31 | grid-value-is-center 32 | grid-value-is-area 33 | grid-value-is-corner 34 | } 35 | 36 | TilePyramid <|-- TiledGriddedCoverage 37 | Tile <|-- CoverageTile 38 | TiledGriddedCoverage o-- "*" CoverageTile 39 | TilePyramid o-- "*" Tile 40 | 41 | @enduml 42 | -------------------------------------------------------------------------------- /spec/conceptual-model/UML/tiles.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | class Tile { 4 | id: Integer 5 | row: Integer 6 | column: Integer 7 | } 8 | class TileAttribute { 9 | data: BLOB 10 | } 11 | class TileMatrixSet { 12 | } 13 | class TileMatrix { 14 | zoomLevel: Integer 15 | matrixWidth: Integer 16 | matrixHeight: Integer 17 | tileWidth: Integer 18 | tileHeight: Integer 19 | pixelXSize: Double 20 | pixelYSize: Double 21 | } 22 | class TilePyramid { 23 | dataType = tiles 24 | } 25 | class TileAttributeType { 26 | title = "data" 27 | valueType = BLOB 28 | } 29 | Entity <|.. Tile 30 | Attribute <|-- TileAttribute 31 | AttributeType <|-- TileAttributeType 32 | EntityStore <|.. TilePyramid 33 | EntityType <|.. TileType 34 | TileMatrixSet o-- CoordinateReferenceSystem 35 | TileMatrixSet o-- BoundingBox 36 | TilePyramid o-- TileMatrixSet 37 | TileMatrixSet o-- "1..n" TileMatrix 38 | TilePyramid o-- "*" Tile 39 | Tile ..> TileMatrix: zoomLevel 40 | TileType ..> TileAttributeType 41 | EntityStore ..> EntityType 42 | Entity o-- "1..*" Attribute 43 | TileAttributeType <.. TileAttribute 44 | Tile --> TileAttribute 45 | 46 | @enduml -------------------------------------------------------------------------------- /spec/conceptual-model/figures/README.md: -------------------------------------------------------------------------------- 1 | Figures go here. 2 | 3 | Each figure is a separate file with the naming convention: 4 | 5 | "FIGn.xxx" where "n" is a number with leading zeroes appropriate for the total number of figures and "xxx" is the appropriate extension for the file type. -------------------------------------------------------------------------------- /spec/conceptual-model/figures/attributes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/conceptual-model/figures/attributes.png -------------------------------------------------------------------------------- /spec/conceptual-model/figures/convention1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/conceptual-model/figures/convention1.png -------------------------------------------------------------------------------- /spec/conceptual-model/figures/convention2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/conceptual-model/figures/convention2.png -------------------------------------------------------------------------------- /spec/conceptual-model/figures/convention3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/conceptual-model/figures/convention3.png -------------------------------------------------------------------------------- /spec/conceptual-model/figures/convention4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/conceptual-model/figures/convention4.png -------------------------------------------------------------------------------- /spec/conceptual-model/figures/convention5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/conceptual-model/figures/convention5.png -------------------------------------------------------------------------------- /spec/conceptual-model/figures/convention6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/conceptual-model/figures/convention6.png -------------------------------------------------------------------------------- /spec/conceptual-model/figures/core.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/conceptual-model/figures/core.png -------------------------------------------------------------------------------- /spec/conceptual-model/figures/extensions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/conceptual-model/figures/extensions.png -------------------------------------------------------------------------------- /spec/conceptual-model/figures/features.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/conceptual-model/figures/features.png -------------------------------------------------------------------------------- /spec/conceptual-model/figures/metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/conceptual-model/figures/metadata.png -------------------------------------------------------------------------------- /spec/conceptual-model/figures/rte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/conceptual-model/figures/rte.png -------------------------------------------------------------------------------- /spec/conceptual-model/figures/schema.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/conceptual-model/figures/schema.png -------------------------------------------------------------------------------- /spec/conceptual-model/figures/tgce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/conceptual-model/figures/tgce.png -------------------------------------------------------------------------------- /spec/conceptual-model/figures/tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/conceptual-model/figures/tiles.png -------------------------------------------------------------------------------- /spec/conceptual-model/iev/cache/version: -------------------------------------------------------------------------------- 1 | 0.3.1 -------------------------------------------------------------------------------- /spec/conceptual-model/metanorma.yml: -------------------------------------------------------------------------------- 1 | --- 2 | metanorma: 3 | deploy: 4 | email: "ci@metanorma.org" 5 | -------------------------------------------------------------------------------- /spec/conceptual-model/sections/00-preface.adoc: -------------------------------------------------------------------------------- 1 | 2 | .Preface 3 | 4 | The GeoPackage conceptual and logical models were developed in response to numerous requests from the GeoPackage implementation and developer community. 5 | 6 | Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights. 7 | 8 | Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the standard set forth in this document, and to provide supporting documentation. 9 | 10 | [abstract] 11 | == Abstract 12 | 13 | This document presents the conceptual and logical models for version 1.x of the https://www.ogc.org/pressroom/pressreleases/4416[OGC GeoPackage Standard]. 14 | The intent is that these models can be used to implement the GeoPackage standard using technology other than a SQLite database. 15 | 16 | [.preface] 17 | == Submitters 18 | 19 | All questions regarding this submission should be directed to the editor or the submitters: 20 | 21 | [%unnumbered] 22 | |=== 23 | h| Name h| Affiliation 24 | |Jeff Yutzler |Image Matters LLC 25 | |Amy Youmans |US Army Geospatial Center 26 | |Carl Reed |Carl Reed and Associates 27 | |=== 28 | 29 | [.preface] 30 | == Introduction 31 | 32 | This OGC document describes an OGC Conceptual Model (CM) and Logical Model (LM) Standard for encoding geospatial information based on the GeoPackage Standard. 33 | A *GeoPackage* is an open, standards-based, platform-independent, portable, self-describing, compact format for transferring geospatial information. 34 | 35 | This document was developed retroactively from the GeoPackage Encoding Standard (GES) 1.3.0. 36 | At the time the GES was first developed, OGC members decided that developing the CM or LM was not necessary as the GES was intended specifically for the SQLite database format. 37 | However, as SQLite's inherent limitations became more apparent, stakeholders determined that it would be beneficial to the community to document and standardize the CM and LM so that other PSMs could potentially be supported in the future. 38 | As a result, this document is agnostic to potential uses and implementation technologies. 39 | The OGC believes that GeoPackage has the potential to evolve to support use cases and computing environments that go beyond what was originally conceived for the GES. 40 | -------------------------------------------------------------------------------- /spec/conceptual-model/sections/01-scope.adoc: -------------------------------------------------------------------------------- 1 | 2 | == Scope 3 | 4 | The GeoPackage Conceptual Model Standard (this document) describes the model for encoding the following: 5 | 6 | * Vector features; 7 | 8 | * Tile matrix sets of imagery and raster maps at various scales; 9 | 10 | * Attributes (non-spatial data); and 11 | 12 | * Extensions. 13 | 14 | The CM and LM are Platform Independent Models (PIMs). 15 | The CM is a high level description of the concepts involved in the GeoPackage standard. 16 | The LM is an abstract representation of an interface or data model that can be _executed_ to produce physical artifacts. 17 | As such, neither the GeoPackage CM nor the LM can be implemented directly. 18 | Rather, they serve as the base for Platform Specific Models (PSM). 19 | A PSM adds to the PIM the technology-specific details needed to fully define the model for use with a specific technology. 20 | The PSM can then be used to generate artifacts such as schemas needed to build GeoPackage implementations. 21 | These artifacts include table definitions, integrity assertions, format limitations, and content constraints. 22 | -------------------------------------------------------------------------------- /spec/conceptual-model/sections/02-conformance.adoc: -------------------------------------------------------------------------------- 1 | 2 | == Conformance 3 | 4 | This standard identifies nine (9) conformance classes. 5 | One conformance class is defined for each package in the UML model. 6 | Each conformance class is defined by one requirements class. 7 | 8 | Only the Core conformance class is mandatory; all other conformance classes are optional. 9 | In the case where a conformance class has a dependency on another conformance class, that conformance class should also be implemented. 10 | 11 | The tests in Annex A are organized by Requirements Class. 12 | For example, an implementation of the Core conformance class must pass all tests specified in Annex A for the Core requirements class. 13 | -------------------------------------------------------------------------------- /spec/conceptual-model/sections/03-references.adoc: -------------------------------------------------------------------------------- 1 | 2 | [bibliography] 3 | == References 4 | 5 | The following normative documents contain provisions that, through reference in this text, constitute provisions of this document. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest edition of the normative document referred to applies. 6 | 7 | * [[[ISO_19115-1,ISO 19115-1]]] ISO: ISO 19115-1:2016, Geographic information — Metadata — Part 1: Fundamentals (2014). https://www.iso.org/standard/53798.html. 8 | 9 | * [[ISO_19115-3,ISO 19115-3]] ISO: ISO 19115-3:2016, Geographic information — Metadata — Part 3: XML schema implementation for fundamental concepts (2016). https://www.iso.org/standard/32579.html. 10 | 11 | * [[[OGC_06-103r4,OGC 06-103r4]]] OGC: OpenGIS® Implementation Standard for Geographic information - Simple feature access - Part 1: Common architecture (2011). https://portal.ogc.org/files/?artifact_id=25355. 12 | 13 | * [[[OGC_12-128r18,OGC 12-128r18]]] OGC: OGC GeoPackage Encoding Standard (2021). https://www.geopackage.org/spec131/index.html. 14 | 15 | * [[[OGC_17-066r1,OGC 17-066r1]]], Carl Reed: OGC 17-066, OGC GeoPackage Extension for Tiled Gridded Coverage Data (2017). http://docs.ogc.org/is/17-066r1/17-066r1.html. 16 | 17 | * [[[OGC_17-083r2,OGC 17-083r2]]], OGC: OGC 17-083r2, OGC Two Dimensional Tile Matrix Set (2019). http://docs.opengeospatial.org/is/17-083r2/17-083r2.html 18 | 19 | * [[[OGC_18-000,OGC 18-000]]], OGC: OGC 18-000, OGC GeoPackage Related Tables Extension (2019). http://docs.opengeospatial.org/is/18-000/18-000.html. 20 | 21 | * [[[OGC_18-010r7,OGC 18-010r7]]], OGC: OGC 18-010r7, Geographic information — Well-known text representation of coordinate reference systems (2019). https://docs.opengeospatial.org/is/18-010r7/18-010r7.html (also ISO 19162:2019). 22 | 23 | * [[[OGC_19-014r3,OGC 19-014r3]]] OGC: OGC Abstract Specification Topic 22 - Core Tiling Conceptual and Logical Models for 2D Euclidean Space (2020). https://docs.ogc.org/as/19-014r3/19-014r3.html. 24 | 25 | * [[[ISO_19101-1:2014,ISO 19101-1:2014]]] ISO: ISO 19101-1:2014, Geographic information — Reference model — Part 1: Fundamentals (2014). https://www.iso.org/standard/59164.html. 26 | -------------------------------------------------------------------------------- /spec/conceptual-model/sections/05-conventions.adoc: -------------------------------------------------------------------------------- 1 | == Conventions 2 | This section provides details and examples for any conventions used in the document. Examples of conventions are symbols, abbreviations, use of XML schema, or special notes regarding how to read the document. 3 | 4 | === Conceptual Model 5 | The CM is comprised of definitions of relevant concepts. 6 | Since the CM was reverse-engineered from the GES, this CM provides references _in italics_ indicating how the concepts are realized in the GES. 7 | 8 | === Logical Model 9 | The LM uses a modified form of Unified Modeling Language (UML) to describe GeoPackage classes. 10 | Classes are represented as UML classes and columns are represented as UML attributes. 11 | The conventions used are as follows: 12 | 13 | ==== Relationships 14 | .A solid arrow indicates an association. 15 | [#uml_association,reftext='{figure-caption} {counter:figure-num}'] 16 | image::figures/convention1.png[] 17 | 18 | .A dotted arrow indicates a dependency. 19 | [#uml_dependency,reftext='{figure-caption} {counter:figure-num}'] 20 | image::figures/convention6.png[] 21 | 22 | .A diamond-based line indicates an aggregation. 23 | [#uml_aggregation,reftext='{figure-caption} {counter:figure-num}'] 24 | image::figures/convention2.png[] 25 | 26 | .A solid line with a solid arrowhead indicates an inheritance. 27 | [#uml_inheritance,reftext='{figure-caption} {counter:figure-num}'] 28 | image::figures/convention3.png[] 29 | 30 | .A dotted line with a solid arrowhead indicates a realization. 31 | [#uml_realization,reftext='{figure-caption} {counter:figure-num}'] 32 | image::figures/convention4.png[] 33 | 34 | ==== Multiplicity 35 | * Multiplicity is assumed to be `1` unless otherwise specified. 36 | * An unbounded multiplicity (0..n) is represented as `*`. 37 | * For attributes, see <>. 38 | * Other relationship multiplicities are explicitly specified. 39 | 40 | .A Question Mark `?` after a type name indicates a nullable or optional attribute type 41 | [#uml_null,reftext='{figure-caption} {counter:figure-num}'] 42 | image::figures/convention5.png[] 43 | -------------------------------------------------------------------------------- /spec/conceptual-model/sections/annex-history.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | == Revision History 4 | 5 | [width="90%",options="header"] 6 | |=== 7 | |Date |Release |Editor | Primary clauses modified |Description 8 | |2021-05-01 |0.1 |Jeff Yutzler |all |initial version 9 | |2021-06-21 |0.2 |Jeff Yutzler |all |code complete 10 | |2021-07-31 |0.3 |Amy Youmans |all |review for clarity 11 | |2021-08-18 |0.4 |Carl Reed |1, 7 |review for clarity and consistency 12 | |2022-04-15 |0.5 |Roger Lott |multiple |correctness, clarity, and consistency 13 | |2022-04-27 |0.51 |Gobe Hobona |8 |consistency 14 | |2022-04-28 |0.52 |Irina Bastrakova |4 |consistency 15 | |2022-05-09 |0.6 |Carl Reed |all |review for clarity and consistency 16 | |2022-08-25 |0.7 |Jeff Yutzler |multiple |comments from open comment period 17 | |2022-09-15 |0.9 |Jeff Yutzler |all |migration to metanorma template 18 | |=== 19 | -------------------------------------------------------------------------------- /spec/conceptual-model/sections/requirements/README.md: -------------------------------------------------------------------------------- 1 | This folder contains requirements description. 2 | 3 | Each file is a single requirement. The naming convention for these files is: 4 | 5 | "REQn.adoc" where "n" corresponds to the requirement number. Numbers should have preceding zeros appropriate for the total number of requirements in the project (e.g., the first requirement could be REQ001 if less than 1000 requirements are anticipated). 6 | 7 | The requirement files are integrated into the main document as links. 8 | 9 | The requirement is expressed according to this pattern: 10 | 11 | NOTE: for each requirement, there should be a corresponding Abstract Test in the "abstract_tests" folder. 12 | 13 | NOTE: sample code may reference one or more requirements and should state which requirements are included in the code by adding the following line to the Extended Description: 14 | 15 | "#REQS: reqnum1,reqnum2,...reqnumn" 16 | -------------------------------------------------------------------------------- /spec/conceptual-model/sections/requirements/requirements_class_attributes.adoc: -------------------------------------------------------------------------------- 1 | [[rc_attributes]] 2 | 3 | [cols="1,4",width="90%"] 4 | |=== 5 | 2+|*Requirements Class* {set:cellbgcolor:#CACCCE} 6 | 2+|http://www.opengis.net/spec/GeoPackage/1.3/req/attributes {set:cellbgcolor:#FFFFFF} 7 | |Target type |Encoding Standard 8 | |Dependency |http://www.opengis.net/spec/GeoPackage/1.3/req/core 9 | |*Requirement 118* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/attributes/data_type + 10 | 2+| The Encoding Standard SHALL describe the encoding of attributes sets as an EntityStore instance with a _dataType_ of `attributes`. {set:cellbgcolor:#FFFFFF} 11 | |*Requirement 119* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/features/feature_store + 12 | 2+| The Encoding Standard SHALL describe the encoding of attributes sets as per the AttributesStore, AttributesSet, AttributesSetType, AttributeType, and Attribute classes. {set:cellbgcolor:#FFFFFF} 13 | |A | An AttributesSet SHALL conform to the AttributesSetType of the AttributesStore. 14 | |B | An AttributesSetType SHALL have an AttributeType that specifies a unique integer identifier. 15 | |C | An AttributesSetType SHALL NOT contain a GeometryAttributeType. 16 | |=== 17 | -------------------------------------------------------------------------------- /spec/conceptual-model/sections/requirements/requirements_class_extensions.adoc: -------------------------------------------------------------------------------- 1 | [[rc_extensions]] 2 | 3 | [cols="1,4",width="90%"] 4 | |=== 5 | 2+|*Requirements Class* {set:cellbgcolor:#CACCCE} 6 | 2+|http://www.opengis.net/spec/GeoPackage/1.3/req/extensions {set:cellbgcolor:#FFFFFF} 7 | |Target type |Encoding Standard 8 | |Dependency |http://www.opengis.net/spec/GeoPackage/1.3/req/core 9 | |*Requirement 58* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/extensions/def + 10 | 2+| The Encoding Standard SHALL describe the encoding of extensions as per the Extension class. {set:cellbgcolor:#FFFFFF} 11 | |A | An extension MAY apply to the whole GeoPackage or to specific EntityStore instances. The Encoding Standard SHALL describe the encoding of relevant EntityStore instances. 12 | |B | The Encoding Standard SHALL describe the encoding of extensions that pertain to a particular AttributeType of a particular EntityStore. 13 | |C | Extensions SHALL have a unique `extension_name` which SHALL be a unique case sensitive value of the form `_` where `` indicates the person or organization that developed and maintains the extension. The valid character set for `` SHALL be `[a-zA-Z0-9]`. The valid character set for `` SHALL be `[a-zA-Z0-9_]`. 14 | |D | An `extension_name` with the "gpkg" author name SHALL be reserved for extensions defined in an OGC document (e.g., Best Practices Document or Encoding Standard). 15 | |E | A `definition` value SHALL contain a permalink, URI, or reference to a document defining the extension. 16 | |F | A `scope` value SHALL conform to the ExtensionScope enumeration. 17 | |=== 18 | -------------------------------------------------------------------------------- /spec/conceptual-model/sections/requirements/requirements_class_features.adoc: -------------------------------------------------------------------------------- 1 | [[rc_features]] 2 | 3 | [cols="1,4",width="90%"] 4 | |=== 5 | 2+|*Requirements Class* {set:cellbgcolor:#CACCCE} 6 | 2+|http://www.opengis.net/spec/GeoPackage/1.3/req/features {set:cellbgcolor:#FFFFFF} 7 | |Target type |Encoding Standard 8 | |Dependency |http://www.opengis.net/spec/GeoPackage/1.3/req/core 9 | |*Requirement 18* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/features/data_type + 10 | 2+| The Encoding Standard SHALL describe the encoding of features as an EntityStore instance with a _dataType_ of `features`. {set:cellbgcolor:#FFFFFF} 11 | |*Requirement 19* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/features/wkb + 12 | 2+| The Encoding Standard SHALL describe the encoding of geometry values as attribute values containing the GeoPackageBinary format specified in link:http://www.geopackage.org/spec130/#gpb_format[OGC 12-128]. {set:cellbgcolor:#FFFFFF} 13 | |*Requirement 20* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/features/geometry_attribute_type + 14 | 2+| The Encoding Standard SHALL describe the encoding of a geometry attribute type as per the GeometryAttributeType class. {set:cellbgcolor:#FFFFFF} 15 | |A | The `valueType` SHALL be `Geometry`. 16 | |B | The `geometryType` SHALL be encoded as per the GeometryType enumeration. 17 | |C | The coordinate reference system SHALL reference a CoordinateReferenceSystem object. 18 | |D | The `z` SHALL be encoded as per the DimensionSupport enumeration. 19 | |E | The `m` SHALL be encoded as per the DimensionSupport enumeration. 20 | |*Requirement 29* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/features/feature_store + 21 | 2+| The Encoding Standard SHALL describe the encoding of features as per the FeatureStore, FeatureType, AttributeType, Feature, and Attribute classes. {set:cellbgcolor:#FFFFFF} 22 | |A | A Feature SHALL conform to the FeatureType of the FeatureStore. 23 | |B | A FeatureType SHALL have an AttributeType that specifies a unique integer identifier. 24 | |C | A FeatureType SHALL have exactly one geometry column as described by the GeometryAttributeType of the FeatureType. 25 | |=== 26 | -------------------------------------------------------------------------------- /spec/conceptual-model/sections/requirements/requirements_class_metadata.adoc: -------------------------------------------------------------------------------- 1 | [[rc_metadata]] 2 | 3 | [cols="1,4",width="90%"] 4 | |=== 5 | 2+|*Requirements Class* {set:cellbgcolor:#CACCCE} 6 | 2+|http://www.opengis.net/spec/GeoPackage/1.3/req/metadata {set:cellbgcolor:#FFFFFF} 7 | |Target type |Encoding Standard 8 | |Dependency |http://www.opengis.net/spec/GeoPackage/1.3/req/core 9 | |Dependency |http://www.opengis.net/spec/GeoPackage/1.3/req/extensions 10 | |*Requirement 93* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/metadata/metadata + 11 | 2+| The Encoding Standard SHALL describe the encoding of metadata as per the Metadata class. {set:cellbgcolor:#FFFFFF} 12 | |A | Metadata scopes from the MetadataScope enumeration SHOULD be used if possible. However, this list is not exhaustive and MAY be extended. 13 | |*Requirement 95* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/metadata/metadata_reference + 14 | 2+| The Encoding Standard SHALL describe the encoding of metadata references as per the MetadataReference class so that each Metadata instance is associated with the GeoPackage element or elements that it pertains to. {set:cellbgcolor:#FFFFFF} 15 | |A | MetadataReference scopes SHALL conform to the ReferenceScope enumeration. 16 | |*Requirement 102* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/metadata/hierarchical + 17 | 2+| The Encoding Standard SHALL describe the encoding of hierarchical metadata so that a particular metadata entry MAY have a parent. {set:cellbgcolor:#FFFFFF} 18 | |=== -------------------------------------------------------------------------------- /spec/conceptual-model/sections/requirements/requirements_class_rte.adoc: -------------------------------------------------------------------------------- 1 | [[rc_rte]] 2 | 3 | [cols="1,4",width="90%"] 4 | |=== 5 | 2+|*Requirements Class* {set:cellbgcolor:#CACCCE} 6 | 2+|http://www.opengis.net/spec/GeoPackage/1.3/req/rte {set:cellbgcolor:#FFFFFF} 7 | |Target type |Encoding Standard 8 | |Dependency |http://www.opengis.net/spec/GeoPackage/1.3/req/core 9 | |Dependency |http://www.opengis.net/spec/GeoPackage/1.3/req/extensions 10 | |*Requirement 12-4* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/rte/xr + 11 | 2+| The Encoding Standard SHALL describe the encoding of extended relationships as per the ExtendedRelation class. {set:cellbgcolor:#FFFFFF} 12 | |A | The ExtendedRelation SHALL describe the "base" and "related" EntityStore instances that participate in this relationship. 13 | |B | The `relationName` SHALL conform to the RelationName enumeration. 14 | |*Requirement 12-9* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/rte/m2m + 15 | 2+| The Encoding Standard SHALL describe the encoding of many-to-many relationships between "base" and "related" Entity instances that are members of the EntityStore instances defined in an ExtendedRelation instance. {set:cellbgcolor:#FFFFFF} 16 | |=== 17 | -------------------------------------------------------------------------------- /spec/conceptual-model/sections/requirements/requirements_class_schema.adoc: -------------------------------------------------------------------------------- 1 | [[rc_schema]] 2 | 3 | [cols="1,4",width="90%"] 4 | |=== 5 | 2+|*Requirements Class* {set:cellbgcolor:#CACCCE} 6 | 2+|http://www.opengis.net/spec/GeoPackage/1.3/req/schema {set:cellbgcolor:#FFFFFF} 7 | |Target type |Encoding Standard 8 | |Dependency |http://www.opengis.net/spec/GeoPackage/1.3/req/core 9 | |Dependency |http://www.opengis.net/spec/GeoPackage/1.3/req/extensions 10 | |*Requirement 103* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/schema/ad + 11 | 2+| The Encoding Standard SHALL describe the encoding of attribute descriptors as per the AttributeDescriptor class. {set:cellbgcolor:#FFFFFF} 12 | |A | An AttributeDescriptor SHALL reference a particular AttributeType of a particular EntityStore. 13 | |*Requirement 107* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/schema/constraint + 14 | 2+| The Encoding Standard SHALL describe the encoding of constraints as per the Constraint class and its subclasses. {set:cellbgcolor:#FFFFFF} 15 | |=== -------------------------------------------------------------------------------- /spec/conceptual-model/sections/requirements/requirements_class_tgce.adoc: -------------------------------------------------------------------------------- 1 | [[rc_tgce]] 2 | 3 | [cols="1,4",width="90%"] 4 | |=== 5 | 2+|*Requirements Class* {set:cellbgcolor:#CACCCE} 6 | 2+|http://www.opengis.net/spec/GeoPackage/1.3/req/tgce {set:cellbgcolor:#FFFFFF} 7 | |Target type |Encoding Standard 8 | |Dependency |http://www.opengis.net/spec/GeoPackage/1.3/req/core 9 | |Dependency |http://www.opengis.net/spec/GeoPackage/1.3/req/tiles 10 | |Dependency |http://www.opengis.net/spec/GeoPackage/1.3/req/extensions 11 | |*Requirement 11-5* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/tiles/data_type + 12 | 2+| The Encoding Standard SHALL describe the encoding of 2D gridded coverages as an EntityStore instance with a _dataType_ of `2d-gridded-coverage`. {set:cellbgcolor:#FFFFFF} 13 | |*Requirement 11-1* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/tgce/ca + 14 | 2+| The Encoding Standard SHALL describe the encoding of tiled gridded coverages as per the CoverageAncillary class. {set:cellbgcolor:#FFFFFF} 15 | |A | The `gridCellEncoding` SHALL conform to the GridCellEncoding enumeration. 16 | |*Requirement 11-2* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/tgce/ta + 17 | 2+| The Encoding Standard SHALL describe the encoding of coverage tiles as per the TileAncillary class. {set:cellbgcolor:#FFFFFF} 18 | |*Requirement 11-3* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/tgce/srs + 19 | 2+| In addition to the three coordinate reference systems listed in <>, the Encoding Standard SHALL describe the encoding of the additional required coordinate reference system listed in <>. {set:cellbgcolor:#FFFFFF} 20 | |=== 21 | 22 | [#gpkg_spatial_ref_sys_records_tgce,reftext='{table-caption} {counter:table-num}'] 23 | .Spatial Reference System Required Records 24 | [cols=",,,,,",options="header",] 25 | |======================================================================= 26 | |`name`|`id`|`organization`|`organization_coordsys_id`|`definition`|`description` 27 | |_any_|4979|`EPSG` or `epsg`|4979|_any_|_any_ 28 | |======================================================================= 29 | -------------------------------------------------------------------------------- /spec/conceptual-model/sections/requirements/requirements_class_tiles.adoc: -------------------------------------------------------------------------------- 1 | [[rc_tiles]] 2 | 3 | [cols="1,4",width="90%"] 4 | |=== 5 | 2+|*Requirements Class* {set:cellbgcolor:#CACCCE} 6 | 2+|http://www.opengis.net/spec/GeoPackage/1.3/req/tiles {set:cellbgcolor:#FFFFFF} 7 | |Target type |Encoding Standard 8 | |Dependency |http://www.opengis.net/spec/GeoPackage/1.3/req/core 9 | |*Requirement 34* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/tiles/data_type + 10 | 2+| The Encoding Standard SHALL describe the encoding of tiles as an EntityStore instance with a _dataType_ of `tiles`. {set:cellbgcolor:#FFFFFF} 11 | |*Requirement 38* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/tiles/tms + 12 | 2+| The Encoding Standard SHALL describe the encoding of tile matrix sets as per the TileMatrixSet class. {set:cellbgcolor:#FFFFFF} 13 | |A | The `min_x`, `max_x`, `min_y`, and `max_y` values SHALL be exact so that the bounding box coordinates for individual tiles in a tile pyramid may be calculated from those values. All tiles present in the tile pyramid SHALL fall within this bounding box. 14 | |B | The coordinate reference system SHALL be encoded as per the CoordinateReferenceSystem class. 15 | |*Requirement 42* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/tiles/tm + 16 | 2+| The Encoding Standard SHALL describe the encoding of tile matrixes as per the TileMatrix class. {set:cellbgcolor:#FFFFFF} 17 | |A | A TileMatrixSet SHALL have one TileMatrix per zoom level. 18 | |B | The width of a TileMatrix (the difference between `min_x` and `max_x` of the TileMatrixSet) SHALL equal the product of `matrixWidth`, `tileWidth`, and `pixelXSize` for that zoom level. Similarly, height of a TileMatrix (the difference between `min_y` and `max_y` of the TileMatrixSet) SHALL equal the product of `matrixHeight`, `tileHeight`, and `pixelYSize` for that zoom level. 19 | |C | The `zoomLevel` for a TileMatrix SHALL not be negative. 20 | |D | The `matrixWidth`, `matrixHeight`, `tileWidth`, `tileHeight`, `pixelXSize`, and `pixelYSize` for a TileMatrix SHALL be greater than 0. 21 | |*Requirement 54* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/GeoPackage/1.3/req/tiles/user_defined + 22 | 2+| The Encoding Standard SHALL describe the encoding of user-defined tile pyramids as per the TilePyramid and Tile classses. {set:cellbgcolor:#FFFFFF} 23 | |A | A tile pyramid MAY be sparsely populated. 24 | |=== 25 | -------------------------------------------------------------------------------- /spec/core/2_options.adoc: -------------------------------------------------------------------------------- 1 | == Options 2 | 3 | The optional capabilities specified in this clause depend on the required capabilities specified in clause <<_base>> above. 4 | Each subclause of this clause defines an indivisible module of functionality that can be used in GeoPackages. These modules are referred to as options. 5 | GeoPackages MAY use one or more options defined in this section. 6 | GeoPackages MAY omit the tables for options that are not used. 7 | At a minimum, a GeoPackage SHOULD contain at least one user data table as defined by the Features, Tiles, or Attributes options in clauses <>, <>, and <> respectively. 8 | 9 | [[r17]] 10 | [caption=""] 11 | .Requirement 17 12 | ==== 13 | [line-through]#A GeoPackage or Extended GeoPackage SHALL contain features per clause <> and/or tiles per clause <> and row(s) in the `gpkg_contents` table with lowercase `data_type` column values of "features" and/or "tiles" describing the user data tables.# 14 | ==== 15 | -------------------------------------------------------------------------------- /spec/core/4_security.adoc: -------------------------------------------------------------------------------- 1 | == Security Considerations 2 | 3 | Security considerations for implementations utilizing GeoPackages are in the domain of the implementing application, deployment platform, operating system and networking environment. 4 | The GeoPackage standard does not place any constraints on application, platform, operating system level or network security. 5 | 6 | Since GeoPackage is dependent on SQLite, implementors should monitor for security alerts related to SQLite and respond accordingly. 7 | 8 | -------------------------------------------------------------------------------- /spec/core/annexes/README.md: -------------------------------------------------------------------------------- 1 | Warning 2 | ======= 3 | 4 | Note that not all Annexes have not been converted to Asciidoc yet. Please read the missing Annexes in the PDF or Word document available on the [RFC public comment page](http://www.opengeospatial.org/standards/requests/105) on August 6, 2013. 5 | 6 | NOTE: We welcome contributions of Annex conversions from Word to Asciidoc. 7 | -------------------------------------------------------------------------------- /spec/core/annexes/biblio.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | == Bibliography (Informative) 3 | 4 | [bibliography] 5 | - [[[B1]]] http://developer.android.com/guide/topics/data/data-storage.html#db 6 | - [[[B2]]] https://developer.apple.com/technologies/ios/data-management.html 7 | - [[[B3]]] International Association of Oil & Gas Producers (IOGP): Understanding the EPSG Geodetic Parameter Dataset. Report 373-07-1 (2022). https://epsg.org/guidance-notes.html 8 | - [[[B4]]] http://en.wikipedia.org/wiki/ASCII 9 | - [[[B5]]] http://www.sqlite.org/lang_createtable.html#rowid 10 | - [[[B6]]] ISO 19115-2 Geographic information - - Metadata - Part 2: Metadata for imagery and gridded data 11 | - [[[B7]]] ISO 19139: Geographic information -- Metadata -- XML schema implementation 12 | - [[[B8]]] Dublin Core Metadata Initiative http://dublincore.org/ IETF RFC 5013 13 | - [[[B9]]] ISO 15836:2009 http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=52142 14 | - [[[B10]]] Content Standard for Digital Geospatial Metadata (CSDGM) 15 | - [[[B11]]] http://www.fgdc.gov/standards/projects/FGDC-standards-projects/metadata/base-metadata/index_html 16 | - [[[B12]]] Department of Defense Discovery Metadata Specification (DDMS) http://metadata.ces.mil/mdr/irs/DDMS/ 17 | - [[[B13]]] NMF NGA.STND.0012_2.0 / NMIS NGA.STND.0018_1.0 18 | - [[[B14]]] Unified Modeling Language (UML) http://www.uml.org/ 19 | - [[[B15]]] XML for Metadata Interchange (XMI) http://www.omg.org/spec/XMI/ 20 | - [[[B16]]] IDEF1x Data Modeling Method http://www.idef.com/IDEF1x.htm 21 | - [[[B17]]] Geography Markup Language (GML) ISO 19136:2007 22 | - [[[B18]]] ISO 19110 Geographic information – Methodology for feature cataloguing 23 | - [[[B19]]] RDF Vocabulary Description Language 1.0: RDF Schema http://www.w3.org/TR/rdf-schema/ 24 | - [[[B20]]] Web Ontology Language (OWL) http://www.w3.org/TR/2009/REC-owl2-xml-serialization-20091027/ 25 | - [[[B21]]] Simple Knowledge Organization System (SKOS) http://www.w3.org/TR/skos-reference/ 26 | - [[[B22]]] STANAG 7074 Digital Geographic Information Exchange Standard (DIGEST) - AGeoP-3A, edition 1, 19 October 1994 http://www.dgiwg.org/dgiwg/htm/documents/historical_documents.htm 27 | - [[[B23]]] ISO 19109 Geographic information - Rules for application schema 28 | - [[[B24]]] http://www.sqlite.org/changes.html 29 | - [[[B25]]] http://sqlite.org/src4/doc/trunk/www/design.wiki 30 | - [[[B26]]] OGC® 16-094r3 GeoPackage Elevation Extension Interoperability Experiment Engineering Report, Draft Revision 3, 21 June 2016 31 | - [[[B27]]] Media Types https://www.iana.org/assignments/media-types/media-types.xhtml 32 | - [[[B28]]] Guttman, A. (1984). "R-Trees: A Dynamic Index Structure for Spatial Searching" http://www-db.deis.unibo.it/courses/SI-LS/papers/Gut84.pdf. Proceedings of the 1984 ACM SIGMOD international conference on Management of data – SIGMOD '84. p. 47. 33 | -------------------------------------------------------------------------------- /spec/core/annexes/extension_geometry_encoding.adoc: -------------------------------------------------------------------------------- 1 | [[extension_geometry_encoding]] 2 | === User Defined Geometry Types Extension of GeoPackageBinary Geometry Encoding 3 | 4 | [NOTE] 5 | ===================== 6 | On August 15, 2016 the GeoPackage SWG voted to remove this extension from the standard due to interoperability concerns. For more information see the release notes. The original extension may be found in http://www.geopackage.org/spec110/#extension_geometry_encoding. 7 | ===================== 8 | -------------------------------------------------------------------------------- /spec/core/annexes/extension_geometry_srsid_triggers.adoc: -------------------------------------------------------------------------------- 1 | [[extension_geometry_srsid_triggers]] 2 | === Geometry SRS ID Triggers 3 | 4 | [NOTE] 5 | ===================== 6 | On August 15, 2016 the GeoPackage SWG voted to remove this extension from the standard due to interoperability concerns. For more information see the release notes. The original extension may be found in http://www.geopackage.org/spec110/#extension_geometry_srsid_triggers. 7 | ===================== 8 | -------------------------------------------------------------------------------- /spec/core/annexes/extension_geometry_type_triggers.adoc: -------------------------------------------------------------------------------- 1 | [[extension_geometry_type_triggers]] 2 | === Geometry Type Triggers 3 | 4 | [NOTE] 5 | ===================== 6 | On August 15, 2016 the GeoPackage SWG voted to remove this extension from the standard due to interoperability concerns. For more information see the release notes. The original extension may be found in http://www.geopackage.org/spec110/#extension_geometry_type_triggers. 7 | ===================== 8 | -------------------------------------------------------------------------------- /spec/core/annexes/extension_related_tables.adoc: -------------------------------------------------------------------------------- 1 | [[extension_related_tables]] 2 | === Related Tables 3 | 4 | This extension has been published separately as http://docs.opengeospatial.org/is/18-000/18-000.html[OGC 18-000]. 5 | -------------------------------------------------------------------------------- /spec/core/annexes/extension_template.adoc: -------------------------------------------------------------------------------- 1 | [[extension_template]] 2 | [appendix] 3 | == GeoPackage Extension Template (Informative) 4 | 5 | [float] 6 | === Extension Title 7 | 8 | Title of the Extension 9 | 10 | [float] 11 | === Introduction 12 | 13 | Description of extension 14 | 15 | [float] 16 | === Extension Author 17 | 18 | Author of extension, author_name. 19 | 20 | [float] 21 | === Extension Name or Template 22 | 23 | Name of the extension or definition of the template to create the name of extensions that should be used in gpkg_extensions 24 | 25 | [float] 26 | === Extension Type 27 | 28 | "Extension of Existing Requirement in Clause(s) XXX" or "New Requirement Dependent on Clause(s) YYY" 29 | 30 | [float] 31 | === Applicability 32 | 33 | Tables and/or columns on which this extension may be applied 34 | 35 | [float] 36 | === Scope 37 | 38 | Read-write or write-only with clarification if necessary 39 | 40 | [float] 41 | === Requirements 42 | 43 | Definition of extension and interdependencies with other extensions if any. 44 | 45 | [float] 46 | ==== GeoPackage 47 | 48 | Definition of extension data or MIME type(s) 49 | 50 | Definition of extension tables or table templates 51 | 52 | Definition of triggers or trigger templates 53 | 54 | [float] 55 | ==== GeoPackage SQLite Configuration 56 | 57 | Definition of SQLite configuration settings 58 | 59 | [cols=",,,",options="header"] 60 | |====== 61 | |Setting compile or runtime |Option |Shall / Not (Value) | Discussion 62 | | | | | 63 | |====== 64 | 65 | [float] 66 | ==== GeoPackage SQLite Extension 67 | 68 | Definition of SQL functions 69 | 70 | [cols=",,",options="header"] 71 | |====== 72 | |SQL Function |Description |Use 73 | |foo(bar, baz) : datatype |Returns r when w | 74 | |====== 75 | 76 | [float] 77 | === Abstract Test Suite 78 | All test cases required to verify conformance to this extension. 79 | 80 | [float] 81 | === Examples (Informative) 82 | Any example or samples demonstrating the extension in use. 83 | -------------------------------------------------------------------------------- /spec/core/annexes/extension_tiled_gridded_coverage_data.adoc: -------------------------------------------------------------------------------- 1 | [[extension_tiled_gridded_coverage_data]] 2 | === Tiled Gridded Coverage Data 3 | 4 | This extension has been published separately as http://docs.opengeospatial.org/is/17-066r1/17-066r1.html[OGC 17-066r1]. 5 | 6 | -------------------------------------------------------------------------------- /spec/core/annexes/extensions.adoc: -------------------------------------------------------------------------------- 1 | [[registered_extensions]] 2 | [appendix] 3 | == Registered Extensions (Normative) 4 | 5 | This clause specifies requirements for GeoPackage extensions. 6 | Definitions of those extensions are in the form specified by the template in <>. 7 | 8 | [cols=",",options="header"] 9 | |====== 10 | |Extension Name |Content Type 11 | |<> |features 12 | |<> | features 13 | |<> | tiles 14 | |<> | tiles 15 | |<> | general 16 | |<> | features 17 | |<> | spatial reference systems 18 | |<> | coverages 19 | |<> | related tables 20 | |====== 21 | 22 | include::extension_geometry_types.adoc[] 23 | 24 | include::extension_geometry_encoding.adoc[] 25 | 26 | include::extension_spatialindex.adoc[] 27 | 28 | include::extension_geometry_type_triggers.adoc[] 29 | 30 | include::extension_geometry_srsid_triggers.adoc[] 31 | 32 | include::extension_zoom_other_intervals.adoc[] 33 | 34 | include::extension_tiles_webp.adoc[] 35 | 36 | include::extension_metadata.adoc[] 37 | 38 | include::extension_schema.adoc[] 39 | 40 | include::extension_crs_wkt.adoc[] 41 | 42 | include::extension_tiled_gridded_coverage_data.adoc[] 43 | 44 | include::extension_related_tables.adoc[] 45 | -------------------------------------------------------------------------------- /spec/core/annexes/geometrytypes.adoc: -------------------------------------------------------------------------------- 1 | [[geometry_types]] 2 | [appendix] 3 | == Geometry Types (Normative) 4 | 5 | [#geometry_types_core,reftext='{table-caption} {counter:table-num}'] 6 | .Geometry Type Codes (Core) 7 | [cols="1,3",options="header"] 8 | |====== 9 | |Code|Name 10 | |0|GEOMETRY 11 | |1|POINT 12 | |2|LINESTRING 13 | |3|POLYGON 14 | |4|MULTIPOINT 15 | |5|MULTILINESTRING 16 | |6|MULTIPOLYGON 17 | |7|GEOMETRYCOLLECTION 18 | |====== 19 | 20 | [#geometry_types_extension,reftext='{table-caption} {counter:table-num}'] 21 | .Geometry Type Codes (Extension) 22 | [cols="1,3",options="header"] 23 | |====== 24 | |Code|Name 25 | |8|CIRCULARSTRING 26 | |9|COMPOUNDCURVE 27 | |10|CURVEPOLYGON 28 | |11|MULTICURVE 29 | |12|MULTISURFACE 30 | |13|CURVE 31 | |14|SURFACE 32 | |====== 33 | 34 | GEOMETRY subtypes are POINT, CURVE, SURFACE and GEOMETRYCOLLECTION. 35 | 36 | CURVE subtypes are LINESTRING, CIRCULARSTRING and COMPOUNDCURVE. 37 | 38 | SURFACE subtype is CURVEPOLYGON. 39 | 40 | CURVEPOLYGON subtype is POLYGON. 41 | 42 | GEOMETRYCOLLECTION subtypes are MULTIPOINT, MULTICURVE and MULTISURFACE. 43 | 44 | MULTICURVE subtype is MULTILINESTRING. 45 | 46 | MULTISURFACE subtype is MULTIPOLYGON. -------------------------------------------------------------------------------- /spec/core/annexes/rasterortilemetadataexample.adoc: -------------------------------------------------------------------------------- 1 | [[raster_or_tile_metadata_example_appendix]] 2 | [float] 3 | ===== Raster or Tile Metadata Example 4 | 5 | A number of raster image processing problems MAY require the support of more metadata that is contained in the image itself. 6 | Applications MAY use the `gpkg_metadata` and `gpkg_metadata_reference` tables defined in clause <<_metadata>> to store raster image metadata defined according to standard authoritative or application or vendor specific metadata models. 7 | An example of the data items in such a model is shown in the following table. 8 | 9 | * Rational Polynomial Coefficient 10 | * Photometric Interpretation 11 | * No Data Value 12 | * Compression Quality Factor 13 | * Georectification 14 | * NIIRS 15 | * Min X 16 | * Min Y 17 | * Max X 18 | * Max Y 19 | -------------------------------------------------------------------------------- /spec/core/annexes/tilesexample.adoc: -------------------------------------------------------------------------------- 1 | [[tiles_example_appendix]] 2 | [appendix] 3 | == Tiles Zoom Times Two Example (Informative) 4 | 5 | .Zoom Times Two Example 6 | [cols=",,,,,,,",options="header"] 7 | |======================================================================= 8 | |table_name |zoom_level |matrix_width |matrix_height |tile_width |tile_height |pixel_x_size |pixel_y_size 9 | |MyTiles |0 |8 |8 |512 |512 |69237.2 |68412.1 10 | |MyTiles |1 |16 |16 |512 |512 |34618.6 |34206.0 11 | |MyTiles |2 |32 |32 |512 |512 |17309.3 |17103.0 12 | |MyTiles |3 |64 |64 |512 |512 |8654.64 |8654.64 13 | |MyTiles |4 |128 |128 |512 |512 |4327.32 |4275.75 14 | |MyTiles |5 |256 |256 |512 |512 |2163.66 |2137.87 15 | |MyTiles |6 |512 |512 |512 |512 |1081.83 |1068.93 16 | |MyTiles |7 |1024 |1024 |512 |512 |540.915 |543.469 17 | |MyTiles |8 |2048 |2048 |512 |512 |270.457 |267.234 18 | |======================================================================= 19 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.3.1/README.md: -------------------------------------------------------------------------------- 1 | # Release Notes template 2 | This is an AsciiDoc version of the release notes for an OGC Standard. 3 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.3.1/annex-bibliography.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | [[Bibliography]] 3 | = Bibliography 4 | 5 | //list any non-normative references present in these Release Notes, but do not provide a list of new references from the revised standard. 6 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.3.1/annex-history.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | = Revision History 3 | 4 | .Revision History 5 | [width="90%",options="header"] 6 | |==================== 7 | |Date |Release |Editor | Primary clauses modified |Descriptions 8 | |2021-08-22 |0.1 |J. Yutzler | all| Initial Revision 9 | |==================== 10 | 11 | For the complete revision history, see link:https://github.com/opengeospatial/geopackage/commits/master/spec/core/release_notes/1.3.1[the GitHub repository]. 12 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.3.1/clause-0-preface.adoc: -------------------------------------------------------------------------------- 1 | Standard.[big]*Preface* 2 | 3 | This document provides the set of revision notes for OGC® GeoPackage Encoding Standard 1.3.1 (OGC 12-128r18) and does not modify that Standard. 4 | 5 | This document provides the details of edits, deficiency corrections, and enhancements of the above-referenced Standard. It also documents those items that have been deprecated. Finally, this document provides implementations details related to issues of backwards compatibility. 6 | 7 | _Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights._ 8 | 9 | _Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the Standard set forth in this document, and to provide supporting documentation._ 10 | 11 | .[big]*Keywords* 12 | ogcdoc, 13 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.3.1/clause-1-intro.adoc: -------------------------------------------------------------------------------- 1 | == Introduction 2 | 3 | === Scope 4 | 5 | //short scope of the standard and the general nature of changes 6 | 7 | === Document contributor contact points 8 | 9 | All questions regarding this document should be directed to the contacts provided below or the referenced Standard editor(s). 10 | 11 | .Contacts 12 | [width="80%",options="header"] 13 | |==================== 14 | |Name |Organization 15 | |Jeff Yutzler | Image Matters LLC 16 | |==================== 17 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.3.1/clause-2-references.adoc: -------------------------------------------------------------------------------- 1 | [[references]] 2 | == References 3 | 4 | The following normative documents are new or updated references in the Standard to which these Release Notes apply. 5 | 6 | //// 7 | Only add new references or those which have been updated to a more current version than presented in the preceding standard. 8 | 9 | References are to follow the Springer LNCS style, with the exception that optional information may be appended to references: DOIs are added after the date and web resource references may include an access date at the end of the reference in parentheses. See examples from Springer and OGC below. 10 | 11 | Smith, T.F., Waterman, M.S.: Identification of Common Molecular Subsequences. 12 | J. Mol. Biol. 147, 195–197 (1981) 13 | 14 | May, P., Ehrlich, H.C., Steinke, T.: ZIB Structure Prediction Pipeline: Composing 15 | a Complex Biological Workflow through Web Services. In: Nagel, W.E., Walter, 16 | W.V., Lehner, W. (eds.) Euro-Par 2006. LNCS, vol. 4128, pp. 1148–1158. Springer, 17 | Heidelberg (2006) 18 | 19 | Foster, I., Kesselman, C.: The Grid: Blueprint for a New Computing Infrastructure. 20 | Morgan Kaufmann, San Francisco (1999) 21 | 22 | Czajkowski, K., Fitzgerald, S., Foster, I., Kesselman, C.: Grid Information Services 23 | for Distributed Resource Sharing. In: 10th IEEE International Symposium on High 24 | Performance Distributed Computing, pp. 181–184. IEEE Press, New York (2001) 25 | 26 | Foster, I., Kesselman, C., Nick, J., Tuecke, S.: The Physiology of the Grid: an Open 27 | Grid Services Architecture for Distributed Systems Integration. Technical report, 28 | Global Grid Forum (2002) 29 | 30 | National Center for Biotechnology Information, http://www.ncbi.nlm.nih.gov 31 | 32 | ISO / TC 211: ISO 19115-1:2014 Geographic information -- Metadata -- Part 1: Fundamentals (2014) 33 | 34 | ISO / TC 211: ISO 19157:2013 Geographic information -- Data quality (2013) 35 | 36 | ISO / TC 211: ISO 19139:2007 Geographic information -- Metadata -- XML schema implementation (2007) 37 | 38 | ISO / TC 211: ISO 19115-3: Geographic information -- Metadata -- Part 3: XML schemas (2016) 39 | 40 | OGC: OGC 15-097 OGC Geospatial User Feedback Standard. Conceptual Model (2016) 41 | 42 | OGC: OGC 12-019, OGC City Geography Markup Language (CityGML) Encoding Standard (2012) 43 | 44 | OGC: OGC 14-005r3, OGC IndoorGML (2014) 45 | //// 46 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.3.1/clause-3-terms.adoc: -------------------------------------------------------------------------------- 1 | == Terms and definitions 2 | 3 | This document uses the terms defined in Sub-clause 5.3 of [OGC 06-121r8], which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this Standard. 4 | 5 | For the purposes of this document, the following additional terms and definitions apply. 6 | 7 | === administrative change 8 | An administrative change is a change that does not alter the conformance abstract tests for any requirements. It includes typographical errors, changes in wording to improve clarity or consistency, and perfunctory changes such as changes in version numbers. 9 | 10 | === critical Change 11 | A critical change is a change that alters requirements in a way that is known to cause reverse compatibility issues. 12 | 13 | === substantive change 14 | A substantive change is a change that alters requirements in a way that is not deemed to have a high risk for causing reverse compatibility issues. 15 | 16 | === Abbreviated terms 17 | 18 | //List any abbreviations and their full expansions that are used in this document 19 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.3.1/clause-5-critical.adoc: -------------------------------------------------------------------------------- 1 | [[Clause_Critical]] 2 | == Description of Critical Changes 3 | 4 | There are no critical changes in this release. 5 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.3.1/clause-6-substantive.adoc: -------------------------------------------------------------------------------- 1 | [[Clause_Substantive]] 2 | == Description of Substantive Changes 3 | 4 | There are no substantive changes in this release. 5 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.3.1/clause-7-future.adoc: -------------------------------------------------------------------------------- 1 | [[Clause_FutureWork]] 2 | == Future Work 3 | 4 | //OPTIONAL: Describe any Change Requests or Issues which are planned to be addressed in a future version of the Standard. 5 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.4.0/README.md: -------------------------------------------------------------------------------- 1 | # Release Notes template 2 | This is an AsciiDoc version of the release notes for an OGC Standard. 3 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.4.0/annex-bibliography.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | [[Bibliography]] 3 | = Bibliography 4 | 5 | //list any non-normative references present in these Release Notes, but do not provide a list of new references from the revised standard. 6 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.4.0/annex-history.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | = Revision History 3 | 4 | .Revision History 5 | [width="90%",options="header"] 6 | |==================== 7 | |Date |Release |Editor | Primary clauses modified |Descriptions 8 | |2023-03-19 |0.1 |J. Yutzler | all| Initial Revision 9 | |2023-03-29 |0.2 |J. Yutzler | 4, 6| 640/655 10 | |2023-05-24 |0.3 |J. Yutzler | 4, 6| 660/661 11 | |2023-05-31 |0.4 |J. Yutzler | 4 | OAB Review 12 | |2023-05-31 |0.4 |J. Yutzler | 4, 6 | Open Comment Period 13 | |2023-09-06 |0.5 |J. Yutzler | 4, 6 | Revert #653 14 | |2023-10-02 |0.6 |J. Yutzler | 7 | Add future work in response to #666 15 | |2023-10-19 |0.7 |J. Yutzler | 4 | 669/670 16 | |==================== 17 | 18 | For the complete revision history, see link:https://github.com/opengeospatial/geopackage/commits/master/spec/core/release_notes/1.4.0[the GitHub repository]. 19 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.4.0/clause-0-preface.adoc: -------------------------------------------------------------------------------- 1 | Standard.[big]*Preface* 2 | 3 | This document provides the set of revision notes for ]> and does not modify that Standard. 4 | 5 | This document provides the details of edits, deficiency corrections, and enhancements of the above-referenced Standard. It also documents those items that have been deprecated. Finally, this document provides implementations details related to issues of backwards compatibility. 6 | 7 | _Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights._ 8 | 9 | _Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the Standard set forth in this document, and to provide supporting documentation._ 10 | 11 | .[big]*Keywords* 12 | ogcdoc, 13 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.4.0/clause-1-intro.adoc: -------------------------------------------------------------------------------- 1 | == Introduction 2 | 3 | === Scope 4 | 5 | //short scope of the standard and the general nature of changes 6 | 7 | === Document contributor contact points 8 | 9 | All questions regarding this document should be directed to the contacts provided below or the referenced Standard editor(s). 10 | 11 | .Contacts 12 | [width="80%",options="header"] 13 | |==================== 14 | |Name |Organization 15 | |Jeff Yutzler | Image Matters LLC 16 | |==================== 17 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.4.0/clause-2-references.adoc: -------------------------------------------------------------------------------- 1 | [[references]] 2 | == References 3 | 4 | The following normative documents are new or updated references in the Standard to which these Release Notes apply. 5 | 6 | //// 7 | Only add new references or those which have been updated to a more current version than presented in the preceding standard. 8 | 9 | References are to follow the Springer LNCS style, with the exception that optional information may be appended to references: DOIs are added after the date and web resource references may include an access date at the end of the reference in parentheses. See examples from Springer and OGC below. 10 | 11 | Smith, T.F., Waterman, M.S.: Identification of Common Molecular Subsequences. 12 | J. Mol. Biol. 147, 195–197 (1981) 13 | 14 | May, P., Ehrlich, H.C., Steinke, T.: ZIB Structure Prediction Pipeline: Composing 15 | a Complex Biological Workflow through Web Services. In: Nagel, W.E., Walter, 16 | W.V., Lehner, W. (eds.) Euro-Par 2006. LNCS, vol. 4128, pp. 1148–1158. Springer, 17 | Heidelberg (2006) 18 | 19 | Foster, I., Kesselman, C.: The Grid: Blueprint for a New Computing Infrastructure. 20 | Morgan Kaufmann, San Francisco (1999) 21 | 22 | Czajkowski, K., Fitzgerald, S., Foster, I., Kesselman, C.: Grid Information Services 23 | for Distributed Resource Sharing. In: 10th IEEE International Symposium on High 24 | Performance Distributed Computing, pp. 181–184. IEEE Press, New York (2001) 25 | 26 | Foster, I., Kesselman, C., Nick, J., Tuecke, S.: The Physiology of the Grid: an Open 27 | Grid Services Architecture for Distributed Systems Integration. Technical report, 28 | Global Grid Forum (2002) 29 | 30 | National Center for Biotechnology Information, http://www.ncbi.nlm.nih.gov 31 | 32 | ISO / TC 211: ISO 19115-1:2014 Geographic information -- Metadata -- Part 1: Fundamentals (2014) 33 | 34 | ISO / TC 211: ISO 19157:2013 Geographic information -- Data quality (2013) 35 | 36 | ISO / TC 211: ISO 19139:2007 Geographic information -- Metadata -- XML schema implementation (2007) 37 | 38 | ISO / TC 211: ISO 19115-3: Geographic information -- Metadata -- Part 3: XML schemas (2016) 39 | 40 | OGC: OGC 15-097 OGC Geospatial User Feedback Standard. Conceptual Model (2016) 41 | 42 | OGC: OGC 12-019, OGC City Geography Markup Language (CityGML) Encoding Standard (2012) 43 | 44 | OGC: OGC 14-005r3, OGC IndoorGML (2014) 45 | //// 46 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.4.0/clause-3-terms.adoc: -------------------------------------------------------------------------------- 1 | == Terms and definitions 2 | 3 | This document uses the terms defined in Sub-clause 5.3 of [OGC 06-121r8], which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this Standard. 4 | 5 | For the purposes of this document, the following additional terms and definitions apply. 6 | 7 | === administrative change 8 | An administrative change is a change that does not alter the conformance abstract tests for any requirements. It includes typographical errors, changes in wording to improve clarity or consistency, and perfunctory changes such as changes in version numbers. 9 | 10 | === critical Change 11 | A critical change is a change that alters requirements in a way that is known to cause reverse compatibility issues. 12 | 13 | === substantive change 14 | A substantive change is a change that alters requirements in a way that is not deemed to have a high risk for causing reverse compatibility issues. 15 | 16 | === Abbreviated terms 17 | 18 | //List any abbreviations and their full expansions that are used in this document 19 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.4.0/clause-5-critical.adoc: -------------------------------------------------------------------------------- 1 | [[Clause_Critical]] 2 | == Description of Critical Changes 3 | 4 | There are no critical changes in this release. 5 | -------------------------------------------------------------------------------- /spec/core/release_notes/1.4.0/clause-7-future.adoc: -------------------------------------------------------------------------------- 1 | [[Clause_FutureWork]] 2 | == Future Work 3 | 4 | In the future, the GeoPackage SWG will revisit the DATETIME topic, 5 | with the goal to mitigate the issues that were brought to the group's attention 6 | during the public comment period. 7 | -------------------------------------------------------------------------------- /spec/crs_wkt/README.md: -------------------------------------------------------------------------------- 1 | # Standard template 2 | 3 | ## Content 4 | 5 | This folder contains the text for the standard 6 | 7 | * standard_document.adoc - the main standard document with references to all sections 8 | * remaining adocs - each section of the standard document is in a separate document: follow directions in each document to populate 9 | * figures - figures go here 10 | * images - Image files for graphics go here. Image files for figures go in the "figures" directory. Only place in here images not used in figures (e.g., as parts of tables, as logos, etc.) 11 | * requirements - directory for requirements and requirement classes to be referenced in clause_7_normative_text.adoc 12 | * code - sample code to accompany the standard, if desired 13 | * abstract_tests - the Abstract Test Suite comprising one test for every requirement, optional 14 | * UML - UML diagrams, if applicable 15 | 16 | ## Building 17 | 18 | To produce the HTML of the standard run `asciidoctor --safe -a data-uri -o 19 | standard_document.html standard_document.adoc`. 20 | 21 | To produce the PDF of the standard run `asciidoctor-pdf --safe -o 22 | standard_document.pdf standard_document.adoc` 23 | -------------------------------------------------------------------------------- /spec/crs_wkt/annex-b.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | == Table Definition SQL (Normative) 4 | 5 | === gpkg_spatial_ref_sys 6 | 7 | [[gpkg_spatial_ref_sys_crs_wkt_sql]] 8 | .gpkg_spatial_ref_sys Table Definition SQL (CRS WKT Extension) 9 | [cols=","] 10 | [source,sql] 11 | ---- 12 | CREATE TABLE gpkg_spatial_ref_sys ( 13 | srs_name TEXT NOT NULL, 14 | srs_id INTEGER NOT NULL PRIMARY KEY, 15 | organization TEXT NOT NULL, 16 | organization_coordsys_id INTEGER NOT NULL, 17 | definition TEXT NOT NULL, 18 | description TEXT, 19 | definition_12_063 TEXT NOT NULL, 20 | epoch DOUBLE 21 | ); 22 | ---- 23 | -------------------------------------------------------------------------------- /spec/crs_wkt/annex-bibliography.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | [[Bibliography]] 4 | = Bibliography 5 | 6 | [NOTE] 7 | .Example Bibliography (Delete this note). 8 | =============================================== 9 | The TC has approved Springer LNCS as the official document citation type. 10 | 11 | Springer LNCS is widely used in technical and computer science journals and other publications 12 | 13 | * For citations in the text please use square brackets and consecutive numbers: [1], [2], [3] 14 | 15 | – Actual References: 16 | 17 | [n] Journal: Author Surname, A.: Title. Publication Title. Volume number, Issue number, Pages Used (Year Published) 18 | 19 | [n] Web: Author Surname, A.: Title, http://Website-Url 20 | 21 | =============================================== 22 | 23 | ((( Example ))) 24 | [[OGC2015]] 25 | [1] OGC: OGC Testbed 12 Annex B: Architecture. (2015). 26 | -------------------------------------------------------------------------------- /spec/crs_wkt/annex-history.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | == Revision History 4 | 5 | [width="90%",options="header"] 6 | |=== 7 | |Date |Release |Editor | Primary clauses modified |Description 8 | |2021-08-20 |0.1 |J. Yutzler |all |initial version 9 | |2022-04-15 |0.90 |R. Lott |preface, 4, 7 |input from open comment period 10 | |2022-05-10 |0.91 |C. Reed |multiple |input from open comment period 11 | |2022-05-23 |0.92 |A. Youmans |4 |clarification 12 | |2022-06-06 |0.93 |J. Yutzler |all |final cleanup 13 | |=== 14 | -------------------------------------------------------------------------------- /spec/crs_wkt/annex-n.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | == Title ( {Normative/Informative} ) 4 | 5 | [NOTE] 6 | Place other Annex material in sequential annexes beginning with "B" and leave final two annexes for the Revision History and Bibliography 7 | -------------------------------------------------------------------------------- /spec/crs_wkt/api_guidelines_assessment.adoc: -------------------------------------------------------------------------------- 1 | = OGC Web API Guidelines Assessment 2 | 3 | Each OGC Web API Standard shall have this related informative assessment document. The following table discusses how this Standard addresses the design principles documented in the https://github.com/opengeospatial/OGC-Web-API-Guidelines[OGC Web API Guidelines] Version 1.1. 4 | 5 | [cols = "^1,^2,8",frame = "all",grid = "all"] 6 | |=== 7 | |*#* |*Principle* ^|*Discussion* 8 | |1 |*Don’t reinvent* | 9 | |2 |*Keep it simple and intuitive* | 10 | |3 |*Use well-known resource types* | 11 | |4 |*Construct consistent URIs* | 12 | |5 |*Use HTTP methods consistent with RFC 7231* | 13 | |6 |*Put selection criteria behind the ‘?’* | 14 | |7 |*Error handling and use of HTTP status codes* | 15 | |8 |*Use explicit list of HTTP status codes* | 16 | |9 |*Use of HTTP header* | 17 | |10 |*Allow flexible content negotiation* | 18 | |11 |*Pagination* | 19 | |12 |*Processing resources* | 20 | |13 |*Support metadata* | 21 | |14 |*Consider your security needs* | 22 | |15 |*API description* | 23 | |16 |*Use well-known identifiers* | 24 | |17 |*Use explicit relations* | 25 | |18 |*Support W3C cross-origin resource sharing* | 26 | |19 |*Resource encodings* | 27 | |20 |*Good APIs are testable from the beginning* | 28 | |21 |*Specify whether operations are safe and/or idempotent* | 29 | |22 |*Make resources discoverable* | 30 | |23 |*Make default behavior explicit* | 31 | |=== 32 | -------------------------------------------------------------------------------- /spec/crs_wkt/clause_1_scope.adoc: -------------------------------------------------------------------------------- 1 | == Scope 2 | 3 | This GeoPackage extension applies to the `gpkg_spatial_ref_sys` table and modifies the existing requirement specified in link:https://www.geopackage.org/spec/#spatial_ref_sys_data_table_definition[Requirement 10]. 4 | -------------------------------------------------------------------------------- /spec/crs_wkt/clause_2_conformance.adoc: -------------------------------------------------------------------------------- 1 | == Conformance 2 | 3 | This OGC GeoPackage WKT for Coordinate Reference Systems Extension defines requirements for encoding coordinate reference systems and coordinate epochs in a GeoPackage. 4 | 5 | Conformance with this standard shall be checked using all the relevant tests specified in Annex A (normative) of this document. The framework, concepts, and methodology for testing, and the criteria to be achieved to claim conformance are specified in the OGC Compliance Testing Policies and Procedures and the OGC Compliance Testing web sitefootnote:[http://www.opengeospatial.org/cite[www.opengeospatial.org/cite]]. 6 | -------------------------------------------------------------------------------- /spec/crs_wkt/clause_3_references.adoc: -------------------------------------------------------------------------------- 1 | == References 2 | The following normative documents contain provisions that, through reference in this text, constitute provisions of this document. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest edition of the normative document referred to applies. 3 | 4 | OGC: OGC 12-128r17 OGC GeoPackage Encoding Standard 1.3.0, http://www.geopackage.org/spec130/ (2020) 5 | 6 | OGC: OGC 19-005r4 OGC Abstract Specification Topic 2: Referencing by coordinates, https://docs.opengeospatial.org/as/18-005r4/18-005r4.html (2019) 7 | 8 | OGC: OGC 18-010r7 Geographic information — Well-known text representation of coordinate reference systems 2.0.6, https://docs.opengeospatial.org/is/18-010r7/18-010r7.html (2019) 9 | -------------------------------------------------------------------------------- /spec/crs_wkt/clause_4_terms_and_definitions.adoc: -------------------------------------------------------------------------------- 1 | == Terms and Definitions 2 | This document used the terms defined in https://portal.ogc.org/public_ogc/directives/directives.php[OGC Policy Directive 49], which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this standard and OGC documents do not use the equivalent phrases in the ISO/IEC Directives, Part 2. 3 | 4 | This document also uses terms defined in the OGC Standard for Modular specifications (https://portal.opengeospatial.org/files/?artifact_id=34762[OGC 08-131r3]), also known as the 'ModSpec'. The definitions of terms such as standard, specification, requirement, and conformance test are provided in the ModSpec. 5 | 6 | For the purposes of this document, the following additional terms and definitions apply. 7 | 8 | coordinate epoch:: 9 | A property of coordinates referenced to a dynamic coordinate reference system indicating the date at which the coordinates are valid. (SOURCE: OGC 18-005r4) 10 | 11 | Coordinate Reference System (CRS):: 12 | A coordinate reference system is a set of mathematical rules for specifying how coordinates are to be assigned to a point that is related to an object by a datum. (SOURCE: ISO 19111:2019) 13 | 14 | [NOTE] 15 | ==== 16 | The GeoPackage Encoding Standard (GES) uses the term "spatial reference system (SRS)," though technically an SRS is a spatial reference either by coordinates (CRS) or by geographic identifier (e.g., post code / zip code or street address). 17 | In the GES, a spatial reference system is realized through a row in the `gpkg_spatial_ref_sys` table. 18 | ==== 19 | 20 | well-known text (WKT):: 21 | A compact machine- and human-readable representation of geometric objects that may also be used for succinctly describing the critical elements of CRS definitions. (SOURCE: OGC 18-010r7) 22 | 23 | [NOTE] 24 | ==== 25 | CRS WKT2 specifically refers to a document conforming to the latest revision of OGC 18-010. 26 | ==== 27 | -------------------------------------------------------------------------------- /spec/crs_wkt/clause_5_conventions.adoc: -------------------------------------------------------------------------------- 1 | == Conventions 2 | This section provides details and examples for any conventions used in the document. Examples of conventions are symbols, abbreviations, use of XML schema, or special notes regarding how to read the document. 3 | 4 | === Identifiers 5 | The normative provisions in this Standard are denoted by the URI 6 | 7 | http://www.opengis.net/spec/{standard}/{m.n} 8 | 9 | All requirements and conformance tests that appear in this document are denoted by partial URIs which are relative to this base. 10 | -------------------------------------------------------------------------------- /spec/crs_wkt/clause_6_informative_text.adoc: -------------------------------------------------------------------------------- 1 | == WKT for Coordinate Reference Systems Extension (Informative) 2 | 3 | Following is the information required by the link:http://www.geopackage.org/spec/#extension_template[GeoPackage Extension Template]. 4 | 5 | === Extension Author 6 | 7 | GeoPackage SWG, author_name `gpkg`. 8 | 9 | === Extension Name or Template 10 | 11 | `gpkg_crs_wkt` 12 | 13 | === Extension Type 14 | 15 | Extension of Existing link:https://www.geopackage.org/spec130/#r10[Requirement 10]. 16 | 17 | === Applicability 18 | 19 | Applies to the `gpkg_spatial_ref_sys` table. 20 | 21 | === Scope 22 | 23 | Read-write 24 | 25 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.0/README.md: -------------------------------------------------------------------------------- 1 | # Release Notes template 2 | This is an AsciiDoc version of the release notes for an OGC Standard. 3 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.0/annex-bibliography.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | [[Bibliography]] 3 | = Bibliography 4 | 5 | //list any non-normative references present in these Release Notes, but do not provide a list of new references from the revised standard. 6 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.0/annex-history.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | = Revision History 3 | 4 | .Revision History 5 | [width="90%",options="header"] 6 | |==================== 7 | |Date |Release |Editor | Primary clauses modified |Descriptions 8 | |07-Sep-2021 |0.1 | J. Yutzler | all |initial revision 9 | |06-Jun-2022 |0.9 | J. Yutzler | 4 |comments from open comment period 10 | |==================== 11 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.0/clause-0-preface.adoc: -------------------------------------------------------------------------------- 1 | Standard.[big]*Preface* 2 | 3 | This document provides the set of revision notes for the GeoPackage WKT for Coordinate Reference Systems Extension 1.1.0 and does not modify that Standard. 4 | 5 | This document provides the details of edits, deficiency corrections, and enhancements of the above-referenced Standard. It also documents those items that have been deprecated. Finally, this document provides implementations details related to issues of backwards compatibility. 6 | 7 | _Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights._ 8 | 9 | _Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the Standard set forth in this document, and to provide supporting documentation._ 10 | 11 | .[big]*Keywords* 12 | ogcdoc, 13 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.0/clause-1-intro.adoc: -------------------------------------------------------------------------------- 1 | == Introduction 2 | 3 | === Scope 4 | 5 | The GeoPackage WKT for Coordinate Reference Systems Extension 1.1.0 (OGC 21-057) is a revision to the GeoPackage extension that is currently published as Annex F.10 of GeoPackage Encoding Standard 1.3.0 (OGC 12-128r17). 6 | The new document is designed to replace that annex. 7 | The extension defines how to encode coordinate reference systems in GeoPackage using the CRS WKT2 standard. 8 | This revision adds coordinate epochs to the encoding of coordinate reference systems in a GeoPackage. 9 | 10 | === Document contributor contact points 11 | 12 | All questions regarding this document should be directed to the contacts provided below or the referenced Standard editor(s). 13 | 14 | .Contacts 15 | [width="80%",options="header"] 16 | |==================== 17 | |Name |Organization 18 | | | 19 | |==================== 20 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.0/clause-2-references.adoc: -------------------------------------------------------------------------------- 1 | [[references]] 2 | == References 3 | 4 | The following normative documents are new or updated references in the Standard to which these Release Notes apply. 5 | 6 | OGC: OGC 12-128r17 OGC GeoPackage Encoding Standard 1.3.0, http://www.geopackage.org/spec130/ (2020) 7 | 8 | OGC: OGC 21-057 OGC GeoPackage CRS for Coordinate Reference Systems Extension 1.1 (TBD) 9 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.0/clause-3-terms.adoc: -------------------------------------------------------------------------------- 1 | == Terms and definitions 2 | 3 | This document uses the terms defined in Sub-clause 5.3 of [OGC 06-121r8], which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this Standard. 4 | 5 | For the purposes of this document, the following additional terms and definitions apply. 6 | 7 | === administrative change 8 | An administrative change is a change that does not alter the conformance abstract tests for any requirements. It includes typographical errors, changes in wording to improve clarity or consistency, and perfunctory changes such as changes in version numbers. 9 | 10 | === critical Change 11 | A critical change is a change that alters requirements in a way that is known to cause reverse compatibility issues. 12 | 13 | === substantive change 14 | A substantive change is a change that alters requirements in a way that is not deemed to have a high risk for causing reverse compatibility issues. 15 | 16 | === Abbreviated terms 17 | 18 | //List any abbreviations and their full expansions that are used in this document 19 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.0/clause-4-change-log.adoc: -------------------------------------------------------------------------------- 1 | [[change-log]] 2 | == Change Log 3 | 4 | === KEY 5 | 6 | * Source: 7 | ** Change Request (CR) 8 | ** GitHub Issue 9 | ** Editor - The Document Editor 10 | ** OGC-NA - OGC Naming Authority review 11 | ** Public - Public Comment period 12 | ** SWG decision 13 | ** User - The User Community 14 | ** Other 15 | 16 | * Identifier: Change Request number or issue number and pull request/commit in GitHub 17 | //if an OGC Change Request, format as follows: URL[Change Request number] 18 | //if a GitHub issue, format as follows: URL[issue number], URL[pull request or commit short identifier] 19 | 20 | * Type: 21 | ** A=Administrative 22 | ** S=Substantive 23 | ** C=Critical 24 | 25 | See <> for more information on critical changes and 26 | <> for more information on substantive changes. 27 | 28 | * Section: Section number in the updated document 29 | * Description: Brief text describing the change 30 | * Purpose: the reason for the change: 31 | ** Clarity 32 | ** Consistency 33 | ** Interoperability 34 | ** Perfunctory 35 | ** Readability 36 | ** Usability 37 | ** Correctness 38 | 39 | === Change Table 40 | [[table_change_log]] 41 | .Change Log 42 | [cols="1a,1a,1a,2a,6a,2a",options="header"] 43 | |==== 44 | |Source |Identifier |Type |Section |Description |Purpose 45 | |link:https://github.com/opengeospatial/geopackage/issue/599[#599] |link:https://github.com/opengeospatial/geopackage/pull/600[#600] | S | Annex F.10 | Coordinate epoch | New Functionality 46 | |link:https://github.com/opengeospatial/geopackage/issue/616[#616] |link:https://github.com/opengeospatial/geopackage/pull/600[#620] | A | Annex F.10 | Coordinate epoch | Correctness 47 | |link:https://github.com/opengeospatial/geopackage/issue/619[#619] |link:https://github.com/opengeospatial/geopackage/pull/600[#620] | A | Annex F.10 | Coordinate epoch | Consistency 48 | |N/A |link:https://github.com/opengeospatial/geopackage/pull/627[#627] | A | Annex F.10 | Coordinate epoch | Consistency 49 | |==== 50 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.0/clause-5-critical.adoc: -------------------------------------------------------------------------------- 1 | [[Clause_Critical]] 2 | == Description of Critical Changes 3 | 4 | There are no critical changes in this release. 5 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.0/clause-6-substantive.adoc: -------------------------------------------------------------------------------- 1 | [[Clause_Substantive]] 2 | == Description of Substantive Changes 3 | 4 | === Add Coordinate Epoch to `gpkg_spatial_ref_sys` 5 | The OGC Abstract Specification Topic 2 (OGC 18-005r4) says "To be unambiguous the coordinates must always be qualified with the epoch at which they are valid." 6 | The SWG has chosen to implement this request at the coordinate reference system level. 7 | Now coordinate reference systems include an optional coordinate epoch (a DOUBLE). 8 | This approach supports coordinate reference systems that are identical other than the coordinate epoch. 9 | The SWG considered an alternative approach of putting the epoch in dataset metadata, but this approach was discarded because there is no concurrence on a metadata profile that would be suitable. 10 | 11 | To support backwards compatibility, there are separate entries in `gpkg_extensions` for the original and updated extension. 12 | GeoPackage clients that support this extension should look for `gpkg_extensions` rows with a `extension_name` of "gpkg_crs_wkt_1_1". 13 | GeoPackage clients that are unaware of the updated extension will not be affected. 14 | 15 | This change imposes minimal interoperability risks. 16 | The change only applies to GeoPackages that implement the "link:http://www.geopackage.org/spec130/#extension_crs_wkt[WKT for Coordinate Reference Systems]" extension (F.10). 17 | The paradigm of adding a column to `gpkg_spatial_ref_sys` has already been established in this extension. 18 | It is unlikely that a GeoPackage client would fail if encountering this column unexpectedly. 19 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.0/clause-7-future.adoc: -------------------------------------------------------------------------------- 1 | [[Clause_FutureWork]] 2 | == Future Work 3 | 4 | //OPTIONAL: Describe any Change Requests or Issues which are planned to be addressed in a future version of the Standard. 5 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.1/README.md: -------------------------------------------------------------------------------- 1 | # Release Notes template 2 | This is an AsciiDoc version of the release notes for an OGC Standard. 3 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.1/annex-bibliography.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | [[Bibliography]] 3 | = Bibliography 4 | 5 | //list any non-normative references present in these Release Notes, but do not provide a list of new references from the revised standard. 6 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.1/annex-history.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | = Revision History 3 | 4 | .Revision History 5 | [width="90%",options="header"] 6 | |==================== 7 | |Date |Release |Editor | Primary clauses modified |Descriptions 8 | |19-Mar-2023 |0.1 | J. Yutzler | all |initial revision 9 | |==================== 10 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.1/clause-0-preface.adoc: -------------------------------------------------------------------------------- 1 | Standard.[big]*Preface* 2 | 3 | This document provides the set of revision notes for the GeoPackage WKT for Coordinate Reference Systems Extension 1.1.1 and does not modify that Standard. 4 | 5 | This document provides the details of edits, deficiency corrections, and enhancements of the above-referenced Standard. It also documents those items that have been deprecated. Finally, this document provides implementations details related to issues of backwards compatibility. 6 | 7 | _Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights._ 8 | 9 | _Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the Standard set forth in this document, and to provide supporting documentation._ 10 | 11 | .[big]*Keywords* 12 | ogcdoc, 13 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.1/clause-1-intro.adoc: -------------------------------------------------------------------------------- 1 | == Introduction 2 | 3 | === Scope 4 | 5 | The GeoPackage WKT for Coordinate Reference Systems Extension 1.1.1 (OGC 21-057r1) is a revision to the GeoPackage WKT for Coordinate Reference Systems Extension 1.1.1 (OGC 21-057r1) that was previously published as Annex F.10 of GeoPackage Encoding Standard 1.3.0 (OGC 12-128r17). 6 | This revision is a corrigendum, containing no substantive changes. 7 | 8 | === Document contributor contact points 9 | 10 | All questions regarding this document should be directed to the contacts provided below or the referenced Standard editor(s). 11 | 12 | .Contacts 13 | [width="80%",options="header"] 14 | |==================== 15 | |Name |Organization 16 | |Jeff Yutzler | Image Matters 17 | |==================== 18 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.1/clause-2-references.adoc: -------------------------------------------------------------------------------- 1 | [[references]] 2 | == References 3 | 4 | The following normative documents are new or updated references in the Standard to which these Release Notes apply. 5 | 6 | OGC: OGC 12-128r17 OGC GeoPackage Encoding Standard 1.3.0, http://www.geopackage.org/spec130/ (2020) 7 | 8 | OGC: OGC 21-057 OGC GeoPackage CRS for Coordinate Reference Systems Extension 1.1 (TBD) 9 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.1/clause-3-terms.adoc: -------------------------------------------------------------------------------- 1 | == Terms and definitions 2 | 3 | This document uses the terms defined in Sub-clause 5.3 of [OGC 06-121r8], which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this Standard. 4 | 5 | For the purposes of this document, the following additional terms and definitions apply. 6 | 7 | === administrative change 8 | An administrative change is a change that does not alter the conformance abstract tests for any requirements. It includes typographical errors, changes in wording to improve clarity or consistency, and perfunctory changes such as changes in version numbers. 9 | 10 | === critical Change 11 | A critical change is a change that alters requirements in a way that is known to cause reverse compatibility issues. 12 | 13 | === substantive change 14 | A substantive change is a change that alters requirements in a way that is not deemed to have a high risk for causing reverse compatibility issues. 15 | 16 | === Abbreviated terms 17 | 18 | //List any abbreviations and their full expansions that are used in this document 19 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.1/clause-4-change-log.adoc: -------------------------------------------------------------------------------- 1 | [[change-log]] 2 | == Change Log 3 | 4 | === KEY 5 | 6 | * Source: 7 | ** Change Request (CR) 8 | ** GitHub Issue 9 | ** Editor - The Document Editor 10 | ** OGC-NA - OGC Naming Authority review 11 | ** Public - Public Comment period 12 | ** SWG decision 13 | ** User - The User Community 14 | ** Other 15 | 16 | * Identifier: Change Request number or issue number and pull request/commit in GitHub 17 | //if an OGC Change Request, format as follows: URL[Change Request number] 18 | //if a GitHub issue, format as follows: URL[issue number], URL[pull request or commit short identifier] 19 | 20 | * Type: 21 | ** A=Administrative 22 | ** S=Substantive 23 | ** C=Critical 24 | 25 | See <> for more information on critical changes and 26 | <> for more information on substantive changes. 27 | 28 | * Section: Section number in the updated document 29 | * Description: Brief text describing the change 30 | * Purpose: the reason for the change: 31 | ** Clarity 32 | ** Consistency 33 | ** Interoperability 34 | ** Perfunctory 35 | ** Readability 36 | ** Usability 37 | ** Correctness 38 | 39 | === Change Table 40 | [[table_change_log]] 41 | .Change Log 42 | [cols="1a,1a,1a,2a,6a,2a",options="header"] 43 | |==== 44 | |Source |Identifier |Type |Section |Description |Purpose 45 | |link:https://github.com/opengeospatial/geopackage/issue/641[#641] |link:https://github.com/opengeospatial/geopackage/pull/600[#620] | A | Annex F.10 | Coordinate epoch | Correctness 46 | |==== 47 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.1/clause-5-critical.adoc: -------------------------------------------------------------------------------- 1 | [[Clause_Critical]] 2 | == Description of Critical Changes 3 | 4 | There are no critical changes in this release. 5 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.1/clause-6-substantive.adoc: -------------------------------------------------------------------------------- 1 | [[Clause_Substantive]] 2 | == Description of Substantive Changes 3 | 4 | There are no substantive changes in this release. 5 | -------------------------------------------------------------------------------- /spec/crs_wkt/release_notes/1.1.1/clause-7-future.adoc: -------------------------------------------------------------------------------- 1 | [[Clause_FutureWork]] 2 | == Future Work 3 | 4 | //OPTIONAL: Describe any Change Requests or Issues which are planned to be addressed in a future version of the Standard. 5 | -------------------------------------------------------------------------------- /spec/related-tables/README.md: -------------------------------------------------------------------------------- 1 | This folder contains the text for the standard 2 | 3 | * standard_document.adoc - the main standard document with references to all sections 4 | * remaining adocs - each section of the standard document is in a separate document: follow directions in each document to populate 5 | * images - directory for image files used as figures 6 | * requirements - directory for requirements and requirement classes to be referenced in clause_7_normative_text.adoc 7 | -------------------------------------------------------------------------------- /spec/related-tables/annex-bibliography.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | [[Bibliography]] 4 | == Bibliography 5 | 6 | [[GEOPACKAGE]] 7 | GEOPACKAGE :: 8 | 9 | http://www.geopackage.org/ 10 | 11 | [[SQLITE]] 12 | SQLITE :: 13 | 14 | http://www.sqlite.org/ 15 | 16 | [[GPKG-RTE_IE]] 17 | GPKG-RTE_IE :: 18 | 19 | http://www.opengeospatial.org/projects/initiatives/gpkg-rteie[GeoPackage Related Tables Extension Interoperability Experiment] 20 | 21 | [[GPKG-RTE_IE_ER]] 22 | GPKG-RTE_IE_ER :: 23 | 24 | OGC: OGC 17-093r1, GeoPackage Related Tables Extension Interoperability Experiment Engineering Report, 2018. 25 | 26 | [[OGC-TJS-IS]] 27 | OGC-TJS-IS :: 28 | 29 | http://portal.opengeospatial.org/files/?artifact_id=40095[OGC: OGC 10-070r2 Table Joining Service Interface Standard, 2010] 30 | 31 | [[CITE]] 32 | CITE :: 33 | 34 | http://www.opengeospatial.org/cite 35 | -------------------------------------------------------------------------------- /spec/related-tables/annex-example.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | == Example (Informative) 4 | 5 | This example illustrates support for many-to-many relationships but the concept may be used in a degenerative way to support one-to-many or many-to-one relationships. 6 | The content of the `gpkgext_relations` includes a <> that relates the <> and <> using their respective `id` columns. 7 | 8 | In this example, there are four features (ID 1, 2, 3 and 4) and three PNG media items (ID 17, 18, and 19). 9 | Using the <>, 10 | 11 | * feature 1 relates to media 17 and 18 12 | * feature 2 relates to media 18 13 | * feature 3 relates to media 18 14 | * feature 4 relates to media 17 and 19 15 | 16 | .gpkgext_relations table values 17 | [options="header"] 18 | |============================================== 19 | |base_table_name|base_column|related_table_name|related_column|relation_name|mapping_table_name 20 | |features |id |media |id |media |features_to_media 21 | |============================================== 22 | 23 | The following SQL query will reveal this information: 24 | 25 | select base_table_name, 26 | base_primary_column, 27 | related_table_name, 28 | related_primary_column, 29 | mapping_table_name 30 | from gpkgext_relations; 31 | 32 | [[features]] 33 | .features table values 34 | [width="50%",options="header"] 35 | |======================================================================= 36 | |id|geom 37 | |1| 38 | |2| 39 | |3| 40 | |4| 41 | |======================================================================= 42 | 43 | [[media]] 44 | .media table values 45 | [width="80%",options="header"] 46 | |======================================================================= 47 | |id|data|content_type 48 | |17||image/png 49 | |18||image/png 50 | |19||image/png 51 | |======================================================================= 52 | 53 | [[features_to_media]] 54 | .features_to_media table 55 | [options="header"] 56 | |============================================== 57 | |base_id|related_id 58 | |4 | 17 59 | |4 | 19 60 | |3 | 18 61 | |2 | 18 62 | |1 | 18 63 | |1 | 17 64 | |============================================== 65 | 66 | The <> table relates the `id` columns between the features table and the media table. 67 | 68 | The following SQL query will reveal this information: 69 | 70 | select features.id, features_to_media.related_id 71 | from features, features_to_media 72 | where features.id=features_to_media.base_id; 73 | 74 | -------------------------------------------------------------------------------- /spec/related-tables/annex-history.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | == Revision History 4 | 5 | [width="90%",options="header"] 6 | |=== 7 | |Date |Release |Editor | Primary clauses modified |Description 8 | |2017-12 |0.1 |J. Yutzler |all |initial version 9 | |2018-06 |0.2 |J. Yutzler |all |post-IE 10 | |=== 11 | -------------------------------------------------------------------------------- /spec/related-tables/annex-n.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | == Title ( {Normative/Informative} ) 4 | 5 | [NOTE] 6 | Place other Annex material in sequential annexes beginning with "B" and leave final two annexes for the Revision History and Bibliography 7 | -------------------------------------------------------------------------------- /spec/related-tables/annex-profile.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | == Dublin Core Profile (Informative) 4 | The Related Tables Extension intends to be flexible in which columns are required. The goal is to support a wide variety of input data. However, with loose control over the columns it can be difficult for users to understand why a specific relationship exists. This annex presents a recommendation that is designed to improve interoperability while maintaining as flexible a structure as possible. It is based on http://dublincore.org/documents/dcmi-terms/[Dublin Core] elements. 5 | 6 | Columns for the following Dublin Core elements are RECOMMENDED to be present in a mapping table or a related data table. Clients SHOULD look for these elements and attempt to present them to the user where possible. 7 | 8 | * date 9 | * description 10 | * source 11 | * title 12 | 13 | Some columns use different names from Dublin Core elements, as shown in <>. 14 | 15 | [[column_dublin_synonyms]] 16 | .Column Name / Dublin Core Synonyms 17 | [cols=",",options="header",] 18 | |======================================================================= 19 | |Related Table Column Name |Synonymous Dublin Core Element 20 | |`id` |`identifier` 21 | |`content_type` |`format` 22 | |======================================================================= 23 | 24 | 25 | [[gpkgext_user_defined_media_table_dublin_core_sql]] 26 | .Example User Defined Media Table Definition SQL - Dublin Core (Informative) 27 | [cols=","] 28 | |============= 29 | | 30 | |============= 31 | [source,sql] 32 | ---- 33 | CREATE TABLE 'sample_media_with_metadata' ( 34 | id INTEGER PRIMARY KEY AUTOINCREMENT, 35 | data BLOB NOT NULL, 36 | content_type TEXT NOT NULL, 37 | title TEXT NOT NULL, 38 | description TEXT NOT NULL, 39 | date INTEGER NOT NULL, 40 | source TEXT NOT NULL) 41 | ---- 42 | 43 | [NOTE] 44 | There are three ways to store dates in SQLite (and in GeoPackage) - as TEXT (ISO-8601), as REAL (days relative to Gregorian calendar start) and INTEGER (seconds relative to Unix epoch). See SQLite documentation for more information including conversion between forms. 45 | -------------------------------------------------------------------------------- /spec/related-tables/annex-sql.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | :appendix-caption: Annex 3 | == Table Definition SQL 4 | 5 | 6 | [[gpkgext_relations_sql]] 7 | .Extended Relations Table Definition SQL (Normative) 8 | [cols=","] 9 | |============= 10 | | 11 | |============= 12 | [source,sql] 13 | ---- 14 | CREATE TABLE 'gpkgext_relations' ( 15 | id INTEGER PRIMARY KEY AUTOINCREMENT, 16 | base_table_name TEXT NOT NULL, 17 | base_primary_column TEXT NOT NULL DEFAULT 'id', 18 | related_table_name TEXT NOT NULL, 19 | related_primary_column TEXT NOT NULL DEFAULT 'id', 20 | relation_name TEXT NOT NULL, 21 | mapping_table_name TEXT NOT NULL UNIQUE 22 | ); 23 | ---- 24 | 25 | [[gpkgext_user_defined_mapping_table_sql]] 26 | .Extended Relations Mapping Table SQL (Informative) 27 | [cols=","] 28 | |============= 29 | | 30 | |============= 31 | [source,sql] 32 | ---- 33 | CREATE TABLE 'sample_mapping_table' ( 34 | base_id INTEGER NOT NULL, 35 | related_id INTEGER NOT NULL 36 | ); 37 | ---- 38 | 39 | [[gpkg_features_sql]] 40 | .Example User Defined Features Table Definition SQL (Informative) 41 | [cols=","] 42 | |============= 43 | | 44 | |============= 45 | [source,sql] 46 | ---- 47 | CREATE TABLE 'sample_feature_table' ( 48 | id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, 49 | geometry GEOMETRY, 50 | text_attribute TEXT, 51 | real_attribute REAL, 52 | boolean_attribute BOOLEAN) 53 | ---- 54 | This table is a modified version of http://www.geopackage.org/spec120/#_sample_feature_table_informative[the informative example in the core document]. The `raster_or_photo` column is removed with the intent of making the binary data available as per this extension. 55 | 56 | [[gpkgext_user_defined_media_table_sql]] 57 | .Example User Defined Media Table Definition SQL (Informative) 58 | [cols=","] 59 | |============= 60 | | 61 | |============= 62 | [source,sql] 63 | ---- 64 | CREATE TABLE 'sample_media' ( 65 | id INTEGER PRIMARY KEY AUTOINCREMENT, 66 | data BLOB NOT NULL, 67 | content_type TEXT NOT NULL) 68 | ---- 69 | 70 | [[gpkgext_user_defined_simpleattr_table_sql]] 71 | .Example User Defined Simple Attribute Table Definition SQL (Informative) 72 | [cols=","] 73 | |============= 74 | | 75 | |============= 76 | [source,sql] 77 | ---- 78 | CREATE TABLE 'sample_attributes' ( 79 | id INTEGER PRIMARY KEY AUTOINCREMENT, 80 | label TEXT NOT NULL, 81 | description TEXT NOT NULL, 82 | arisings INTEGER NOT NULL) 83 | ---- 84 | -------------------------------------------------------------------------------- /spec/related-tables/clause_1_scope.adoc: -------------------------------------------------------------------------------- 1 | == Scope 2 | A GeoPackage <> is a platform-independent SQLite <> database file that contains GeoPackage data and metadata tables. 3 | GeoPackage is designed to be extensible, including support for additional data types. 4 | 5 | This document defines an extension that allows a GeoPackage to contain additional data that is related to geospatial (generally, but not exclusively, features) or attributes data. 6 | As an example, this can be used to establish a many-to-many relationship between features (e.g. points, lines, or areas) and multimedia files. 7 | -------------------------------------------------------------------------------- /spec/related-tables/clause_2_conformance.adoc: -------------------------------------------------------------------------------- 1 | == Conformance 2 | This standard defines requirements for specialized attribute tables (containing information such as multimedia content to be stored in a GeoPackage, or simple attributes) and mapping tables to relate information in separate tables, along with metadata to describe those tables and the relationships between them. 3 | 4 | Conformance with this standard shall be checked using all the relevant tests specified in Annex A (normative) of this document. The framework, concepts, and methodology for testing, and the criteria to be achieved to claim conformance are specified in the OGC Compliance Testing Policies and Procedures and the OGC Compliance Testing web site <>. 5 | -------------------------------------------------------------------------------- /spec/related-tables/clause_3_references.adoc: -------------------------------------------------------------------------------- 1 | == References 2 | The following normative documents contain provisions that, through reference in this text, constitute provisions of this document. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest edition of the normative document referred to applies. 3 | 4 | [[GPKG1_2]] 5 | GPKG1_2 :: 6 | 7 | OGC 12-128r14, _GeoPackage Encoding Standard 1.2.1_, September 6, 2018. http://www.geopackage.org/spec121/index.html[OGC 12-128r15 OGC® GeoPackage Encoding Standard v1.2.1 - with Corrigendum (Online).] 8 | 9 | [[OWS_COMMON]] 10 | OWS_COMMON :: 11 | 12 | OGC 06-121r9, _OGC Web Service Common Implementation Specification_, April 7, 2010. http://portal.opengeospatial.org/files/?artifact_id=38867. 13 | -------------------------------------------------------------------------------- /spec/related-tables/clause_5_conventions.adoc: -------------------------------------------------------------------------------- 1 | == Conventions 2 | This sections provides details and examples for any conventions used in the document. Examples of conventions are symbols, abbreviations, use of XML schema, or special notes regarding how to read the document. 3 | 4 | === Identifiers 5 | The normative provisions in this specification are denoted by the URI prefix 6 | 7 | http://www.opengis.net/spec/gpkg-rt/1.0/ 8 | 9 | All requirements and conformance tests that appear in this document are denoted by partial URIs which are relative to this base. For example, if the requirement identifier is shown as `/req/table-defs/extensions-ger` then the unique identifier for that requirement is `http://www.opengis.net/spec/gpkg-rt/1.0/req/table-defs/extensions-ger`. 10 | -------------------------------------------------------------------------------- /spec/related-tables/clause_8_media_types.adoc: -------------------------------------------------------------------------------- 1 | == Media Types for any data encoding(s) 2 | This standard provides an extension to GeoPackage and does not affect the GeoPackage data encoding. 3 | -------------------------------------------------------------------------------- /spec/related-tables/images/AirportsAndRunways.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/related-tables/images/AirportsAndRunways.png -------------------------------------------------------------------------------- /spec/related-tables/images/README.md: -------------------------------------------------------------------------------- 1 | Image files for graphics go here. Image files for figures go in the "figures" directory. Only place in here images not used in figures (e.g., as parts of tables, as logos, etc.) 2 | 3 | Each graphic is a separate file with the naming convention: 4 | 5 | "GRPn.xxx" where "n" is a sequential number with leading zeroes appropriate for the total number of graphics and "xxx" is the appropriate extension for the file type. 6 | -------------------------------------------------------------------------------- /spec/related-tables/images/RelatedTablesConcept.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/related-tables/images/RelatedTablesConcept.png -------------------------------------------------------------------------------- /spec/related-tables/images/bridgearrival.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/related-tables/images/bridgearrival.png -------------------------------------------------------------------------------- /spec/related-tables/images/gpsapproach.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/related-tables/images/gpsapproach.png -------------------------------------------------------------------------------- /spec/related-tables/images/related_tables_uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/related-tables/images/related_tables_uml.png -------------------------------------------------------------------------------- /spec/related-tables/images/t13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/geopackage/fe83fdd5949a3faba09117e6e1dcc003fdb5a900/spec/related-tables/images/t13.png -------------------------------------------------------------------------------- /spec/related-tables/requirements/README.md: -------------------------------------------------------------------------------- 1 | This folder contains requirements description. 2 | 3 | Each file is a single requirement. The naming convention for these files is: 4 | 5 | "REQn.adoc" where "n" corresponds to the requirement number. Numbers should have preceeding zeros appropriate for the total number of requirements in the project (e.g., the first requirement could be REQ001 if less than 1000 requirements are anticipated). 6 | 7 | The requirement files are integrated into the main document as links. 8 | 9 | The requirement is expressed according to this pattern: 10 | 11 | NOTE: for each requirement, there should be a corresponding Abstract Test in the "abstract_tests" folder. 12 | 13 | NOTE: sample code may reference one or more requirements and should state which requirements are included in the code by adding the following line to the Extended Description: 14 | 15 | "#REQS: reqnum1,reqnum2,...reqnumn" 16 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/REQ001.adoc: -------------------------------------------------------------------------------- 1 | [[r1]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 1 – gpkg_extensions Row* {set:cellbgcolor:#CACCCE}|_/req/table-defs/extensions-ger_ + 5 | + 6 | 7 | A GeoPackage that contains a row in the `gpkg_extensions` table for `gpkgext_relations` as described in <> SHALL comply with the Related Tables Extension as described by this document. 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/REQ002.adoc: -------------------------------------------------------------------------------- 1 | [[r2]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 2 – gpkgext_relations Row* {set:cellbgcolor:#CACCCE}|/req/table-defs/extensions-gerr + 5 | + 6 | 7 | A GeoPackage that contains a row in the `gpkg_extensions` table for `gpkgext_relations` SHALL contain at least one related table relationship. 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | 11 | [WARNING] 12 | ==== 13 | The intent of this requirement is that a GeoPackage shall not declare the Related Tables Extension unless it is used within the GeoPackage. As a consequence, if all rows are removed from `gpkgext_relations`, that table must be dropped and all references to the extension must be removed from `gpkg_extensions` as well. However, because a related tables schema may be established without any data, empty user-defined mapping tables and/or related data tables are permitted. 14 | ==== 15 | 16 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/REQ003.adoc: -------------------------------------------------------------------------------- 1 | [[r3]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 3 – gpkg_extensions User Defined Mapping Table Rows* {set:cellbgcolor:#CACCCE}|/req/table-defs/extensions-udmt + 5 | + 6 | 7 | A GeoPackage that complies with the Related Tables Extension SHALL contain rows in the `gpkg_extensions` table for each <> as described in <>. 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/REQ004.adoc: -------------------------------------------------------------------------------- 1 | [[r4]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 4 – gpkgext_relations Table* {set:cellbgcolor:#CACCCE}|/req/table-defs/ger + 5 | + 6 | 7 | A GeoPackage that complies with this extension SHALL contain a `gpkgext_relations` table as per <> and <>. 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/REQ005.adoc: -------------------------------------------------------------------------------- 1 | [[r5]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 5 – gpkgext_relations Base Table* {set:cellbgcolor:#CACCCE}|/req/table-defs/ger-base + 5 | + 6 | 7 | For each row in `gpkgext_relations`, there SHALL be a table or view of the name referenced in `base_table_name` and that table or view SHALL have an entry in `gpkg_contents`. 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | 11 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/REQ006.adoc: -------------------------------------------------------------------------------- 1 | [[r6]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 6 – gpkgext_relations Related Table* {set:cellbgcolor:#CACCCE}|/req/table-defs/ger_related + 5 | + 6 | 7 | For each row in `gpkgext_relations`, there SHALL be a table or view of the name referenced in `related_table_name` and that table or view SHALL have an entry in `gpkg_contents`. 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/REQ007.adoc: -------------------------------------------------------------------------------- 1 | [[r7]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 7 – gpkgext_relations User Defined Mapping Table* {set:cellbgcolor:#CACCCE}|/req/table-defs/ger_udmt + 5 | + 6 | 7 | For each row in `gpkgext_relations`, the `mapping_table_name` column SHALL contain the name of a user-defined mapping table or view as described by <>. 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/REQ008.adoc: -------------------------------------------------------------------------------- 1 | [[r8]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 8 – gpkgext_relations Relation Name* {set:cellbgcolor:#CACCCE}|/req/table-defs/ger_relname + 5 | + 6 | Each `relation_name` column in a `gpkgext_relations` row SHALL either match a `relation_name` from the Requirements Classes for User-Defined Related Data Tables in this or other OGC standards (e.g. `media` for <>), or be of the form `x-`_ where indicates the person or organization that developed and maintains this set of User-Defined Related Tables. 7 | {set:cellbgcolor:#FFFFFF} 8 | |=== 9 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/REQ009.adoc: -------------------------------------------------------------------------------- 1 | [[r9]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 9 – User Defined Mapping Table* {set:cellbgcolor:#CACCCE}|/req/table-defs/udmt + 5 | + 6 | 7 | A user-defined mapping table or view SHALL contain all of the columns described in <>. 8 | 9 | {set:cellbgcolor:#FFFFFF} 10 | |=== 11 | 12 | [NOTE] 13 | ==== 14 | A user-defined mapping table MAY contain no rows. This is intended to support declaring a conceptual relationship where no instances of that relationship currently exist in the GeoPackage (e.g. no related data has been added, or all applicable data has been deleted). 15 | ==== 16 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/REQ010.adoc: -------------------------------------------------------------------------------- 1 | [[r10]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 10 – User Defined Mapping Table Base ID* {set:cellbgcolor:#CACCCE}|/req/table-defs/udmt_base + 5 | + 6 | 7 | For each row of a user-defined mapping table, the `base_id` column SHALL correlate to the primary key of the corresponding base table (as identified by the `base_primary_column` of the associated row in `gpkgext_relations`). 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/REQ011.adoc: -------------------------------------------------------------------------------- 1 | [[r11]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 11 – User Defined Mapping Table Related ID* {set:cellbgcolor:#CACCCE}|/req/table-defs/udmt_related + 5 | + 6 | 7 | For each row of a user-defined mapping table, the `related_id` column SHALL correlate to the primary key of the corresponding related data table (as identified by the `related_primary_column` of the associated row in `gpkgext_relations`). 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/media-table_def.adoc: -------------------------------------------------------------------------------- 1 | [[r13]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 13 – Media Table Definition* {set:cellbgcolor:#CACCCE}|/req/media/table_def + 5 | + 6 | 7 | A user-defined media table or view SHALL contain all of the columns described in <>. 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/media-udmt.adoc: -------------------------------------------------------------------------------- 1 | [[r12]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 12 – Media Relation Name* {set:cellbgcolor:#CACCCE}|/req/media/udmt + 5 | + 6 | 7 | A user-defined related data table or view SHALL be a user-defined media table or view if the row in `gpkgext_relations` with a corresponding `related_table_name` has a `relation_name` of "media". 8 | 9 | A user-defined media table or view SHALL meet all requirements of a GPKG http://www.geopackage.org/spec120/#attributes[attributes] table type. 10 | {set:cellbgcolor:#FFFFFF} 11 | |=== 12 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/relatedattr-table_def.adoc: -------------------------------------------------------------------------------- 1 | [[r19]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 19 – Attributes Table Definition* {set:cellbgcolor:#CACCCE}|/req/relatedattr/table_def + 5 | + 6 | 7 | A user-defined related attributes table or view SHALL be a GPKG http://www.geopackage.org/spec121/#_attributes_user_tables[attributes] table type. 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/relatedattr-udft.adoc: -------------------------------------------------------------------------------- 1 | [[r18]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 18 – Attributes Relation Name* {set:cellbgcolor:#CACCCE}|/req/relatedattr/udat + 5 | + 6 | 7 | A user-defined related data table or view SHALL be a user-defined related attributes table or view if the row in `gpkgext_relations` with a corresponding `related_table_name` has a `relation_name` of "attributes". 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/relatedfeat-table_def.adoc: -------------------------------------------------------------------------------- 1 | [[r17]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 17 – Features Table Definition* {set:cellbgcolor:#CACCCE}|/req/relatedfeat/table_def + 5 | + 6 | 7 | A user-defined related features table or view SHALL be a GPKG http://www.geopackage.org/spec120/#feature_user_tables[vector feature] table type. 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/relatedfeat-udft.adoc: -------------------------------------------------------------------------------- 1 | [[r16]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 16 – Features Relation Name* {set:cellbgcolor:#CACCCE}|/req/relatedfeat/udat + 5 | + 6 | 7 | A user-defined related data table or view SHALL be a user-defined related features table or view if the row in `gpkgext_relations` with a corresponding `related_table_name` has a `relation_name` of "features". 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/relatedtiles-table_def.adoc: -------------------------------------------------------------------------------- 1 | [[r21]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 21 – Tiles Table Definition* {set:cellbgcolor:#CACCCE}|/req/relatedtiles/table_def + 5 | + 6 | 7 | A user-defined related features table or view SHALL be a GPKG http://www.geopackage.org/spec/#tiles_user_tables[tile pyramid] table type. 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/relatedtiles-udft.adoc: -------------------------------------------------------------------------------- 1 | [[r20]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 20 – Tiles Relation Name* {set:cellbgcolor:#CACCCE}|/req/relatedtiles/udat + 5 | + 6 | 7 | A user-defined related data table or view SHALL be a user-defined related tiles table or view if the row in `gpkgext_relations` with a corresponding `related_table_name` has a `relation_name` of "tiles". 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/requirement.adoc: -------------------------------------------------------------------------------- 1 | [width="90%",cols="2,6"] 2 | |=== 3 | |*Requirement 1* {set:cellbgcolor:#CACCCE}|/req/req-class-a/req-name-1 + 4 | + 5 | 6 | Requirement 'shall' statement {set:cellbgcolor:#FFFFFF} 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/requirements_class.adoc: -------------------------------------------------------------------------------- 1 | [cols="1,4",width="90%"] 2 | |=== 3 | 2+|*Requirements Class* {set:cellbgcolor:#CACCCE} 4 | 2+|http://www.opengis.net/spec/ABCD/m.n/req/req-class-a {set:cellbgcolor:#FFFFFF} 5 | |Target type |Token 6 | |Dependency |http://www.example.org/req/blah 7 | |Dependency |urn:iso:ts:iso:19139:clause:6 8 | |*Requirement 1* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/ABCD/m.n/req/req-class-a/req-name-1 + 9 | requirement description {set:cellbgcolor:#FFFFFF} 10 | |*Requirement 2* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/ABCD/m.n/req/req-class-a/req-name-2 + 11 | requirement description {set:cellbgcolor:#FFFFFF} 12 | 13 | |*Requirement 3* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/ABCD/m.n/req/req-class-a/req-name-3 + 14 | requirement description 15 | {set:cellbgcolor:#FFFFFF} 16 | |=== 17 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/requirements_class_Media.adoc: -------------------------------------------------------------------------------- 1 | [cols="1,4",width="90%"] 2 | |=== 3 | 2+|*Requirements Class : Media* {set:cellbgcolor:#CACCCE} 4 | 2+|http://www.opengis.net/spec/gpkg-rt/1.0/media {set:cellbgcolor:#FFFFFF} 5 | |Target type |Token 6 | |Dependency |www.opengis.net/spec/gpkg-rt/1.0/table-defs 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/requirements_class_RelatedAttributes.adoc: -------------------------------------------------------------------------------- 1 | [cols="1,4",width="90%"] 2 | |=== 3 | 2+|*Requirements Class : Attributes* {set:cellbgcolor:#CACCCE} 4 | 2+|http://www.opengis.net/spec/gpkg-rt/1.0/attr {set:cellbgcolor:#FFFFFF} 5 | |Target type |Token 6 | |Dependency |www.opengis.net/spec/gpkg-rt/1.0/table-defs 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/requirements_class_RelatedFeatures.adoc: -------------------------------------------------------------------------------- 1 | [cols="1,4",width="90%"] 2 | |=== 3 | 2+|*Requirements Class : Related Features* {set:cellbgcolor:#CACCCE} 4 | 2+|http://www.opengis.net/spec/gpkg-rt/1.0/relatedfeat {set:cellbgcolor:#FFFFFF} 5 | |Target type |Token 6 | |Dependency |www.opengis.net/spec/gpkg-rt/1.0/table-defs 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/requirements_class_RelatedTiles.adoc: -------------------------------------------------------------------------------- 1 | [cols="1,4",width="90%"] 2 | |=== 3 | 2+|*Requirements Class : Tiles* {set:cellbgcolor:#CACCCE} 4 | 2+|http://www.opengis.net/spec/gpkg-rt/1.0/tiles {set:cellbgcolor:#FFFFFF} 5 | |Target type |Token 6 | |Dependency |www.opengis.net/spec/gpkg-rt/1.0/table-defs 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/requirements_class_SimpleAttributes.adoc: -------------------------------------------------------------------------------- 1 | [cols="1,4",width="90%"] 2 | |=== 3 | 2+|*Requirements Class : Simple Attributes* {set:cellbgcolor:#CACCCE} 4 | 2+|http://www.opengis.net/spec/gpkg-rt/1.0/simpleattr {set:cellbgcolor:#FFFFFF} 5 | |Target type |Token 6 | |Dependency |www.opengis.net/spec/gpkg-rt/1.0/table-defs 7 | |=== 8 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/requirements_class_Table_Definitions.adoc: -------------------------------------------------------------------------------- 1 | [cols="1,4",width="90%"] 2 | |=== 3 | 2+|*Requirements Class : Table Definitions* {set:cellbgcolor:#CACCCE} 4 | 2+|http://www.opengis.net/spec/gpkg-rt/1.0/table-defs {set:cellbgcolor:#FFFFFF} 5 | |Target type |Token 6 | |Dependency |http://www.geopackage.org/spec121/#features 7 | |Dependency |http://www.geopackage.org/spec121/#tiles 8 | |Dependency |http://www.geopackage.org/spec121/#attributes 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/simpleattr-table_def.adoc: -------------------------------------------------------------------------------- 1 | [[r15]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 15 – Simple Attributes Table Definition* {set:cellbgcolor:#CACCCE}|/req/simpleattr/table_def + 5 | + 6 | 7 | A user-defined simple attribute table or view SHALL contain the primary key column and at least one other column as defined in <>. A user-defined simple attribute table SHALL only contain data belonging to the TEXT, INTEGER, or REAL storage classes and SHALL NOT contain NULL or BLOB storage classes (e.g., GEOMETRY). 8 | {set:cellbgcolor:#FFFFFF} 9 | |=== 10 | -------------------------------------------------------------------------------- /spec/related-tables/requirements/simpleattr-udat.adoc: -------------------------------------------------------------------------------- 1 | [[r14]] 2 | [width="90%",cols="2,6"] 3 | |=== 4 | |*Requirement 14 – Simple Attributes Relation Name* {set:cellbgcolor:#CACCCE}|/req/simpleattr/udat + 5 | + 6 | 7 | A user-defined related data table or view SHALL be a user-defined simple attribute table or view if the row in `gpkgext_relations` with a corresponding `related_table_name` has a `relation_name` of "simple_attributes". 8 | 9 | A user-defined simple attributes table or view SHALL meet all requirements of a GPKG http://www.geopackage.org/spec120/#attributes[attributes] table type. 10 | {set:cellbgcolor:#FFFFFF} 11 | |=== 12 | --------------------------------------------------------------------------------