Skip to content

Finding data in the platform

The Platform is great for exploring available datasets, including your own.

Click Browse Catalog
Click "Browse Catalog" in the platform dashboard to start exploring.


Here you see a list of collections. These are the published datasets that open to every user. All in one place, pretty neat!

img_9.png
Catalog results


Collections can be filtered by query, location and time. Let's filter collections by location. Click expand button on the map.

Clicking to expand map
Collections filtering options


Collections are filtered by drawn bounding shape. To draw bounding shape, click on the map. To finish drawing, click on the starting point.

Draw a shape
Drawn bounding shape

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 update map coordinates
Shape coordinates

Click done to filter the collections.


Filtered collections will be shown. One of the results is Aker's biomarine data. Click to open it.

img_40.png
Filter result


Here we can see the details of the collection.

img_41.png
Aker biomarine dataset information


Aker biomarine data collection contains 1 raw dataset.

img_42.png
Aker biomarine datasets

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
              ]
            ]
          ]
        }
      ]
    }
  ]
}
results.spec.ref contains reference to whom observable was created (for example "catalog.hubocean.io/dataset/test-dataset").

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)