Uploading a Dataset to Eratos

Below is an example of a block_descriptor.yaml file for the SILO Max Temperature block. This brings together examples of mandatory, optional, and SILO-specific fields as well as demonstrating how to reference standard options for licenses, pricing, categorizing, tagging, and ownership. These other schemas are elaborated on further below.

'@geo': POLYGON ((112 -44, 154 -44, 154 -10, 112 -10, 112 -44))
'@id': ern:e-pn.io:resource:eratos.blocks.silo.maxtemperature
'@type': ern:e-pn.io:schema:block
name: Daily Historical Maximum Temperature - Australia
shortDescription: SILO daily Maximum Temperature dataset over a 5x5km grid from 1889 to yesterday.
description: SILO is a database of Australian climate variables over a 5x5km grid from 1889 to yesterday. SILO uses mathematical interpolation techniques to construct spatial grids and infill gaps in time series datasets. Users are advised to understand the implications and accuracy of using interpolated data. Scientific papers on SILO are available. SILO data are not intended for use in climate change detection studies. Small data movements caused by climate change can be easily confounded by changes resulting from instrumental biases and relocating recording stations. For climate change detection we recommend using the Bureau's ACORN-SAT.
primary: ern:e-pn.io:resource:eratos.dataset.silo.maxtemperature
licenses:
  - ern:e-pn.io:resource:eratos.licenses.cc-by-40
pricing:
  - ern:e-pn.io:resource:eratos.pricing.free
creator: ern:e-pn.io:resource:eratos.creator.qldgov
eratosManaged: true
categories:
  - ern:e-pn.io:resource:eratos.ontology.categories.industry.climate
tags:
  - ern:e-pn.io:resource:eratos.ontology.tags.silo
  - ern:e-pn.io:resource:eratos.ontology.tags.weather
  - ern:e-pn.io:resource:eratos.ontology.tags.historical
relatedLinks:
  - section: References
    links:
      - label: Host website
        url: https://www.longpaddock.qld.gov.au/silo/
      - label: SILO Climate variables
        url: https://www.longpaddock.qld.gov.au/silo/about/climate-variables/
visualisation:
  icon: Max_temperature
useCases:
  - name: Risk Analysis
    description: Using SILO's historical maximum temperature data, models can be developed to understand various future risks, such as the future liveability of cities. Companies dealing with insuring properties will also be able to use the data to calculate their own analysis to understand and aid customers.   
codeExamples: 
  - title: Get the maximum temperature on a certain day at a certain location in Australia
    description: Retrieves the maximum temperature for Federation Square, Melbourne 'POINT(144.96 -37.81)' on September 30, 2022.
    languages:
      - languageName: python
        code: |
          ```
          data = eratosAdapter.Resource(ern='ern:e-pn.io:resource:eratos.blocks.silo.maxtemperature')
          griddedData = data.data().gapi()
          maximumTemp = griddedData.get_timeseries_at_points('max_temp', ['POINT(144.968654 -37.817960)'], '2022-09-30', '2022-09-30')
          print(maximumTemp)
          ```
  - title: Compare the maximum temperature of multiple locations in Australia over a period of time
    description: Prints a table comparing the maximum temperatures for Federation Square, Melbourne and Sydney Opera House over the time period September 15, 2022 - September 20, 2022.
    languages:
      - languageName: python
        code: |
          ```
          import pandas as pd
          from tabulate import tabulate
          data = eratosAdapter.Resource(ern='ern:e-pn.io:resource:eratos.blocks.silo.maxtemperature')
          griddedData = data.data().gapi()
          locations = ['POINT(144.968654 -37.817960)','POINT(151.215177 -33.857169)']
          startDate = '2022-09-15'
          endDate = '2022-09-20'
          extractedData = griddedData.get_timeseries_at_points('max_temp', locations, startDate, endDate)
          dateGeneratedList = pd.date_range(startDate, endDate, freq='D')
          dateRange = dateGeneratedList.strftime('%Y-%m-%d').to_list()
          dataDict = {'Date':dateRange, 'Federation Square, Melbourne':extractedData[0], 'Sydney Opera House':extractedData[1]}
          dataFrame = pd.DataFrame(dataDict)
          print(tabulate(dataFrame.head(), headers='keys', tablefmt='fancy_grid'))
          ```