コード例 #1
0
ファイル: cache.py プロジェクト: agrc/caching-scripts
def update_data():
    logger.logMsg('Updating data')
    sgid_sde = r'{}SGID10.sde'.format(HNAS_DATA_FOLDER)
    hnas_data = HNAS_DATA_FOLDER
    sgid_fgdb = 'SGID10.gdb'
    cache_fgdb = 'UtahBaseMap-Data.gdb'
    local_data = r'C:\Cache\MapData\Temp'
    local_sgid = os.path.join(local_data, sgid_fgdb)
    local_cache = os.path.join(local_data, cache_fgdb)

    errors, changes = update.updateFGDBfromSDE(
        os.path.join(hnas_data, sgid_fgdb), sgid_sde)
    if len(errors) > 0:
        emailer.sendEmail(
            email_subject + ' Errors',
            'Data update schema changes: \n\n{}'.format('\n'.join(errors)))
        if raw_input('Re-update data? (Y/N): ') == 'Y':
            update_data()
            return

    logger.logMsg('Copying updated data locally')
    arcpy_helpers.DeleteIfExists([local_sgid, local_cache])
    arcpy.Copy_management(os.path.join(hnas_data, sgid_fgdb), local_sgid)
    arcpy.Copy_management(os.path.join(hnas_data, cache_fgdb), local_cache)

    logger.logMsg('Data update complete')

    emailer.sendEmail(email_subject,
                      'Data update complete. Proceeding with caching...')
コード例 #2
0
ファイル: cache.py プロジェクト: agrc/caching-scripts
def update_data():
    logger.logMsg('Updating data')
    sgid_sde = r'{}SGID10.sde'.format(HNAS_DATA_FOLDER)
    hnas_data = HNAS_DATA_FOLDER
    sgid_fgdb = 'SGID10.gdb'
    cache_fgdb = 'UtahBaseMap-Data.gdb'
    local_data = r'C:\Cache\MapData\Temp'
    local_sgid = os.path.join(local_data, sgid_fgdb)
    local_cache = os.path.join(local_data, cache_fgdb)

    errors, changes = update.updateFGDBfromSDE(os.path.join(hnas_data, sgid_fgdb), sgid_sde)
    if len(errors) > 0:
        emailer.sendEmail(email_subject + ' Errors',
                          'Data update schema changes: \n\n{}'.format('\n'.join(errors)))
        if raw_input('Re-update data? (Y/N): ') == 'Y':
            update_data()
            return

    logger.logMsg('Copying updated data locally')
    arcpy_helpers.DeleteIfExists([local_sgid, local_cache])
    arcpy.Copy_management(os.path.join(hnas_data, sgid_fgdb), local_sgid)
    arcpy.Copy_management(os.path.join(hnas_data, cache_fgdb), local_cache)

    logger.logMsg('Data update complete')

    emailer.sendEmail(email_subject, 'Data update complete. Proceeding with caching...')
コード例 #3
0
ファイル: test_update.py プロジェクト: ZachBeck/agrc.python
    def test_update_tables(self):
        testGDB = os.path.join(currentFolder, 'Test.gdb')
        if arcpy.Exists(testGDB):
            arcpy.Delete_management(testGDB)
        arcpy.Copy_management(checkForChangesGDB, testGDB)

        changes = update.updateFGDBfromSDE(testGDB, updateTestsSDE)[1]

        self.assertEquals(changes[0], 'PROVIDERS')
コード例 #4
0
ファイル: test_update.py プロジェクト: clrudderWC/agrc.python
    def test_update_tables(self):
        testGDB = os.path.join(currentFolder, 'Test.gdb')
        if arcpy.Exists(testGDB):
            arcpy.Delete_management(testGDB)
        arcpy.Copy_management(checkForChangesGDB, testGDB)

        changes = update.updateFGDBfromSDE(testGDB, updateTestsSDE)[1]

        self.assertEquals(changes[0], 'PROVIDERS')
コード例 #5
0
    def run(self):
        self.logger.logMsg("Looping through file geodatabases")
        errors = []
        for db in settings.DATABASES:
            self.archive(db)
            fgd = r'{}\{}.gdb'.format(settings.DBPATH, db)
            sde = r'{}\{}.sde'.format('.\database_connections', db)
            tup = update.updateFGDBfromSDE(fgd, sde, self.logger)
            errors = errors + tup[0]

            self.logger.logMsg('compacting geodatabase')
            arcpy.Compact_management(fgd)

        if update.wasModifiedToday('Roads',
                                   r'{}\{}.gdb'.format(settings.DBPATH,
                                                       'SGID10')):
            rebuild_locators.Runner(self.logger, self.emailer).roads()
        if update.wasModifiedToday('AddressPoints',
                                   r'{}\{}.gdb'.format(settings.DBPATH,
                                                       'SGID10')):
            rebuild_locators.Runner(self.logger, self.emailer).address_points()

        end_time = time.time()
        elapsed_time = end_time - self.start_time
        self.logger.logMsg("total minutes: " + str(elapsed_time / 60))

        if len(errors) > 0:
            errors = '\n\n'.join(errors)
            errors = re.sub('(\n\n|^)(.*): schema change detected',
                            r'\1\2: schema change detected - force update: http://172.16.17.56/arcgis/rest/services/ForceSchemaUpdate/GPServer/Force%20Schema%20Update/execute?Feature_Class_Name=\2&f=json',
                            errors)
            txt = "Updated Datasets: \n{}\n\nUpdate Errors:\n{}\n\nLog:\n{}"
            self.emailer.sendEmail(
                'mapserv-data-update: update errors',
                txt.format("\n".join(update.changes),
                           errors,
                           self.logger.log))
        else:
            txt = "Updated Datasets: \n{}\n\nLog:\n{}"
            self.emailer.sendEmail(
                "mapserv-data-update: success",
                txt.format('\n'.join(update.changes),
                           self.logger.log))

        print("done")
コード例 #6
0
ファイル: main.py プロジェクト: agrc/wri-web
 def run(self):
     for db in databases:
         update.updateFGDBfromSDE(join(local_folder, db + '.gdb'),
                                  join('database_connections', db + '.sde'),
                                  self.logger)