Finding data in the platform
The Platform is great for exploring available datasets, including your own.
Here you see a list of collections. These are the published datasets that open to every user. All in one place, pretty neat!
Collections can be filtered by query, location and time. Let's filter collections by location. Click expand button on the map.
Collections are filtered by drawn bounding shape. To draw bounding shape, click on the map. To finish drawing, click on the starting point.
When bounding shape is drawn, shape's coordinates will appear. If point's coordinates needs to be adjusted, update values directly or redraw the shape.
Click done to filter the collections.
Filtered collections will be shown. One of the results is Aker's biomarine data. Click to open it.
Here we can see the details of the collection.
Aker biomarine data collection contains 1 raw dataset.
Ocean Data Platform contains different kinds of data. Here are some of the examples how to fetch lists of different kinds of data.
Fetch all data colllections
You need to send POST https://api.hubocean.earth/catalog/list request with body:
{
"#EQUALS":
[
"$kind",
"catalog.hubocean.io/dataCollection"
]
}
Fetch all datasets
You need to send POST https://api.hubocean.earth/catalog/list request with body:
{
"#EQUALS":
[
"$kind",
"catalog.hubocean.io/dataset"
]
}
Fetch all Raw datasets
You need to send POST https://api.hubocean.earth/catalog/list request with body:
{
"#EQUALS":
[
"$spec.storage_class",
"registry.hubocean.io/storageClass/raw"
]
}
Fetch all Tabular datasets
You need to send POST https://api.hubocean.earth/catalog/list request with body:
{
"#EQUALS":
[
"$spec.storage_class",
"registry.hubocean.io/storageClass/tabular"
]
}
Fetch all Observables
You need to send POST https://api.hubocean.earth/catalog/list request with body:
{
"#EQUALS":
[
"$kind",
"catalog.hubocean.io/observable"
]
}
Fetch all Observables intersecting a polygon
You need to send POST https://api.hubocean.earth/catalog/list request with body:
{
"#AND": [
{
"#EQUALS": [
"$kind",
"catalog.hubocean.io/observable"
]
},
{
"#ST_INTERSECTS": [
"$spec.details.value.geometry",
{
"type": "Polygon",
"coordinates": [
[
[
-10,
70
],
[
25,
70
],
[
25,
50
],
[
-10,
50
],
[
-10,
70
]
]
]
}
]
}
]
}
Fetch all resources
You need to send POST https://api.hubocean.earth/catalog/list request with empty request body.
Data can also be accessed through SDK. To filter the results, we use OQS.
Fetch all data collections
from odp.client import OdpClient
client = OdpClient()
catalog_client = client.catalog
oqs_filter = {
"#EQUALS":
[
"$kind",
"catalog.hubocean.io/dataCollection"
]
}
# List all data collections
for item in catalog_client.list(oqs_filter=oqs_filter):
print(item)
Fetch all datasets
from odp.client import OdpClient
client = OdpClient()
catalog_client = client.catalog
oqs_filter = {
"#EQUALS":
[
"$kind",
"catalog.hubocean.io/dataset"
]
}
# List all datasets
for item in catalog_client.list(oqs_filter=oqs_filter):
print(item)
Fetch all Raw datasets
from odp.client import OdpClient
client = OdpClient()
catalog_client = client.catalog
oqs_filter = {
"#EQUALS":
[
"$spec.storage_class",
"registry.hubocean.io/storageClass/raw"
]
}
# List all raw datasets
for item in catalog_client.list(oqs_filter=oqs_filter):
print(item)
Fetch all Tabular datasets
from odp.client import OdpClient
client = OdpClient()
catalog_client = client.catalog
oqs_filter = {
"#EQUALS":
[
"$spec.storage_class",
"registry.hubocean.io/storageClass/tabular"
]
}
# List all tabular datasets
for item in catalog_client.list(oqs_filter=oqs_filter):
print(item)
Fetch all Observables
from odp.client import OdpClient
client = OdpClient()
catalog_client = client.catalog
oqs_filter = {
"#EQUALS":
[
"$kind",
"catalog.hubocean.io/observable"
]
}
# List all observables
for item in catalog_client.list(oqs_filter=oqs_filter):
print(item)
Fetch all Observables intersecting a polygon
from odp.client import OdpClient
client = OdpClient()
catalog_client = client.catalog
oqs_filter = {
"#AND": [
{
"#EQUALS": [
"$kind",
"catalog.hubocean.io/observable"
]
},
{
"#ST_INTERSECTS": [
"$spec.details.value.geometry",
{
"type": "Polygon",
"coordinates": [
[
[
-10,
70
],
[
25,
70
],
[
25,
50
],
[
-10,
50
],
[
-10,
70
]
]
]
}
]
}
]
}
# List all observables intersecting polygon
for item in catalog_client.list(oqs_filter=oqs_filter):
print(item)
Fetch all resources
from odp.client import OdpClient
client = OdpClient()
catalog_client = client.catalog
# List all resources
for item in catalog_client.list():
print(item)