Declaring the models

For the models, all of the field types (for example, Integer, String, and Float) are defined using SQLAlchemy ORM-column classes, except for the geometry columns, which use the GeoAlchemy2  Geometry class. The Geometry class requires a geometry type and SRID:

# Define the Arena class, which will model the Arena database tableclass Arena(Base):    __tablename__ = 'arena'    id = Column(Integer, primary_key=True)    name = Column(String)    longitude = Column(Float)    latitude = Column(Float)    geom = Column(Geometry(geometry_type='POINT', srid=4326))

The County class has a primary key field and a name field, as well as fields that define the many-to-one relationship with the State class. Instead of a POINT geometry type, it uses MULTIPOLYGON ...

Get Mastering Geospatial Analysis with Python now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.