コード例 #1
0
    def setMDProperties(self, mdPath):
        args = []
        mdName = os.path.basename(mdPath).upper()
        args.append(mdPath)
        args.append(self.getInternalPropValue(mdName, 'rows_maximum_imagesize'))
        args.append(self.getInternalPropValue(mdName, 'columns_maximum_imagesize'))
        args.append(self.getInternalPropValue(mdName, 'allowed_compressions'))
        args.append(self.getInternalPropValue(mdName, 'default_compression_type'))
        args.append(self.getInternalPropValue(mdName, 'JPEG_quality'))
        args.append(self.getInternalPropValue(mdName, 'LERC_Tolerance'))
        args.append(self.getInternalPropValue(mdName, 'resampling_type'))
        args.append(self.getInternalPropValue(mdName, 'clip_to_footprints'))
        args.append(self.getInternalPropValue(mdName, 'footprints_may_contain_nodata'))
        args.append(self.getInternalPropValue(mdName, 'clip_to_boundary'))
        args.append(self.getInternalPropValue(mdName, 'color_correction'))
        args.append(self.getInternalPropValue(mdName, 'allowed_mensuration_capabilities'))
        args.append(self.getInternalPropValue(mdName, 'default_mensuration_capabilities'))
        args.append(self.getInternalPropValue(mdName, 'allowed_mosaic_methods'))
        args.append(self.getInternalPropValue(mdName, 'default_mosaic_method'))
        args.append(self.getInternalPropValue(mdName, 'order_field'))
        args.append(self.getInternalPropValue(mdName, 'order_base'))
        args.append(self.getInternalPropValue(mdName, 'sorting_order'))
        args.append(self.getInternalPropValue(mdName, 'mosaic_operator'))
        args.append(self.getInternalPropValue(mdName, 'blend_width'))
        args.append(self.getInternalPropValue(mdName, 'view_point_x'))
        args.append(self.getInternalPropValue(mdName, 'view_point_y'))
        args.append(self.getInternalPropValue(mdName, 'max_num_per_mosaic'))
        args.append(self.getInternalPropValue(mdName, 'cell_size_tolerance'))
        args.append(self.getInternalPropValue(mdName, 'cell_size'))
        args.append(self.getInternalPropValue(mdName, 'metadata_level'))
        args.append(self.getInternalPropValue(mdName, 'transmission_fields'))
        args.append(self.getInternalPropValue(mdName, 'use_time'))
        args.append(self.getInternalPropValue(mdName, 'start_time_field'))
        args.append(self.getInternalPropValue(mdName, 'end_time_field'))
        args.append(self.getInternalPropValue(mdName, 'time_format'))
        args.append(self.getInternalPropValue(mdName, 'geographic_transform'))
        args.append(self.getInternalPropValue(mdName, 'max_num_of_download_items'))
        args.append(self.getInternalPropValue(mdName, 'max_num_of_records_returned'))
        args.append(self.getInternalPropValue(mdName, 'data_source_type'))
        args.append(self.getInternalPropValue(mdName, 'minimum_pixel_contribution'))
        args.append(self.getInternalPropValue(mdName, 'processing_templates'))
        args.append(self.getInternalPropValue(mdName, 'default_processing_template'))
        args.append(self.getInternalPropValue(mdName, 'time_interval'))
        args.append(self.getInternalPropValue(mdName, 'time_interval_units'))

        setProperties = Base.DynaInvoke('arcpy.SetMosaicDatasetProperties_management', args, self.__setpropertiesCallback, self._message)
        if (setProperties.init() == False):
            return False
        return setProperties.invoke()
コード例 #2
0
    def AddRasters(self):
        self.log("Adding rasters:", self.const_general_text)
        ArcGISVersion = self.m_base.getDesktopVersion()
        enabledARTEdit = True
        if (len(ArcGISVersion) >= 2):   # no editing of (ART) if ArcGIS version is >= 10.4
            if (ArcGISVersion[0] >= 10 and
                    ArcGISVersion[1] >= 4):
                enabledARTEdit = False
        for sourceID in self.sMdNameList:
            MDName = self.sMdNameList[sourceID]['md']
            fullPath = os.path.join(self.m_base.m_geoPath, MDName)
            if (arcpy.Exists(fullPath) == False):
                self.log("Path doesn't exist: %s" % (fullPath), self.const_critical_text)
                return False
            self.m_base.m_last_AT_ObjectID = self.getLastObjectID(self.m_base.m_geoPath, MDName)
            for hshAddRaster in self.sMdNameList[sourceID]['addraster']:
                try:
                    self.log("\tUsing mosaic dataset/ID:" + MDName + '/' +
                             hshAddRaster['dataset_id'], self.const_general_text)
                    rasterType = 'Raster Dataset'
                    name_toupper = MDName.upper()
                    if ('art' in hshAddRaster.keys()):
                        rasterType = hshAddRaster['art']
                        self.log("\tUsing ART for " + name_toupper + ': ' + rasterType, self.const_general_text)
                        if (self.m_base.m_art_apply_changes == True and
                                enabledARTEdit):
                            art_doc = minidom.parse(rasterType)
                            if (self.m_base.updateART(art_doc, self.m_base.m_art_ws, self.m_base.m_art_ds) == True):
                                self.log("\tUpdating ART (Workspace, RasterDataset) values with (%s, %s) respectively." % (self.m_base.m_art_ws, self.m_base.m_art_ds), self.const_general_text)
                                c = open(rasterType, "w")
                                c.write(art_doc.toxml())
                                c.close()
                    set_filter = ''
                    if ('filter' in hshAddRaster.keys()):
                        set_filter = hshAddRaster['filter']
                        if (set_filter == '*'):
                            set_filter = ''
#                           HK: to hard-code set_filter to exclude RGB: '*_V*.tif'
                    set_spatial_reference = ''
                    if ('spatial_reference' in hshAddRaster.keys()):
                        set_spatial_reference = hshAddRaster['spatial_reference']
                    objID = self.getLastObjectID(self.m_base.m_geoPath, MDName)
                    self.sMdNameList[sourceID]['pre_AddRasters_record_count'] = objID
                    self.sMdNameList[sourceID]['Dataset_ID'] = hshAddRaster['dataset_id']
                    self.log('Adding items..')
                    args = []
                    args.append(fullPath)
                    args.append(rasterType)
                    args.append(self.GetValue(hshAddRaster, 'data_path'))
                    args.append(self.GetValue(hshAddRaster, 'update_cellsize_ranges'))
                    args.append(self.GetValue(hshAddRaster, 'update_boundary'))
                    args.append(self.GetValue(hshAddRaster, 'update_overviews'))
                    args.append(self.GetValue(hshAddRaster, 'maximum_pyramid_levels'))
                    args.append(self.GetValue(hshAddRaster, 'maximum_cell_size'))
                    args.append(self.GetValue(hshAddRaster, 'minimum_dimension'))
                    args.append(self.GetValue(hshAddRaster, 'spatial_reference'))
                    args.append(set_filter)
                    args.append(self.GetValue(hshAddRaster, 'sub_folder'))
                    args.append(self.GetValue(hshAddRaster, 'duplicate_items_action'))
                    args.append(self.GetValue(hshAddRaster, 'build_pyramids'))
                    args.append(self.GetValue(hshAddRaster, 'calculate_statistics'))
                    args.append(self.GetValue(hshAddRaster, 'build_thumbnails'))
                    args.append(self.GetValue(hshAddRaster, 'operation_description'))
                    args.append(self.GetValue(hshAddRaster, 'force_spatial_reference'))
                    args.append(self.GetValue(hshAddRaster, 'estimate_statistics'))
                    args.append(self.GetValue(hshAddRaster, 'aux_inputs'))
                    args.append(self.GetValue(hshAddRaster, 'enable_pixel_cache'))
                    args.append(self.GetValue(hshAddRaster, 'cache_location'))
                    if (self.m_base.m_art_apply_changes and
                            not enabledARTEdit):
                        args[len(args) - 1] += ';DEM {}'.format(os.path.join(self.m_base.m_art_ws, self.m_base.m_art_ds))
                    AddRaster = Base.DynaInvoke('arcpy.AddRastersToMosaicDataset_management', args, None, self.m_base.m_log.Message)
                    if (AddRaster.init() == False):
                        return False
                    AddRaster.invoke()
                    newObjID = self.getLastObjectID(self.m_base.m_geoPath, MDName)
                    if (newObjID <= objID):
                        self.log('No new mosaic dataset item was added for Dataset ID (%s)' % (hshAddRaster['dataset_id']))
                        continue
                    for callback_fn in self.callback_functions:
                        if (callback_fn(self.m_base.m_geoPath, sourceID, self.sMdNameList[sourceID]) == False):
                            return False
                except Exception as e:
                    self.log(str(e), self.const_warning_text)
                    self.log(arcpy.GetMessages(), self.const_warning_text)
                    Warning = True
            newObjID = self.getLastObjectID(self.m_base.m_geoPath, MDName)
            if (newObjID <= self.m_base.m_last_AT_ObjectID):
                self.log('No new mosaic dataset items added to dataset (%s). Verify the input data path/raster type is correct' % (MDName), self.const_critical_text)
                self.log(arcpy.GetMessages(), self.const_critical_text)
                return False
        return True