Solved

Updating geolocation on assets using Python SDK

  • 7 February 2024
  • 2 replies
  • 53 views

Userlevel 2
Badge +3

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=[9.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=[8.6573149,57.142253]
)
res.geo_location = geometry2
res2 = client.assets.update([res])



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

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

 

icon

Best answer by Pasindu Perera 8 February 2024, 16:28

View original

2 replies

Badge +2

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:

 

Userlevel 2
Badge +3

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

Reply