__init__.py 3.0 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__ = 'dmap_image'
    guid = Column(String(256), primary_key=True)
    name = Column(String)
    alias = Column(String)
    raster_y_size = Column(Integer)#图像y 分辨率
    raster_x_size = Column(Integer)#图像x 分辨率
    overview_count = Column(Integer)#金字塔等级
    extent = Column(String)#范围
    # geo_origin_extent = Column(String)
    null_value = Column(Integer)#空值
    available = Column(Integer)#影像是否可用,不可用可能在创建金字塔中
    band_count = Column(Integer)#波段数
    band_view = Column(String)#波段设置
    path = Column(String)
    server = Column(String)

    size = Column(Float)
    #坐标wkt
    sr_wkt = Column(Text) #坐标wkt
    sr_proj4 = Column(Text)#坐标proj
    epsg = Column(Integer)#坐标epsg
    create_time = Column(DateTime)
    update_time = Column(DateTime)
    cell_x_size = Column(Float)#像元x大小
    cell_y_size = Column(Float)#像元y大小
    region = Column(Text)

    ym = Column(String(256))#时间年份

    satellite = Column(String)#卫星类型
    type = Column(String(128))


dmap_image_rel = db.Table('dmap_image_rel',
    Column('image_guid',String, ForeignKey('dmap_image.guid')),
    Column('service_guid', String, ForeignKey('dmap_image_service.guid'))
    )



class ImageService(db.Model):
    '''
    影像服务
    '''
    __tablename__ = 'dmap_image_service'
    guid = Column(String(256), primary_key=True)
    name = Column(String)
    scheme_guid = Column(String)
    extent = Column(String(256))
    # node = Column(Integer)
    #可视范围geojson
    visual_region = Column(Text)
    crs = Column(String(256))
    create_time = Column(DateTime)
    # service_guid = Column(String, ForeignKey('dmap_service.guid'))

    service_guid = Column(String)

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


dmap_image_tag_rel = db.Table('dmap_image_tag_rel',
    Column('image_guid',String, ForeignKey('dmap_image.guid')),
    Column('tag_guid', String, ForeignKey('dmap_image_tag.guid'))
    )

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