Create Observable Object¶
Problem¶
You want to create an Observable
object and add it to the entanglement graph.
Solution¶
An Observable
object is a physical property or attribute that can be observed by an Entity
or Dataset
. Observable
is something that some sensor or methodology is capable of observing.
In this example, we are going to create a Observable
object for maximum fire radiative power band from the MODIS Terra Thermal Anomalies & Fire Daily Global. For more information on how to add MODIS Terra Thermal Anomalies & Fire Daily Global dataset see adding Google Earth Engine data set.
All Object
can have additional qualifers, though name
is the only qualifier that is required. In this example, we will also be adding domain
, category
, and type
qualifiers, along with description
and alias
attributes.
Setup¶
Start by seting up the basic geodesic workflow in python.
>>> import geodesic
>>> geodesic.set_active_project('cookbook-examples')
Creating The Object¶
>>> observable_object = geodesic.entanglement.Object(object_class='observable',
name='fire-radiative-power,
domain = 'earth-observation',
category = 'thermal-anomalies',
type='radiative-power',
description = 'Fire radiative power (FRP) within the pixel is estimated using the empirical relationship established in Kaufman et al. 1998 paper "Potential global fire monitoring from EOS-MODIS."',
alias = 'Fire radiative power'
)
>>> observable_object.save()
The domain
, category
, and type
qualifers are used to help organize and classify the object. The description
and alias
attributes are optional and can be used to store additional information about the object.
Accessing the Object¶
To check that your object has been created and added to the entanglement graph, you can use the get_objects()
method to search either by object type or by name.
>>> geodesic.get_objects(object_class='observable')
[observable:earth-observation:thermal-anomalies:radiative-power:fire-radiative-power]
>>> geodesic.get_objects(search='fire')
[observable:earth-observation:thermal-anomalies:radiative-power:fire-radiative-power]
We can save the search results as a list of Objects
and then access the object by index which will allow us to access the object’s attributes.
>>> obj_lst = geodesic.get_objects(search='fire')
>>> fire_radiative_power_obj = obj_lst[0]
>>> dict(fire_radiative_power_obj)