__init__.py 2.8 KB
# coding=utf-8
#author:        4N
#createtime:    2021/6/11
#email:         nheweijun@sina.com


from sqlalchemy import Column, Integer, String, ForeignKey, Text, DateTime, Time,Binary,Float
from app.models import db



class Image(db.Model):
    '''
    影像元数据
    '''
    __tablename__ = 'dmdms_image'
    guid = Column(String(256), primary_key=True)
    name = Column(String)
    alias = Column(String)
    raster_y_size = Column(Integer)
    raster_x_size = Column(Integer)
    overview_count = Column(Integer)
    origin_extent = Column(String)
    geo_origin_extent = Column(String)
    null_value = Column(Integer)
    available = Column(Integer)#影像是否可用,不可用可能在创建金字塔中
    band_count = Column(Integer)
    path = Column(String)
    server = Column(String)
    # host=Column(String)
    # port=Column(Integer)
    size = Column(Float)
    #坐标wkt
    sr_wkt = Column(Text)
    sr_proj4 = Column(Text)
    epsg = Column(Integer)
    create_time = Column(DateTime)
    update_time = Column(DateTime)
    cell_x_size = Column(Float)
    cell_y_size = Column(Float)
    region = Column(Text)
    #年份
    ym = Column(String(256))

dmdms_image_rel = db.Table('dmdms_image_rel',
    Column('image_guid',String, ForeignKey('dmdms_image.guid')),
    Column('service_guid', String, ForeignKey('dmdms_image_service.guid'))
    )



class ImageService(db.Model):
    '''
    影像服务
    '''
    __tablename__ = 'dmdms_image_service'
    guid = Column(String(256), primary_key=True)
    name=Column(String(256))
    alias = Column(String(256))
    state= Column(Integer)
    create_time = Column(DateTime)
    update_time = Column(DateTime)
    description = Column(Text)
    slice_scheme = Column(Text)
    extent = Column(String(256))
    node = Column(Integer)
    #可视范围geojson
    visual_range = Column(Text)
    #影像服务缩略图
    overview = Column(Binary)

    images  = db.relationship('Image',
                              secondary=dmdms_image_rel,
                              backref='image_services',
                              lazy='dynamic'
                              )


dmdms_image_tag_rel = db.Table('dmdms_image_tag_rel',
    Column('image_guid',String, ForeignKey('dmdms_image.guid')),
    Column('tag_guid', String, ForeignKey('dmdms_image_tag.guid'))
    )

class ImageTag(db.Model):
    '''
    影像标签
    '''
    __tablename__ = 'dmdms_image_tag'
    guid = Column(String(256), primary_key=True)
    name=Column(String(256))
    alias = Column(String(256))
    images  = db.relationship('Image',
                              secondary=dmdms_image_tag_rel,
                              backref='image_tags',
                              lazy='dynamic'
                              )