Upload a featureΒΆ

In this example we upload a feature. We assume that we already have a feature class similar to the one created in the example Create a feature class. Its feature class description is stored in a variable named fc.

The feature should have the following points and simplex properties.

id x y z gold silver
0 5 0 0 0.3 5.0
1 7 1 0 NULL NULL
2 3 0 1 NULL 0.1
3 1 1 0 0.4 2.1

It should have the following triangulation.

v1 v2 v3
0 1 2
2 1 3

First we need the GeometryBuilder.

import GSTPy

gb = GSTPy.GeometryBuilder()

Now we create a tin geometry and add the point and triangle data.

gb.create_triangle_net3()
gb.add_point(GSTPy.RawPoint3(5, 0, 0))  # 0
gb.add_point(GSTPy.RawPoint3(7, 1, 0))  # 1
gb.add_point(GSTPy.RawPoint3(3, 0, 1))  # 2
gb.add_point(GSTPy.RawPoint3(1, 1, 0))  # 3
gb.add_triangle(GSTPy.IdxTriangle(0, 1, 2))
gb.add_triangle(GSTPy.IdxTriangle(2, 1, 3))

Next we add the object properties.

gb.set_name("example_tin_feature")
gb.set_color(GSTPy.Color(1, 0, 1))
gb.set_transparency(0)
gb.set_custom_property("external_id", "5")
gb.set_custom_property("contact_person", "Max Mustermann")

Afterwards we add the simplex properties.

gb.create_vertex_property("gold", GSTPy.PropertyTypes.TypeFloat)
gb.create_vertex_property("silver", GSTPy.PropertyTypes.TypeFloat)
gb.add_property_value("0.3")  # 0 gold
gb.add_property_value("5.0")  # 0 silver
gb.add_property_null_value()  # 1 gold
gb.add_property_null_value()  # 1 silver
gb.add_property_null_value()  # 2 gold
gb.add_property_value("0.1")  # 2 silver
gb.add_property_value("0.4")  # 3 gold
gb.add_property_value("2.1")  # 3 silver

Finally we set the SRS of the geometry. Note, this is required since GST3.

gb.set_srs(fc.srs)

Now we are ready to upload the feature to GST.

f = ni.upload_feature(gb, fc)

Full code sample

import GSTPy

# add geometry data

gb = GSTPy.GeometryBuilder()
gb.create_triangle_net3()
gb.add_point(GSTPy.RawPoint3(5, 0, 0))  # 0
gb.add_point(GSTPy.RawPoint3(7, 1, 0))  # 1
gb.add_point(GSTPy.RawPoint3(3, 0, 1))  # 2
gb.add_point(GSTPy.RawPoint3(1, 1, 0))  # 3
gb.add_triangle(GSTPy.IdxTriangle(0, 1, 2))
gb.add_triangle(GSTPy.IdxTriangle(2, 1, 3))

# add object properties

gb.set_name("example_tin_feature")
gb.set_color(GSTPy.Color(1, 0, 1))
gb.set_transparency(0)
gb.set_custom_property("external_id", "5")
gb.set_custom_property("contact_person", "Max Mustermann")

# add simplex properties

gb.create_vertex_property("gold", GSTPy.PropertyTypes.TypeFloat)
gb.create_vertex_property("silver", GSTPy.PropertyTypes.TypeFloat)
gb.add_property_value("0.3")  # 0 gold
gb.add_property_value("5.0")  # 0 silver
gb.add_property_null_value()  # 1 gold
gb.add_property_null_value()  # 1 silver
gb.add_property_null_value()  # 2 gold
gb.add_property_value("0.1")  # 2 silver
gb.add_property_value("0.4")  # 3 gold
gb.add_property_value("2.1")  # 3 silver

# set srs

gb.set_srs(fc.srs)

# upload

f = ni.upload_feature(gb, fc)