Basierend auf JavaScript Object Notation (JSON), CoverageJSON ist ein Format zur Veröffentlichung räumlich-zeitlicher Daten im Web. Die primären Designziele sind Einfachheit, maschinelle und menschliche Lesbarkeit und Effizienz. Obwohl andere Anwendungsfälle möglich sind, ist das primäre CoverageJSON Der Anwendungsfall ermöglicht die Entwicklung interaktiver visueller Websites, die Umweltdaten in einem Webbrowser anzeigen und bearbeiten.
Die Erfahrungen aus der Umsetzung haben gezeigt, CoverageJSON ist ein effektives, effizientes Format, benutzerfreundlich für Web- und Anwendungsentwickler und daher im Einklang mit der aktuellen OGC API-Entwicklungen. CoverageJSON unterstützt die effiziente Übertragung nützlicher Datenmengen aus großen Datenspeichern auf leichte Clients wie Browser und mobile Anwendungen. Dies ermöglicht eine unkomplizierte lokale Bearbeitung der Daten, beispielsweise durch wissenschaftliche Forscher. Webentwickler verwenden häufig JSON-Formate und sind mit ihnen vertraut.
CoverageJSON kann verwendet werden, um Flächendeckungen und Flächendeckungssammlungen zu kodieren. Flächendeckungsdaten können gerastert oder nicht gerastert sein und Datenwerte können kontinuierliche Werte (wie Temperatur) oder diskrete Kategorien (wie Bodenbedeckungsklassen) darstellen. CoverageJSON verwendet JSON-LD, um Interoperabilität mit RDF- und Semantic-Web-Anwendungen bereitzustellen und die potenzielle Größe der Nutzlast zu reduzieren.
Relativ große Datensätze können effizient und „webfreundlich“ gehandhabt werden, indem man die Informationen auf mehrere CoverageJSON Dokumente, einschließlich eines Kachelmechanismus. Dennoch CoverageJSON ist nicht als Ersatz für effiziente Binärformate wie NetCDF, HDF oder GRIB gedacht und ist nicht in erster Linie für die Speicherung oder Übertragung sehr großer Datensätze in großen Mengen vorgesehen.
Der einfachste und häufigste Anwendungsfall ist die Einbettung aller Datenwerte aller Variablen in ein Coverage-Objekt innerhalb des CoverageJSON Dokument, so dass es „in sich geschlossen“ ist. Ein solches eigenständiges Dokument unterstützt die Verwendung sehr einfacher Clients.
Der nächste einfache Anwendungsfall ist das Platzieren von Datenwerten für jede Variable (Parameter) in separaten Array-Objekten in separaten CoverageJSON Dokumente, die vom Coverage-Objekt verknüpft sind. Dies ist nützlich, wenn ein Datensatz mit mehreren Variablen, z. B. mit Temperatur, Luftfeuchtigkeit, Windgeschwindigkeit usw., in separaten Dateien aufgezeichnet werden soll. Dadurch kann der Client nur die Variablen laden, die von Interesse sind.
Ein anspruchsvoller Anwendungsfall ist die Verwendung von Kachelobjekten, bei denen die Datenwerte räumlich und zeitlich aufgeteilt werden, sodass die Datenwerte einer einzelnen Variable auf mehrere Dokumente aufgeteilt werden. Ein einfaches Beispiel für diesen Anwendungsfall ist die Kodierung jedes Zeitschritts eines Datensatzes in eine separate Datei. Die Kacheln könnten jedoch auch räumlich auf ähnliche Weise wie ein gekachelter Kartenserver aufgeteilt werden.