Skip to main content

Hi.

Is it possible to update the geolocatoin of assets using the Python SDK?

It seems I’m able to update the asset with a geolocation that renders the SDK unable to interact further with the asset. Example below:

 

## Create a new asset with geolocation

dsid = <data set id>

from cognite.client.data_classes import GeoLocation, Asset, Geometry

geometry1 = Geometry(
type="Point", coordinates=e9.6573149,59.142253]
)
asset = Asset(
name="geotest",
data_set_id=dsid,
geo_location=GeoLocation(
type="Feature",
geometry=geometry1
)
)
res = client.assets.create(asset)



## List all assets matching the name .. it works well

client.assets.list(name="geotest")



## Update the geolocation, returns KeyError: 'type'

geometry2 = Geometry(
type="Point", coordinates=e8.6573149,57.142253]
)
res.geo_location = geometry2
res2 = client.assets.update(tres])



## Now try to list the assets again. It fails, returning KeyError: 'type'

client.assets.list(name="geotest")

 

I have tried updating geolocation on assets in Python SDK. I have used following sysntax and it worked for me. Could you please try the same and let me know?

Code:

geometry_two  = Geometry(type="Point",coordinates=[8.6573149,59.142253])


my_update = AssetUpdate(id=2672701736309715).geo_location.set(GeoLocation(type="Feature",geometry=geometry_two))
result=client.assets.update(my_update)
print(result)

After made this update I am able to list my assets:

 


Thanks @Pasindu Perera, I can confirm that this syntax works!


Reply