- add geoalchemy2 for inserting geometry observation

- tested original InsertObservation request - see ImportMobileObservation_example.xml
This commit is contained in:
Arno Kaimbacher 2022-03-25 16:37:57 +01:00
parent 56e3df1cf4
commit 278537d85d
9 changed files with 7003 additions and 31 deletions

View file

@ -13,6 +13,8 @@ from sqlalchemy import (Column, Integer, Sequence,
String, DateTime, ForeignKey, Numeric, SmallInteger, create_engine)
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import session, relationship, sessionmaker
# from geoalchemy2 import Geometry
from geoalchemy2.types import Geometry
#from marshmallow import Schema
from marshmallow_sqlalchemy import SQLAlchemySchema, SQLAlchemyAutoSchema
from marshmallow import fields
@ -26,7 +28,7 @@ Base = declarative_base()
def create_pg_session() -> sessionmaker:
""" create postgres db session """
load_dotenv(find_dotenv())
dbschema = ''
dbschema = 'gba'
db_user = os.environ.get("POSTGIS_DBUSER")
db_password = os.environ.get("POSTGIS_DBPASSWORD")
db_url = os.environ.get("POSTGIS_DBURL")
@ -186,8 +188,9 @@ class Observation(Base):
result_time = Column('result_time', DateTime)
sta_identifier = Column('sta_identifier', String)
value_identifier = Column('value_identifier', String)
value_quantity = Column('value_quantity', Numeric(20, 10))
value_text = Column('value_text', String)
value_quantity = Column('value_quantity', Numeric(20, 10), nullable=True)
value_text = Column('value_text', String, nullable=True)
value_geometry = Column(Geometry(geometry_type='POLYGON', srid=4326, dimension=3), nullable=True)
fk_dataset_id = Column(Integer, ForeignKey(
'gba.dataset.dataset_id'), nullable=False)
@ -263,7 +266,7 @@ def create_db():
isolation_level="READ UNCOMMITTED", echo=True)
# session_maker = sessionmaker(bind=engine)
# session = session_maker()
Base.metadata.drop_all(bind=engine)
# Base.metadata.drop_all(bind=engine)
# Base.metadata.create_all(engine)