-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.pug
408 lines (374 loc) · 26.1 KB
/
index.pug
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
doctype html
html(lang='en')
head
meta(charset='utf-8')
meta(name='viewport', content='width=device-width, initial-scale=1, shrink-to-fit=no')
meta(name='description', content='')
meta(name='author', content='')
title OGC API - Records
// Favicon
link(rel='icon', type='image/x-icon', href='assets/3d_emblem_lockup.ico')
// Font Awesome icons (free version)
script(src='https://use.fontawesome.com/releases/v6.5.2/js/all.js', crossorigin='anonymous')
// Google fonts
link(href='https://fonts.googleapis.com/css?family=Montserrat:400,700', rel='stylesheet', type='text/css')
link(href='https://fonts.googleapis.com/css?family=Roboto+Slab:400,100,300,700', rel='stylesheet', type='text/css')
// Core theme CSS (includes Bootstrap)
link(href='css/styles.css', rel='stylesheet')
body#page-top
// Navigation
nav#mainNav.navbar.navbar-expand-lg.navbar-dark.fixed-top
.container
a.navbar-brand(href='#page-top') HOME
//img(src='assets/img/navbar-logo.svg', alt='...')
button.navbar-toggler(type='button', data-bs-toggle='collapse', data-bs-target='#navbarResponsive', aria-controls='navbarResponsive', aria-expanded='false', aria-label='Toggle navigation')
| Menu
i.fas.fa-bars.ms-1
#navbarResponsive.collapse.navbar-collapse
ul.navbar-nav.text-uppercase.ms-auto.py-4.py-lg-0
li.nav-item
strong
a.nav-link(href='#what') What is it?
li.nav-item
strong
a.nav-link(href='#why') Why?
li.nav-item
strong
a.nav-link(href='#how') How does it work?
li.nav-item
strong
a.nav-link(href='#inaction') In Action
li.nav-item
strong
a.nav-link(href='#getstarted') Get Started
li.nav-item
strong
a.nav-link(href='#getinvolved') Get Involved
a(href='https://github.com/opengeospatial/ogc-records-website')
img(style='position: absolute; top: 0; right: 0; border: 0;' src='https://github.blog/wp-content/uploads/2008/12/forkme_right_darkblue_121621.png' alt='Fork me on GitHub')
// Masthead
header.masthead
.container
.masthead-heading.text-uppercase OGC API - Records
.masthead-subheading Bringing data to the users
//Generated with AI ∙ 20 June 2024 at 2:32 pm
a.btn.btn-primary.btn-xl.text-uppercase(href='#what') Tell Me More
a.btn.btn-primary.btn-xl.text-uppercase(href='#getstarted') Get Started
// About
section#what.page-section
.container
.text-center
h2.section-heading.text-uppercase Ensure your data is not buried in the deep web
.row.justify-content-center
.col-6
p.text-muted
| The current estimate is
a(href='https://web.archive.org/web/20141108182138/http://akinozkan.com/deep-web-derin-internet/' target="_blank")
| that more than 80% of the web content is not indexed by search engines.
| This includes content that is intentionally hidden such as private repositories, but also some organisation specific repositories, academic databases and government reports.
p.text-muted
i Do you create geospatial data, vocabularies, styles, processes, services or ML models? Do you manage repositories of metadata to describe your resources?
| Rhe OGC API - Records Standard specifies standard interfaces to expose your resources and metadata, making them discoverable using a Standard vocabulary.
p.text-muted
| Implementations of the OGC API - Records Standard can ensure that search engines can index geospatial resources in a structured way, so that both humans and machines can find, assess/evaluate and access them.
img(src='assets/img/search-engines.jpeg', alt='...', style='width:40%', title='Generated with AI ∙ 6 August 2024 at 0:39 pm')
// Why
section#why.page-section.bg-light
.container
.text-center
h2.section-heading.text-uppercase Why?
h3.section-subheading.text-muted Main reasons to implement a catalog using OGC API - Records
.row.text-center
.col-md-4
span.fa-stack.fa-4x
i.fas.fa-circle.fa-stack-2x.text-primary
i.fas.fa-handshake.fa-stack-1x.fa-inverse
h4.my-3 Interoperable
p.text-muted
| The OGC API - Records Standard was developed and is maintained by the
a(href="https://www.ogc.org/" target="_blank") Open Geospatial Consortium (OGC),
| , an international Standards Development Organization (SDO).
| The OGC also offers compliance and certification testing, ensuring maximum interoperability.
| In addition, the Standard is harmonized with the
a(href="https://stacspec.org/en" target="_blank") STAC
| family of specifications, in order to make sure that STAC catalogs can understand OGC API - Records catalogs and vice versa.
.col-md-4
span.fa-stack.fa-4x
i.fas.fa-circle.fa-stack-2x.text-primary
i.fas.fa-screwdriver-wrench.fa-stack-1x.fa-inverse
h4.my-3 Flexible
p.text-muted
| The OGC API - Records Standard defines requirements for key deployment patterns that address different use cases.
| For instance, a public directory with satellite imagery can benefit from having a crawlable catalog (also called
i static
| catalog), which can be created with static files without the need to install any API, middleware or databases.
.col-md-4
span.fa-stack.fa-4x
i.fas.fa-circle.fa-stack-2x.text-primary
i.fas.fa-laptop-code.fa-stack-1x.fa-inverse
h4.my-3 Based on Best Practices
p.text-muted
| The OGC API - Records Standard is based on Web technologies and vocabularies, such as REST, OpenAPI, JSON and HTML. These mass market technologies and patterns provide a low barrier experience for any Web developer (where geospatial/GIS expertise is not required).
// How
section#how.page-section
.container
.text-center
h2.section-heading.text-uppercase How does it work?
.row.justify-content-center
.col-6
p.text-muted
| An implementation of the OGC API - Records Standard provides
strong discovery
| and
strong access
| to metadata about geospatial resources.
| Once a metadata record is found, its API response provides key information to help a user evaluate the resource as well as mechanisms for further interaction (data access, process execution, etc.).
p.text-muted
| The Standard offers three main reusable API components: a
i record
| , a
i collection of records
| and a
i records API
| .
.text-center.text-muted
img(src='assets/img/oar-blocks.png', alt='...', style='width:40%', title='Records API Components')
p.text-muted
| These three components combined together enable developers to implement a
i catalog.
.text-left.text-muted
| A
i searchable catalog
| is a powerful way of publishing metadata, as it provides querying capabilities
//- | (
//- a(href="https://demo.pygeoapi.io/master/collections/dutch-metadata" target="_blank") show me a searchable catalog
//- |).
|For use cases where search is not essential, there is the alternative of deploying a
i crawlable catalog
| , which only requires deploying metadata files alongside the data in a web accessible location (web server, object storage service, etc.).
This This deployment pattern imposes a very low implementation burden because it relies solely on HTTP to do most of the work of navigating and accessing records in a catalog
//- | (
//- a(href="" target="_blank") show me a crawlable catalog
//- |)
//- br
//- br
| Learn more about the OGC API - Records
a(href="blocks.html" target="_blank") API components
| and
a(href="patterns.html" target="_blank") deployment patterns.
// In action
section#inaction.page-section.bg-light
.container
.text-center
h2.section-heading.text-uppercase See it In Action
h3.section-subheading.text-muted This is a list of public catalogs that publish metadata using OGC API - Records. Please
a(href='mailto:[email protected]') get in touch
|, if you would like to add your server to the list.
.row
.col-lg-4
.team-member
.ribbon-holder
.ribbon.ribbon-holder Searchable
img.mx-auto.rounded-circle(src='assets/img/wmo-logo.png', alt='...')
h4 WMO WIS2 Global Discovery Catalog
p.text-muted Powered by pygeoapi
p.text-muted The World Meteorological Organization (WMO) provides a Global Discovery Catalog as part of the WMO Information System (WIS2), providing a catalog of weather, climate, and water data from 193 Members.
a.btn.btn-dark.btn-social.mx-2(href='https://wis2-gdc.weather.gc.ca/collections/wis2-discovery-metadata' title='Catalog Resource' target="_blank")
i.fa.fa-link
a.btn.btn-dark.btn-social.mx-2(href='https://wis2-gdc.weather.gc.ca/openapi' title='OpenAPI definition' target="_blank")
i.fa.fa-code
.col-lg-4
.team-member
.ribbon-holder
.ribbon.ribbon-holder Searchable
img.mx-auto.rounded-circle(src='assets/img/logo-emotionalcities.svg', alt='...')
//- img.mx-auto.rounded-circle(src='assets/img/ecities.jpeg', alt='...')
h4 eMOTIONAL Cities Catalog
p.text-muted Powered by pygeoapi
p.text-muted The catalog from the eMOTIONAL Cities Horizon 2020 project exposes +100 datasets from the Urban Health domain.
a.btn.btn-dark.btn-social.mx-2(href='https://emotional.byteroad.net/catalogue' title='Catalog Resource' target="_blank")
i.fa.fa-link
a.btn.btn-dark.btn-social.mx-2(href='https://emotional.byteroad.net/openapi' title='OpenAPI definition' target="_blank")
i.fa.fa-code
.col-lg-4
.team-member
.ribbon-holder
.ribbon.ribbon-holder Searchable
img.mx-auto.rounded-circle(src='assets/img/eea_logo_mini_en.svg', alt='...')
//- img.mx-auto.rounded-circle(src='assets/img/ecities.jpeg', alt='...')
h4 European Environment Agency - SDI - geospatial data catalog
p.text-muted Powered by GeoNetwork
p.text-muted The EEA SDI is a metadata catalog service that facilitates the discovery of the data sets produced, acquired and, when possible, published by the EEA.
a.btn.btn-dark.btn-social.mx-2(href='https://sdi.eea.europa.eu/catalogue/api/collections/main' title='Catalog Resource' target="_blank")
i.fa.fa-link
//- a.btn.btn-dark.btn-social.mx-2(href='https://sdi.eea.europa.eu/catalogue/api/catalogue/api/openapi/v3/api-docs' title='OpenAPI definition' target="_blank")
//- i.fa.fa-code
.col-lg-4
.team-member
.ribbon-holder
.ribbon.ribbon-holder Searchable
img.mx-auto.rounded-circle(src='assets/img/BGS-Icon-Compact-Pos-RGB-01.png', alt='...')
h4 British Geological Survey Metadata Catalogue
p.text-muted Powered by GeoNetwork
p.text-muted The BGS metadata catalogue discovery service provides human and computer accessible interface to aid discovery of datasets, services and models held by the BGS.
a.btn.btn-dark.btn-social.mx-2(href='https://metadata.bgs.ac.uk/geonetwork/api/collections/main' title='Catalog Resource' target="_blank")
i.fa.fa-link
//- a.btn.btn-dark.btn-social.mx-2(href='' title='OpenAPI definition' target="_blank")
//- i.fa.fa-code
section#getstarted.page-section
.container
.text-center
h2.section-heading.text-uppercase Get Started
h3.section-subheading.text-muted Do you want to start using OGC API - Records? Before starting to implement the spec, please take a look at the existing implementations.
<table class="table table-bordered">
<thead>
<tr>
<th scope="col" colspan="5" class="table-dark">Servers</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row" rowspan="1" class="table-info"><i class="fa-solid fa-c"></i></th>
<td>Cubewerx</td>
<td title="Github repository"></td>
<td title="Docker image"></td>
<td title="Tutorial/Example"><a href="https://test.cubewerx.com/cubewerx/cubeserv/default/ogcapi/catalogues/collections/cwtepcat2" target="_blank"><i class="fas fa-graduation-cap"></i>/<i class="fas fa-code"></i></a></td>
</tr>
<tr>
<th scope="row" rowspan="2" class="table-info">Java <i class="fab fa-java"></i></th>
<td>GeoNetwork</td>
<td title="Github repository"><a href="https://github.com/geonetwork/core-geonetwork" target="_blank"><i class="fab fa-github"></i></a></td>
<td title="Docker image"><a href="https://hub.docker.com/_/geonetwork" target="_blank"><i class="fab fa-docker"></i></a></td>
<td title="Tutorial/Example"><a href="https://docs.geonetwork-opensource.org/4.4/user-guide/" target="_blank"><i class="fas fa-graduation-cap"></i>/<i class="fas fa-code"></i></a></td>
</tr>
<tr>
<td>Esri Geoportal Server Catalog</td>
<td title="Github repository"><a href="https://github.com/Esri/geoportal-server-catalog" target="_blank"><i class="fab fa-github"></i></a></td>
<td title="Docker image"></td>
<td title="Tutorial/Example"><a href="https://github.com/Esri/geoportal-server-catalog/wiki" target="_blank"><i class="fas fa-graduation-cap"></i>/<i class="fas fa-code"></i></a></td>
</tr>
<tr>
<th scope="row" rowspan="2" class="table-info">Python <i class="fab fa-python"></i></th>
<td>pycsw</td>
<td title="Github repository"><a href="https://github.com/geopython/pycsw" target="_blank"><i class="fab fa-github"></i></a></td>
<td title="Docker image"><a href="https://hub.docker.com/r/geopython/pycsw" target="_blank"><i class="fab fa-docker"></i></a></td>
<td title="Tutorial/Example"><a href="https://geopython.github.io/pycsw-workshop/" target="_blank"><i class="fas fa-graduation-cap"></i>/<i class="fas fa-code"></i></a></td>
</tr>
<tr>
<td>pygeoapi</td>
<td title="Github repository"><a href="https://github.com/geopython/pygeoapi" target="_blank"><i class="fab fa-github"></i></a></td>
<td title="Docker image"><a href="https://hub.docker.com/r/geopython/pygeoapi" target="_blank"><i class="fab fa-docker"></i></a></td>
<td title="Tutorial/Example"><a href="https://dive.pygeoapi.io/" target="_blank"><i class="fas fa-graduation-cap"></i>/<i class="fas fa-code"></i></a></td>
</tr>
<tr>
</tbody>
</table>
<table class="table table-bordered">
<thead>
<tr>
<th scope="col" colspan="5" class="table-dark">Clients</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row" rowspan="1" class="table-info">Python <i class="fab fa-python"></i></th>
<td>OWSLib</td>
<td title="Github repository"><a href="https://github.com/geopython/owslib" target="_blank"><i class="fab fa-github"></i></a></td>
<td title="Tutorial/Example">
<a href="https://owslib.readthedocs.io/en/latest/" target="_blank"><i class="fas fa-graduation-cap"></i>/<i class="fas fa-code"></i></a>,
</td>
</tr>
<tr>
<th scope="row" rowspan="2" class="table-info">JavaScript/Vue.js <i class="fab fa-js"></i></th>
<td>STAC Browser</td>
<td title="Github repository"><a href="https://github.com/radiantearth/stac-browser" target="_blank"><i class="fab fa-github"></i></a></td>
<td title="Tutorial/Example">
<a href="https://radiantearth.github.io/stac-browser/#/?.language=en" target="_blank"><i class="fas fa-graduation-cap"></i>/<i class="fas fa-code"></i></a>,
</td>
</tr>
<tr>
<td>MDME</td>
<td title="Github repository"><a href="https://github.com/osgeo/mdme" target="_blank"><i class="fab fa-github"></i></a></td>
<td title="Tutorial/Example">
<a href="https://osgeo.github.io/mdme/" target="_blank"><i class="fas fa-graduation-cap"></i>/<i class="fas fa-code"></i></a>,
</td>
</tr>
<tr>
<th scope="row" rowspan="1" class="table-info">C/C++</th>
<td>QGIS</td>
<td title="Github repository"><a href="https://github.com/qgis/qgis" target="_blank"><i class="fab fa-github"></i></a></td>
<td colspan="2" title="Tutorial/Example"><a href="https://docs.qgis.org/3.34/en/docs/user_manual/plugins/core_plugins/plugins_metasearch.html" target="_blank"><i class="fas fa-graduation-cap"></i>/<i class="fas fa-code"></i></a></td>
</tr>
</tbody>
</table>
<table class="table table-bordered">
<thead>
<tr>
<th scope="col" colspan="5" class="table-dark">Encoders/Decoders</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row" rowspan="1" class="table-info">Python <i class="fab fa-python"></i></th>
<td>pygeometa</td>
<td title="Github repository"><a href="https://github.com/geopython/pygeometa" target="_blank"><i class="fab fa-github"></i></a></td>
<td title="Tutorial/Example">
<a href="https://geopython.github.io/pygeometa/tutorial/" target="_blank"><i class="fas fa-graduation-cap"></i>/<i class="fas fa-code"></i></a>,
</td>
</tr>
</tbody>
</table>
// Get involved
section#getinvolved.page-section.bg-light
.container
.text-center
h2.section-heading.text-uppercase Get Involved
h3.section-subheading.text-muted Tell us what’s working well, what you want to see added or improved, and find out about new updates.
.row.text-center
.col-md-6
span.fa-stack.fa-4x
a(href='https://discord.gg/79QbzRDRPB' title='Discord' target="_blank")
i.fas.fa-circle.fa-stack-2x.text-primary
i.fab.fa-discord.fa-stack-1x.fa-inverse
h4.my-3 Discord
p.text-muted
| Chat with other users in the OGC API - Records discord channel or in the
a(href='https://matrix.to/#/#ogc-api-records:matrix.org' title='Matrix' target="_blank") matrix bridge
| .
.col-md-6
span.fa-stack.fa-4x
a(href='https://github.com/opengeospatial/ogcapi-records' title='Github' target="_blank")
i.fas.fa-circle.fa-stack-2x.text-primary
i.fab.fa-github.fa-stack-1x.fa-inverse
h4.my-3 GitHub
p.text-muted
| Found a bug, or want to give us constructive feedback?
// Footer
footer.footer.py-4
.container
.row.align-items-center
.col-lg-4.text-lg-start
| Copyright © 2024. Open Geospatial Consortium all rights reserved
.col-lg-4.my-3.my-lg-0
//- a.btn.btn-dark.btn-social.mx-2(href='https://twitter.com/opengeospatial/')
//- i.fab.square-x-twitter
a.btn.btn-dark.btn-social.mx-2(href='https://www.youtube.com/user/ogcvideo')
i.fab.fa-youtube
//- a.btn.btn-dark.btn-social.mx-2(href='#!')
//- i.fab.fa-telegram-plane
a.btn.btn-dark.btn-social.mx-2(href='https://www.linkedin.com/company/open-geospatial-consortium')
i.fab.fa-linkedin-in
.col-lg-4.text-lg-end
a.link-dark.text-decoration-none.me-3(data-bs-toggle='modal', data-bs-target='#portfolioModal1') Privacy Policy
//- a.link-dark.text-decoration-none(href='#!') Terms of Use
// Portfolio Modals
include includes/portfolio-modal-1
// Bootstrap core JS
script(src='https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js')
// Core theme JS
script(src='js/scripts.js')
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
// * * SB Forms JS * *
// * * Activate your form at https://startbootstrap.com/solution/contact-forms * *
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
script(src='https://cdn.startbootstrap.com/sb-forms-latest.js')