コード例 #1
0
    def get_sync_dict_list(self, insert_or_updata) -> list:
        """
        insert_or_updata 中 self.DB_True为insert,DB_False为updata
        本方法的写法为强规则,调用add_value_to_sync_dict_list配置
        第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置
        """
        sync_dict_list = self.get_sync_predefined_dict_list(insert_or_updata)
        object_table_id = self._obj_id
        object_table_data = self._dataset
        self.add_value_to_sync_dict_list(sync_dict_list, 'aprswid',
                                         object_table_id)

        dsometadataxml = object_table_data.value_by_name(
            0, 'dsometadataxml_bus', '')
        dsometadataxml_xml = CXml()
        dsometadataxml_xml.load_xml(dsometadataxml)  # 加载查询出来的xml
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'domname',
            dsometadataxml_xml.get_element_text_by_xpath_one('/root/DSName'))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'scaletext',
            dsometadataxml_xml.get_element_text_by_xpath_one(
                '/root/ScaleDenominator'))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'datatype',
            object_table_data.value_by_name(0, 'dsodatatype', ''))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'sensors',
            list([
                dsometadataxml_xml.get_element_text_by_xpath_one(
                    '/root/MajorSource')
            ]), self.DataValueType_Array)
        self.add_value_to_sync_dict_list(sync_dict_list, 'dsometadatajson',
                                         dsometadataxml)
        return sync_dict_list
コード例 #2
0
 def get_sync_dict_list(self, insert_or_updata) -> list:
     """
     insert_or_updata 中 self.DB_True为insert,DB_False为updata
     本方法的写法为强规则,调用add_value_to_sync_dict_list配置
     第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置
     """
     sync_dict = self.get_sync_predefined_dict_list(insert_or_updata)
     object_table_id = self._obj_id
     object_table_data = self._dataset
     dsometadataxml = object_table_data.value_by_name(
         0, 'dsometadataxml_bus', '')
     dsometadataxml_xml = CXml()
     dsometadataxml_xml.load_xml(dsometadataxml)  # 加载查询出来的xml
     self.add_value_to_sync_dict_list(sync_dict, 'aprpwid', object_table_id)
     self.add_value_to_sync_dict_list(
         sync_dict, 'dsname',
         dsometadataxml_xml.get_element_text_by_xpath_one(
             '/root/DSName'))  # 配置字段值
     self.add_value_to_sync_dict_list(
         sync_dict, 'producttypechn',
         dsometadataxml_xml.get_element_text_by_xpath_one(
             '/root/ProductType'))
     self.add_value_to_sync_dict_list(
         sync_dict, 'dsometadatajson',
         object_table_data.value_by_name(0, 'dsometadataxml_bus', ''))
     return sync_dict
コード例 #3
0
    def get_sync_dict_list(self, insert_or_updata) -> list:
        """
                insert_or_updata 中 self.DB_True为insert,DB_False为updata
                本方法的写法为强规则,调用add_value_to_sync_dict_list配置
                第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置
        """
        sync_dict = self.get_sync_predefined_dict_list(insert_or_updata)
        object_table_id = self._obj_id
        object_table_data = self._dataset

        # 业务元数据
        dsometadataxml_bus = object_table_data.value_by_name(
            0, 'dsometadataxml_bus', '')
        xml = CXml()
        xml.load_xml(dsometadataxml_bus)

        # 下列字段名均待修改
        self.add_value_to_sync_dict_list(sync_dict, 'aprmwid', object_table_id)
        self.add_value_to_sync_dict_list(
            sync_dict, 'mosaiclinefilename',
            xml.get_element_text_by_xpath_one("//item[@name='ProductName']"))
        self.add_value_to_sync_dict_list(
            sync_dict, 'sensors',
            xml.get_element_text_by_xpath_one("//item[@name='SatelliteID']"))
        self.add_value_to_sync_dict_list(
            sync_dict, 'dsometadatajson',
            object_table_data.value_by_name(0, 'dsometadataxml_bus', ''))
        self.add_value_to_sync_dict_list(
            sync_dict, 'resolution',
            xml.get_element_text_by_xpath_one("//item[@name='Resolution']"))
        # self.add_value_to_sync_dict_list(sync_dict, 'regionname', xml.get_element_text_by_xpath_one(
        #     "//item[@name='GeographicName']"))
        dso_prj_project = object_table_data.value_by_name(
            0, 'dso_prj_project', '')
        if CUtils.equal_ignore_case(dso_prj_project, 'tj2000'):
            dso_prj_project = '2000天津城市坐标系'
        if CUtils.equal_ignore_case(dso_prj_project, 'tj1990'):
            dso_prj_project = '1990天津任意直角坐标系'
        if CUtils.equal_ignore_case(dso_prj_project, 'cgcs2000'):
            dso_prj_project = '2000国家标准坐标系'
        else:
            dataoptions = '其他国家标准坐标系'
        self.add_value_to_sync_dict_list(sync_dict, 'dataoptions',
                                         dso_prj_project)

        # 备注
        self.add_value_to_sync_dict_list(
            sync_dict, 'remark',
            xml.get_element_text_by_xpath_one("//item[@name='Description']"))
        return sync_dict
コード例 #4
0
 def get_sync_dict_list(self, insert_or_updata) -> list:
     """
     insert_or_updata 中 self.DB_True为insert,DB_False为updata
     本方法的写法为强规则,调用add_value_to_sync_dict_list配置
     第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置
     """
     sync_dict_list = self.get_sync_predefined_dict_list(insert_or_updata)
     object_table_id = self._obj_id
     object_table_data = self._dataset
     dsometadataxml = object_table_data.value_by_name(
         0, 'dsometadataxml_bus', '')
     dsometadataxml_xml = CXml()
     dsometadataxml_xml.load_xml(dsometadataxml)  # 加载查询出来的xml
     self.add_value_to_sync_dict_list(sync_dict_list, 'aprvdid1',
                                      object_table_id)
     self.add_value_to_sync_dict_list(
         sync_dict_list, 'dsnamed',
         dsometadataxml_xml.get_element_text_by_xpath_one(
             '/root/DSName'))  # 配置字段值
     if insert_or_updata:
         now_time = CUtils.any_2_str(
             datetime.datetime.now().strftime('%F %T'))
         self.add_value_to_sync_dict_list(sync_dict_list, 'adddate',
                                          now_time)
     self.add_value_to_sync_dict_list(
         sync_dict_list, 'dsdate',
         CUtils.to_day_format(
             dsometadataxml_xml.get_element_text_by_xpath_one('/root/Date'),
             ''))
     regioncode = dsometadataxml_xml.get_element_text_by_xpath_one(
         '/root/RegionCode')
     self.add_value_to_sync_dict_list(  # regioncode:行政区码
         sync_dict_list, 'dsregionno', regioncode)
     self.add_value_to_sync_dict_list(sync_dict_list, 'busitype', 'shp')
     self.add_value_to_sync_dict_list(  # regionname:行政区
         sync_dict_list, 'dsregionname',
         dsometadataxml_xml.get_element_text_by_xpath_one(
             '/root/RegionName'))
     self.add_value_to_sync_dict_list(sync_dict_list, 'dstype', '1')
     return sync_dict_list
コード例 #5
0
    def get_sync_dict_list(self, insert_or_updata) -> list:
        """
                insert_or_updata 中 self.DB_True为insert,DB_False为updata
                本方法的写法为强规则,调用add_value_to_sync_dict_list配置
                第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置
        """
        sync_dict = self.get_sync_predefined_dict_list(insert_or_updata)
        object_table_id = self._obj_id
        object_table_data = self._dataset

        # 业务元数据
        dsometadataxml_bus = object_table_data.value_by_name(
            0, 'dsometadataxml_bus', '')
        xml = CXml()
        xml.load_xml(dsometadataxml_bus)

        # 下列字段名均待修改
        self.add_value_to_sync_dict_list(sync_dict, 'aprmwid', object_table_id)
        self.add_value_to_sync_dict_list(
            sync_dict, 'mosaiclinefilename',
            xml.get_element_text_by_xpath_one("//item[@name='ProductName']"))
        self.add_value_to_sync_dict_list(
            sync_dict, 'sensors',
            xml.get_element_text_by_xpath_one("//item[@name='SatelliteID']"))
        self.add_value_to_sync_dict_list(
            sync_dict, 'dsometadatajson',
            object_table_data.value_by_name(0, 'dsometadataxml_bus', ''))
        self.add_value_to_sync_dict_list(
            sync_dict, 'resolution',
            xml.get_element_text_by_xpath_one("//item[@name='Resolution']"))
        self.add_value_to_sync_dict_list(
            sync_dict, 'imagesource',
            xml.get_element_text_by_xpath_one(
                "//item[@name='GeographicName']"))
        # 备注
        self.add_value_to_sync_dict_list(
            sync_dict, 'remark',
            xml.get_element_text_by_xpath_one("//item[@name='Description']"))
        return sync_dict
コード例 #6
0
    def get_sync_dict_list(self, insert_or_updata) -> list:
        """
                insert_or_updata 中 self.DB_True为insert,DB_False为updata
                本方法的写法为强规则,调用add_value_to_sync_dict_list配置
                第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置
        """
        sync_dict = self.get_sync_predefined_dict_list(insert_or_updata)
        object_table_id = self._obj_id
        object_table_data = self._dataset

        # 业务元数据
        dsometadataxml_bus = object_table_data.value_by_name(0, 'dsometadataxml_bus', '')
        xml = CXml()
        xml.load_xml(dsometadataxml_bus)

        # 后处理流程介绍文档中的字段
        self.add_value_to_sync_dict_list(sync_dict, 'aprgdid', object_table_id)
        self.add_value_to_sync_dict_list(sync_dict, 'aprgwid', object_table_data.value_by_name(0, 'dsoparentobjid', ''))
        self.add_value_to_sync_dict_list(sync_dict, 'datatype', xml.get_element_text_by_xpath_one(
            '/Metadatafile/BasicDataContent/DataFormat'))
        self.add_value_to_sync_dict_list(sync_dict, 'panfilename',
                                         object_table_data.value_by_name(0, 'dsoobjectname', ''))
        self.add_value_to_sync_dict_list(sync_dict, 'pansensorname', xml.get_element_text_by_xpath_one(
            '//PBandSensorType'))
        # numeric
        self.add_value_to_sync_dict_list(sync_dict, 'panresolution', xml.get_element_text_by_xpath_one(
            '//SateResolution'))
        self.add_value_to_sync_dict_list(sync_dict, 'pantraceno', xml.get_element_text_by_xpath_one(
            '//PBandOribitCode'))
        # self.add_value_to_sync_dict_list(sync_dict, 'panimagedate', xml.get_element_text_by_xpath_one(''))
        self.add_value_to_sync_dict_list(sync_dict, 'msfilename',
                                         object_table_data.value_by_name(0, 'dsoobjectname', ''))
        self.add_value_to_sync_dict_list(sync_dict, 'satename',
                                         xml.get_element_text_by_xpath_one('//SateName'))
        # int4
        self.add_value_to_sync_dict_list(sync_dict, 'mssensorname', xml.get_element_text_by_xpath_one(
            '//MultiBandSensorType'))
        self.add_value_to_sync_dict_list(sync_dict, 'msresolution', xml.get_element_text_by_xpath_one(
            '//MultiBandResolution'))
        self.add_value_to_sync_dict_list(sync_dict, 'mstraceno', xml.get_element_text_by_xpath_one(
            '//MultiBandOrbitCode'))
        # self.add_value_to_sync_dict_list(sync_dict, 'msimagedate', xml.get_element_text_by_xpath_one(''))
        self.add_value_to_sync_dict_list(sync_dict, 'bandcount', xml.get_element_text_by_xpath_one(
            '//MultiBandNum'))
        self.add_value_to_sync_dict_list(sync_dict, 'bandname', xml.get_element_text_by_xpath_one(
            '//MultiBandName'))
        # self.add_value_to_sync_dict_list(sync_dict, 'bandide', xml.get_element_text_by_xpath_one(''))
        # int4
        self.add_value_to_sync_dict_list(sync_dict, 'zoneno', xml.get_element_text_by_xpath_one(
            '/Metadatafile/BasicDataContent/MathFoundation/GaussKrugerZoneNo'))
        # self.add_value_to_sync_dict_list(sync_dict, 'sensor', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'sensorscode', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'cloudpercent', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'istile', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'tileindex', xml.get_element_text_by_xpath_one(''))
        self.add_value_to_sync_dict_list(sync_dict, 'metafilename', xml.get_element_text_by_xpath_one(
            '/Metadatafile/BasicDataContent/MetaDataFileName'))
        self.add_value_to_sync_dict_list(sync_dict, 'dsometadatajson',
                                         object_table_data.value_by_name(0, 'dsometadataxml_bus', ''))
        # 数据量
        self.add_value_to_sync_dict_list(sync_dict, 'datacount', 1)
        # 密级
        self.add_value_to_sync_dict_list(sync_dict, 'secrecylevel',
                                         xml.get_element_text_by_xpath_one(
                                             '/Metadatafile/BasicDataContent/ConfidentialLevel'))
        # 行政区码
        # self.add_value_to_sync_dict_list(sync_dict, 'regioncode',xml.get_element_text_by_xpath_one()
        # 行政区
        # self.add_value_to_sync_dict_list(sync_dict, 'regionname',xml.get_element_text_by_xpath_one()
        # 产品时间
        # self.add_value_to_sync_dict_list(sync_dict, 'producetime', xml.get_element_text_by_xpath_one(''))
        # 分辨率
        self.add_value_to_sync_dict_list(sync_dict, 'resolution', xml.get_element_text_by_xpath_one(
            '/Metadatafile/BasicDataContent/GroundResolution'))
        # 色彩模式
        self.add_value_to_sync_dict_list(sync_dict, 'colormodel', xml.get_element_text_by_xpath_one(
            '/Metadatafile/BasicDataContent/ImgColorModel'))
        # 像素位数
        self.add_value_to_sync_dict_list(sync_dict, 'piexldepth',
                                         xml.get_element_text_by_xpath_one('/Metadatafile/BasicDataContent/PixelBits'))
        # 比例尺分母
        # self.add_value_to_sync_dict_list(sync_dict, 'scale', xml.get_element_text_by_xpath_one(''))
        # 主要星源
        self.add_value_to_sync_dict_list(sync_dict, 'mainrssource',
                                         xml.get_element_text_by_xpath_one('//SateName'))
        # 备注
        # self.add_value_to_sync_dict_list(sync_dict, 'remark', xml.get_element_text_by_xpath_one(''))

        return sync_dict
コード例 #7
0
    def get_sync_dict_list(self, insert_or_updata) -> list:
        """
                insert_or_updata 中 self.DB_True为insert,DB_False为updata
                本方法的写法为强规则,调用add_value_to_sync_dict_list配置
                第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置
        """
        sync_dict = self.get_sync_predefined_dict_list(insert_or_updata)
        object_table_id = self._obj_id
        object_table_data = self._dataset

        # 业务元数据
        dsometadataxml_bus = object_table_data.value_by_name(
            0, 'dsometadataxml_bus', '')
        xml = CXml()
        xml.load_xml(dsometadataxml_bus)

        # 后处理流程介文档中的字段
        self.add_value_to_sync_dict_list(sync_dict, 'aprmwid', object_table_id)
        # sync_dict['datatype'] = "'{0}'".format()
        # sync_dict['projinfo'] = "'{0}'".format()
        # sync_dict['zonetype'] = "'{0}'".format()
        # sync_dict['centerline'] = "'{0}'".format()
        # int4
        # sync_dict['zoneno'] = "'{0}'".format()
        # sync_dict['coordinateunit'] = "'{0}'".format()
        # sync_dict['demname'] = "'{0}'".format()
        # sync_dict['demstandard'] = "'{0}'".format()
        self.add_value_to_sync_dict_list(
            sync_dict, 'mosaiclinefilename',
            object_table_data.value_by_name(0, 'dsoobjectname', ''))
        # sync_dict['sensors'] = "'{0}'".format()
        # sync_dict['iscuted'] = "'{0}'".format()
        # numeric
        # sync_dict['productsize'] = "'{0}'".format()
        self.add_value_to_sync_dict_list(
            sync_dict, 'imagesource',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/ImageSource'))
        self.add_value_to_sync_dict_list(
            sync_dict, 'dsometadatajson',
            object_table_data.value_by_name(0, 'dsometadataxml_bus', ''))
        # 数据量
        self.add_value_to_sync_dict_list(sync_dict, 'datacount', 1)
        # 密级
        # sync_dict['secrecylevel'] = "''"
        # 行政区码
        # sync_dict['regioncode'] = "''"
        # 行政区
        # sync_dict['regionname'] = "''"
        # 产品时间
        # sync_dict['producetime'] = "'{0}'".format(
        #    xml.get_element_text_by_xpath_one('/Metadatafile/BasicDataContent/ProduceDate'))
        # 分辨率
        self.add_value_to_sync_dict_list(
            sync_dict, 'resolution',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/Resolution'))
        # 色彩模式
        # self.add_value_to_sync_dict_list(sync_dict, 'colormodel',xml.get_element_text_by_xpath_one(''))
        # 像素位数
        # self.add_value_to_sync_dict_list(sync_dict, 'piexldepth',xml.get_element_text_by_xpath_one(''))
        # 比例尺分母
        # self.add_value_to_sync_dict_list(sync_dict, 'scale',xml.get_element_text_by_xpath_one(''))
        # 主要星源
        # self.add_value_to_sync_dict_list(sync_dict, 'mainrssource', xml.get_element_text_by_xpath_one(''))
        # 备注
        self.add_value_to_sync_dict_list(
            sync_dict, 'remark',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/Description'))
        return sync_dict
コード例 #8
0
    def get_sync_dict_list(self, insert_or_updata) -> list:
        """
                insert_or_updata 中 self.DB_True为insert,DB_False为updata
                本方法的写法为强规则,调用add_value_to_sync_dict_list配置
                第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置
        """
        sync_dict = self.get_sync_predefined_dict_list(insert_or_updata)
        object_table_id = self._obj_id
        object_table_data = self._dataset

        # 业务元数据
        dsometadataxml_bus = object_table_data.value_by_name(
            0, 'dsometadataxml_bus', '')
        xml = CXml()
        xml.load_xml(dsometadataxml_bus)

        # 后处理流程介绍文档中的字段
        self.add_value_to_sync_dict_list(sync_dict, 'aprtdid', object_table_id)
        self.add_value_to_sync_dict_list(
            sync_dict, 'aprtwid',
            object_table_data.value_by_name(0, 'dsoparentobjid', ''))
        self.add_value_to_sync_dict_list(
            sync_dict, 'datatype',
            xml.get_element_text_by_xpath_one(
                '/root/property[@tablename="mbii"]/item[@name="sjgs"]'))
        self.add_value_to_sync_dict_list(
            sync_dict, 'demname',
            xml.get_element_text_by_xpath_one(
                '/root/property[@tablename="mbii"]/item[@name="gcjz"]'))
        self.add_value_to_sync_dict_list(
            sync_dict, 'metafilename',
            xml.get_element_text_by_xpath_one(
                '/root/property[@tablename="mbii"]/item[@name="ysjwjm"]'))
        # numeric
        self.add_value_to_sync_dict_list(
            sync_dict, 'isfull',
            xml.get_element_text_by_xpath_one(
                '/root/property[@tablename="mbii"]/item[@name="mfqk"]'))
        self.add_value_to_sync_dict_list(
            sync_dict, 'ellipsoidtype',
            xml.get_element_text_by_xpath_one(
                '/root/property[@tablename="mbii"]/item[@name="tqlx"]'))
        self.add_value_to_sync_dict_list(
            sync_dict, 'projinfo',
            xml.get_element_text_by_xpath_one(
                '/root/property[@tablename="mbii"]/item[@name="dtty"]'))
        self.add_value_to_sync_dict_list(
            sync_dict, 'centerline',
            xml.get_element_text_by_xpath_one(
                '/root/property[@tablename="mbii"]/item[@name="zyjx"]'))
        self.add_value_to_sync_dict_list(
            sync_dict, 'zonetype',
            xml.get_element_text_by_xpath_one(
                '/root/property[@tablename="mbii"]/item[@name="fdfs"]'))
        # int4
        self.add_value_to_sync_dict_list(
            sync_dict, 'zoneno',
            CUtils().to_integer(
                xml.get_element_text_by_xpath_one(
                    '/root/property[@tablename="mbii"]/item[@name="gsklgtydh"]'
                )))
        self.add_value_to_sync_dict_list(
            sync_dict, 'coordinateunit',
            xml.get_element_text_by_xpath_one(
                '/root/property[@tablename="mbii"]/item[@name="zbdw"]'))
        self.add_value_to_sync_dict_list(
            sync_dict, 'dsometadatajson',
            object_table_data.value_by_name(0, 'dsometadataxml_bus', ''))
        self.add_value_to_sync_dict_list(
            sync_dict, 'demstandard',
            xml.get_element_text_by_xpath_one(
                '/root/property[@tablename="mbii"]/item[@name="gcjz"]'))
        self.add_value_to_sync_dict_list(
            sync_dict, 'createrorganize',
            xml.get_element_text_by_xpath_one(
                '/root/property[@tablename="mbii"]/item[@name="sjscdw"]'))
        # self.add_value_to_sync_dict_list(sync_dict, 'bandcount', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'bandname', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'cloudpercent', xml.get_element_text_by_xpath_one(''))
        # 数据量
        self.add_value_to_sync_dict_list(
            sync_dict, 'datacount',
            CUtils.to_integer(
                xml.get_element_text_by_xpath_one(
                    '/root/property[@tablename="mbii"]/item[@name="sjl"]')))
        # 密级
        self.add_value_to_sync_dict_list(
            sync_dict, 'secrecylevel',
            xml.get_element_text_by_xpath_one(
                '/root/property[@tablename="mbii"]/item[@name="mj"]'))
        # 行政区码
        self.add_value_to_sync_dict_list(
            sync_dict, 'regioncode',
            xml.get_element_text_by_xpath_one(
                '/root/property[@tablename="mbii"]/item[@name="xzqdm"]'))
        # 行政区
        self.add_value_to_sync_dict_list(
            sync_dict, 'regionname',
            xml.get_element_text_by_xpath_one(
                '/root/property[@tablename="mbii"]/item[@name="xmc"]'))
        # 产品时间
        # self.add_value_to_sync_dict_list(sync_dict, 'producetime', xml.get_element_text_by_xpath_one(''))
        # 分辨率 待提取
        # self.add_value_to_sync_dict_list(sync_dict, 'resolution', xml.get_element_text_by_xpath_one(''), self.DB_True)
        # 色彩模式
        # self.add_value_to_sync_dict_list(sync_dict, 'colormodel', xml.get_element_text_by_xpath_one(''))
        # 像素位数
        # self.add_value_to_sync_dict_list(sync_dict, 'piexldepth', xml.get_element_text_by_xpath_one(''))
        # 比例尺分母
        # self.add_value_to_sync_dict_list(sync_dict, 'scale', xml.get_element_text_by_xpath_one(''))
        # 主要星源
        self.add_value_to_sync_dict_list(
            sync_dict, 'mainrssource',
            xml.get_element_text_by_xpath_one(
                '/root/property[@tablename="mpid"]/item[@name="sjy"]'))
        # 备注
        # self.add_value_to_sync_dict_list(sync_dict, 'remark', xml.get_element_text_by_xpath_one(''))

        return sync_dict
コード例 #9
0
    def get_sync_dict_list(self, insert_or_updata) -> list:
        """
                insert_or_updata 中 self.DB_True为insert,DB_False为updata
                本方法的写法为强规则,调用add_value_to_sync_dict_list配置
                第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置
        """
        sync_dict = self.get_sync_predefined_dict_list(insert_or_updata)
        object_table_id = self._obj_id
        object_table_data = self._dataset

        # 业务元数据
        dsometadataxml_bus = object_table_data.value_by_name(
            0, 'dsometadataxml_bus', '')
        xml = CXml()
        xml.load_xml(dsometadataxml_bus)

        # 后处理流程介绍文档中的字段
        self.add_value_to_sync_dict_list(sync_dict, 'aprgdid', object_table_id)
        # self.add_value_to_sync_dict_list(sync_dict, 'rowno', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'colno', xml.get_element_text_by_xpath_one(''))
        self.add_value_to_sync_dict_list(
            sync_dict, 'sfno',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/MapNo'))
        self.add_value_to_sync_dict_list(
            sync_dict, 'domname',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/ProductName'))
        # self.add_value_to_sync_dict_list(sync_dict, 'domscale',xml.get_element_text_by_xpath_one('')
        # self.add_value_to_sync_dict_list(sync_dict, 'imgyear', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'sensorscode', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'rescode', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'colorcode', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'tilecode', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'sepcode', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'extname', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'scalecode', xml.get_element_text_by_xpath_one(''))
        self.add_value_to_sync_dict_list(
            sync_dict, 'datatype',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/DataFormat'))
        # self.add_value_to_sync_dict_list(sync_dict, 'expandlength', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'panimagedate', xml.get_element_text_by_xpath_one(''))
        self.add_value_to_sync_dict_list(
            sync_dict, 'projinfo',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/Mathfoundation/MapProjection'))
        self.add_value_to_sync_dict_list(
            sync_dict, 'zonetype',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/Mathfoundation/ZoneDivisionMode'
            ))
        self.add_value_to_sync_dict_list(
            sync_dict, 'centerline',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/Mathfoundation/CentralMederian'
            ))
        self.add_value_to_sync_dict_list(
            sync_dict, 'coordinateunit',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/Mathfoundation/CoordinationUnit'
            ))
        self.add_value_to_sync_dict_list(
            sync_dict, 'createrorgnize',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/Producer'))
        self.add_value_to_sync_dict_list(
            sync_dict, 'publishorgnize',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/Publisher'))
        self.add_value_to_sync_dict_list(
            sync_dict, 'submitorganize',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/Owner'))
        # int4
        self.add_value_to_sync_dict_list(
            sync_dict, 'zoneno',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/Mathfoundation/GaussKrugerZoneNo'
            ))
        self.add_value_to_sync_dict_list(
            sync_dict, 'demstandard',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/Mathfoundation/HeightDatum'))
        self.add_value_to_sync_dict_list(
            sync_dict, 'demname',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/Mathfoundation/HeightSystem'))
        # self.add_value_to_sync_dict_list(sync_dict, 'sensor', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'sensorscode', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'cloudpercent', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'istile', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'tileindex', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'isfull', xml.get_element_text_by_xpath_one(''))
        # self.add_value_to_sync_dict_list(sync_dict, 'imagesource', xml.get_element_text_by_xpath_one(''))
        self.add_value_to_sync_dict_list(
            sync_dict, 'metafilename',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/MetaDataFileName'))
        self.add_value_to_sync_dict_list(
            sync_dict, 'dsometadatajson',
            object_table_data.value_by_name(0, 'dsometadataxml_bus', ''))
        # 数据量
        self.add_value_to_sync_dict_list(sync_dict, 'datacount', 1)
        # 密级
        self.add_value_to_sync_dict_list(
            sync_dict, 'secrecylevel',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/ConfidentialLevel'))
        # 行政区码
        # self.add_value_to_sync_dict_list(sync_dict, 'regioncode',xml.get_element_text_by_xpath_one()
        # 行政区
        # self.add_value_to_sync_dict_list(sync_dict, 'regionname',xml.get_element_text_by_xpath_one()
        # 产品时间
        # self.add_value_to_sync_dict_list(sync_dict, 'producetime', xml.get_element_text_by_xpath_one(''))
        # 分辨率
        self.add_value_to_sync_dict_list(
            sync_dict, 'resolution',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/GroundResolution'))
        # 色彩模式
        self.add_value_to_sync_dict_list(
            sync_dict, 'colormodel',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/ImgColorModel'))
        # 像素位数
        self.add_value_to_sync_dict_list(
            sync_dict, 'piexldepth',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/PixelBits'))
        # 比例尺分母
        # self.add_value_to_sync_dict_list(sync_dict, 'scale', xml.get_element_text_by_xpath_one(''))
        # 主要星源
        self.add_value_to_sync_dict_list(
            sync_dict, 'mainrssource',
            xml.get_element_text_by_xpath_one('//SateName'))
        # 备注
        # self.add_value_to_sync_dict_list(sync_dict, 'remark', xml.get_element_text_by_xpath_one(''))

        return sync_dict
コード例 #10
0
    def get_sync_predefined_dict_list(self, insert_or_updata) -> list:
        """
        insert_or_updata 指明配置的是更新还是插入,-1时为插入,0为更新
        本方法的写法为强规则,调用add_value_to_sync_dict_list配置
        第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置
        datacount:数据数量 secrecylevel:密级 colormodel:色彩模式
        piexldepth:像素位数
        """
        sync_dict_list = list()
        object_table_id = self._obj_id
        object_table_data = self._dataset
        self.add_value_to_sync_dict_list(sync_dict_list, 'aprid',
                                         object_table_id)

        dsometadataxml = object_table_data.value_by_name(
            0, 'dsometadataxml_bus', '')
        dsometadataxml_xml = CXml()
        dsometadataxml_xml.load_xml(dsometadataxml)  # 加载查询出来的xml
        self.add_value_to_sync_dict_list(  # 通过本方法配置需要的字典集合
            sync_dict_list,
            'productname',  # 配置字段名
            dsometadataxml_xml.get_element_text_by_xpath_one(
                '/root/DSName'))  # 配置字段值
        self.add_value_to_sync_dict_list(sync_dict_list, 'producttype',
                                         self._obj_type_code)
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'dsodatatype',
            object_table_data.value_by_name(0, 'dsodatatype', ''))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'begdate',
            CUtils.to_day_format(
                dsometadataxml_xml.get_element_text_by_xpath_one(
                    '/root/BeginDate'), ''))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'enddate',
            CUtils.to_day_format(
                dsometadataxml_xml.get_element_text_by_xpath_one(
                    '/root/EndDate'), ''))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'imagedate',
            CUtils.to_day_format(
                dsometadataxml_xml.get_element_text_by_xpath_one('/root/Date'),
                ''))
        # datacount:数据数量
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'datacount', '''
            (select count(dsoid) FROM dm2_storage_object WHERE dsoparentobjid='{0}')
            '''.format(object_table_id), self.DataValueType_SQL)
        # secrecylevel:密级
        regioncode = dsometadataxml_xml.get_element_text_by_xpath_one(
            '/root/RegionCode')
        self.add_value_to_sync_dict_list(  # regioncode:行政区码
            sync_dict_list, 'regioncode', regioncode)
        self.add_value_to_sync_dict_list(  # regionname:行政区
            sync_dict_list, 'regionname',
            dsometadataxml_xml.get_element_text_by_xpath_one(
                '/root/RegionName'))

        self.add_value_to_sync_dict_list(
            sync_dict_list, 'centerx', '''
            (select centerx::decimal(8,2) from ro_global_dim_space where gdscode='{0}')
            '''.format(regioncode), self.DataValueType_SQL)
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'centery', '''
            (select centery::decimal(8,2) from ro_global_dim_space where gdscode='{0}')
            '''.format(regioncode), self.DataValueType_SQL)
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'geomwkt', "st_astext("
            "(select gdsgeometry from ro_global_dim_space where gdscode='{0}')"
            ")".format(regioncode), self.DataValueType_SQL)
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'geomobj',
            "(select gdsgeometry from ro_global_dim_space where gdscode='{0}')"
            .format(regioncode), self.DataValueType_SQL)

        self.add_value_to_sync_dict_list(
            sync_dict_list, 'browserimg',
            object_table_data.value_by_name(0, 'dso_browser', ''))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'thumbimg',
            object_table_data.value_by_name(0, 'dso_thumb', ''))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'producetime',
            CUtils.to_day_format(
                dsometadataxml_xml.get_element_text_by_xpath_one('/root/Date'),
                ''))
        self.add_value_to_sync_dict_list(  # resolution:分辨率
            sync_dict_list, 'resolution',
            dsometadataxml_xml.get_element_text_by_xpath_one(
                '/root/Resolution'))

        self.add_value_to_sync_dict_list(
            sync_dict_list, 'imgsize',
            "(select round((sum(dodfilesize)/1048576),2) from dm2_storage_obj_detail "
            "where dodobjectid in "
            "(select dsoid FROM dm2_storage_object WHERE dsoparentobjid='{0}')"
            ")".format(object_table_id), self.DataValueType_SQL)
        # colormodel:交插件处理
        # piexldepth:交插件处理
        if insert_or_updata:
            self.add_value_to_sync_dict_list(sync_dict_list, 'isdel', '0')
            now_time = CUtils.any_2_str(
                datetime.datetime.now().strftime('%F %T'))
            self.add_value_to_sync_dict_list(sync_dict_list, 'addtime',
                                             now_time)
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'extent',
            "(select gds_geo_bbox from ro_global_dim_space where gdscode='{0}')"
            .format(regioncode), self.DataValueType_SQL)
        # self.add_value_to_sync_dict_list(
        #     sync_dict_list, 'proj', object_table_data.value_by_name(0, 'dso_prj_wkt', ''), self.DB_True)
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'remark',
            dsometadataxml_xml.get_element_text_by_xpath_one('/root/Remark'))
        # ispublishservice:暂时为空
        self.add_value_to_sync_dict_list(sync_dict_list, 'queryable', '1')
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'mainrssource',
            dsometadataxml_xml.get_element_text_by_xpath_one(
                '/root/MajorSource'))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'scale',
            dsometadataxml_xml.get_element_text_by_xpath_one(
                '/root/ScaleDenominator'))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'dsdid',
            object_table_data.value_by_name(0, 'query_dataset_directory_id',
                                            ''))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'imagedatetag',
            self.transform_time_to_imagedatetag(
                dsometadataxml_xml.get_element_text_by_xpath_one(
                    '/root/Date')))

        return sync_dict_list
コード例 #11
0
    def get_sync_dict_list(self, insert_or_updata) -> list:
        """
                insert_or_updata 中 self.DB_True为insert,DB_False为updata
                本方法的写法为强规则,调用add_value_to_sync_dict_list配置
                第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置
        """
        sync_dict = self.get_sync_predefined_dict_list(insert_or_updata)
        object_table_id = self._obj_id
        object_table_data = self._dataset

        # 业务元数据
        dsometadataxml_bus = object_table_data.value_by_name(
            0, 'dsometadataxml_bus', '')
        xml = CXml()
        xml.load_xml(dsometadataxml_bus)

        # 后处理流程介绍文档中的字段
        self.add_value_to_sync_dict_list(sync_dict, 'aprodid', object_table_id)
        self.add_value_to_sync_dict_list(
            sync_dict, 'aprowid',
            object_table_data.value_by_name(0, 'dsoparentobjid', ''))
        self.add_value_to_sync_dict_list(
            sync_dict, 'sataname',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/SatelliteID'))
        dsoobjectname = object_table_data.value_by_name(0, 'dsoobjectname', '')
        resolution = xml.get_element_text_by_xpath_one(
            '/Metadatafile/BasicDataContent/Resolution')
        if 'pan' in CUtils.text_to_lower(dsoobjectname):

            self.add_value_to_sync_dict_list(sync_dict, 'panfilename',
                                             dsoobjectname)

            self.add_value_to_sync_dict_list(sync_dict, 'panresolution',
                                             resolution)

            self.add_value_to_sync_dict_list(
                sync_dict, 'panimagedate',
                xml.get_element_text_by_xpath_one(
                    '/Metadatafile/BasicDataContent/ReceiveTime'))

            self.add_value_to_sync_dict_list(sync_dict, 'fusefilename',
                                             dsoobjectname)
        else:

            self.add_value_to_sync_dict_list(sync_dict, 'msfilename',
                                             dsoobjectname)
            # sync_dict['mssensorname'] = "''"

            self.add_value_to_sync_dict_list(sync_dict, 'msresolution',
                                             resolution)
            # sync_dict['mstraceno'] = "''"

            self.add_value_to_sync_dict_list(
                sync_dict, 'msimagedate',
                xml.get_element_text_by_xpath_one(
                    '/Metadatafile/BasicDataContent/ReceiveTime'))
            # sync_dict['fusefilename'] = "''"

        self.add_value_to_sync_dict_list(
            sync_dict, 'dsometadatajson',
            object_table_data.value_by_name(0, 'dsometadataxml_bus', ''))
        # sync_dict['bandcount'] = "''"
        # sync_dict['bandname'] = "''"
        # sync_dict['cloudpercent'] = "''"

        # 数据量
        self.add_value_to_sync_dict_list(sync_dict, 'datacount', 1)
        # 密级
        # sync_dict['secrecylevel'] = "''"
        # 行政区码
        # sync_dict['regioncode'] = "''"
        # 行政区
        # sync_dict['regionname'] = "''"
        # 产品时间
        # sync_dict['producetime'] = "'{0}'".format(
        #    xml.get_element_text_by_xpath_one('/Metadatafile/BasicDataContent/ProduceDate'))
        # resolution
        self.add_value_to_sync_dict_list(
            sync_dict, 'resolution',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/Resolution'))
        # 色彩模式
        # sync_dict['colormodel'] = "''"
        # 像素位数
        # sync_dict['piexldepth'] = "''"
        # 比例尺分母
        # sync_dict['scale'] = "''"
        # 主要星源
        self.add_value_to_sync_dict_list(
            sync_dict, 'mainrssource',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/SatelliteID'))
        self.add_value_to_sync_dict_list(
            sync_dict, 'remark',
            xml.get_element_text_by_xpath_one(
                '/Metadatafile/BasicDataContent/Description'))

        return sync_dict
コード例 #12
0
    def get_sync_mdb_dict_list(self, insert_or_updata) -> list:
        """
                insert_or_updata 中 self.DB_True为insert,DB_False为updata
                本方法的写法为强规则,调用add_value_to_sync_dict_list配置
                第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置
                """
        object_id = self._obj_id
        object_name = self._obj_name
        dsometadataxml_bus = self._dataset.value_by_name(
            0, 'dsometadataxml_bus', '')
        dso_time = self._dataset.value_by_name(0, 'dso_time', '')
        dso_time_json = CJson()  # 时间数据json
        dso_time_json.load_obj(dso_time)
        metadataxml_bus_xml = CXml()  # 业务元数据xml
        metadataxml_bus_xml.load_xml(dsometadataxml_bus)

        sync_dict_list = self.get_sync_predefined_dict_list(insert_or_updata)
        self.add_value_to_sync_dict_list(sync_dict_list, 'aprsdid', object_id)
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'aprswid',
            self._dataset.value_by_name(0, 'dsoparentobjid', ''))
        # sync_dict['fname']   #为空
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'fno',
            metadataxml_bus_xml.get_element_text_by_xpath_one(
                "//item[@name='th']"))
        '''
                object_name[0:1]    100万图幅行号为字母
                object_name[1:3]    100万图幅列号为数字
                object_name[3:4]    比例尺代码为字母
                object_name[4:7]    图幅行号为数字
                object_name[7:10]   图幅列号为数字
                '''
        if CUtils.text_is_alpha(object_name[0:1]):
            self.add_value_to_sync_dict_list(sync_dict_list, 'hrowno',
                                             object_name[0:1])
            self.add_value_to_sync_dict_list(sync_dict_list, 'hcolno',
                                             object_name[1:3])
            self.add_value_to_sync_dict_list(sync_dict_list, 'scalecode',
                                             object_name[3:4])
            self.add_value_to_sync_dict_list(sync_dict_list, 'rowno',
                                             object_name[4:7])
            self.add_value_to_sync_dict_list(sync_dict_list, 'colno',
                                             object_name[7:10])
        # sync_dict['expandextent']  # 为空
        # sync_dict['pupdatedate']  # 为空
        # sync_dict['pversion']  # 为空
        # sync_dict['publishdate']  # 为空
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'dataformat',
            metadataxml_bus_xml.get_element_text_by_xpath_one(
                "//item[@name='sjgs']"))
        # sync_dict['maindatasource']  # 为空
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'dsometadatajson',
            self._dataset.value_by_name(0, 'dsometadataxml_bus', ''))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'createrorganize',
            metadataxml_bus_xml.get_element_text_by_xpath_one(
                "//item[@name='sjscdwm']"))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'submitorganize',
            metadataxml_bus_xml.get_element_text_by_xpath_one(
                "//item[@name='sjbqdwm']"))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'copyrightorgnize',
            metadataxml_bus_xml.get_element_text_by_xpath_one(
                "//item[@name='sjcbdwm']"))
        # sync_dict['supplyorganize']  # 为空
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'colormodel',
            metadataxml_bus_xml.get_element_text_by_xpath_one(
                "//item[@name='yxscms']"))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'piexldepth',
            metadataxml_bus_xml.get_element_text_by_xpath_one(
                "//item[@name='xsws']"))
        # sync_dict['scale']  # 为空
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'mainrssource',
            metadataxml_bus_xml.get_element_text_by_xpath_one(
                "//item[@name='wxmc']"))
        # 插件处理字段
        self.add_value_to_sync_dict_list(sync_dict_list, 'datacount', 1)
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'secrecylevel',
            metadataxml_bus_xml.get_element_text_by_xpath_one(
                "//item[@name='mj']"))
        # sync_dict['regioncode']  # 为空
        # sync_dict['regionname']  # 为空
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'resolution',
            metadataxml_bus_xml.get_element_text_by_xpath_one(
                "//item[@name='dmfbl']"))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'imagedate',
            CUtils.to_day_format(dso_time_json.xpath_one('time', ''),
                                 dso_time_json.xpath_one('time', '')))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'begdate',
            CUtils.to_day_format(dso_time_json.xpath_one('start_time', ''),
                                 dso_time_json.xpath_one('start_time', '')))
        self.add_value_to_sync_dict_list(
            sync_dict_list, 'enddate',
            CUtils.to_day_format(dso_time_json.xpath_one('end_time', ''),
                                 dso_time_json.xpath_one('end_time', '')))
        return sync_dict_list