def createAndImportTables(S57Files, nFileCount = 1, nProcCount=1): # Open the source and destination data source section2 = config['Database'] # To formulate a string like this from config file #'PG:dbname=rameshN host=127.0.0.1 port=5433 user=postgres password=postgres' connectionString = "PG:" for k, v in section2.items(): connectionString += k + "=" + v + " " poODS = ogr.Open( connectionString, True ) gdal.PushErrorHandler('CPLQuietErrorHandler') # Process each layer for index, item in enumerate(S57Files): #Open data source s57FileHandle = ogr.Open(S57Files[index], False) #Second pass to do the real job */ nLayerCount = s57FileHandle.GetLayerCount() logger.info(str(index+1) + "/" + str(nFileCount) + \ '\t' "Processing file: " + os.path.basename(item) + \ " having %s" % nLayerCount + " layers" + \ ' ' + "on CPU: " + str(nProcCount) + " " + \ str(os.path.getsize(item)/(1024)) + "KB" ) for iLayer in range(nLayerCount): poLayer = s57FileHandle.GetLayer(iLayer) # Create tables psInfo = myOgr2Ogr.newSetupTargetLayer( poLayer, poODS) poLayer.ResetReading() # Import Data myOgr2Ogr.newTranslateLayer( psInfo, poODS, poLayer) s57FileHandle.Destroy() poODS.Destroy() return True
def createAndImportTables(S57Files, nFileCount=1, nProcCount=1): # Open the source and destination data source section2 = config['Database'] # To formulate a string like this from config file #'PG:dbname=rameshN host=127.0.0.1 port=5433 user=postgres password=postgres' connectionString = "PG:" for k, v in section2.items(): connectionString += k + "=" + v + " " poODS = ogr.Open(connectionString, True) gdal.PushErrorHandler('CPLQuietErrorHandler') # Process each layer for index, item in enumerate(S57Files): #Open data source s57FileHandle = ogr.Open(S57Files[index], False) #Second pass to do the real job */ nLayerCount = s57FileHandle.GetLayerCount() logger.info(str(index+1) + "/" + str(nFileCount) + \ '\t' "Processing file: " + os.path.basename(item) + \ " having %s" % nLayerCount + " layers" + \ ' ' + "on CPU: " + str(nProcCount) + " " + \ str(os.path.getsize(item)/(1024)) + "KB" ) for iLayer in range(nLayerCount): poLayer = s57FileHandle.GetLayer(iLayer) # Create tables psInfo = myOgr2Ogr.newSetupTargetLayer(poLayer, poODS) poLayer.ResetReading() # Import Data myOgr2Ogr.newTranslateLayer(psInfo, poODS, poLayer) s57FileHandle.Destroy() poODS.Destroy() return True
def importData(S57Files, nProcCount): # Open the source and destination data source section2 = config['Database'] # To formulate a string like this from config file #'PG:dbname=rameshN host=127.0.0.1 port=5433 user=postgres password=postgres' connectionString = "PG:" for k, v in section2.items(): connectionString += k + "=" + v + " " poODS = ogr.Open(connectionString, True) gdal.PushErrorHandler('CPLQuietErrorHandler') # Process each File for index, item in enumerate(S57Files): #Open S57 Source s57FileHandle = ogr.Open(S57Files[index], False) nLayerCount = s57FileHandle.GetLayerCount() logger.info("Processing: " + os.path.basename(item) + \ " having %s" % nLayerCount + " layers" + \ " on CPU: %s" % (nProcCount + 1) + \ " size %s" % (os.path.getsize(item)/(1024)) + "KB") #papoLayers = [None for i in range(nLayerCount)] #panLayerCountFeatures = [0 for i in range(nLayerCount)] #Process Each Layer in Source for iLayer in range(nLayerCount): poLayer = s57FileHandle.GetLayer(iLayer) #Create PSInfo Object psInfo = myOgr2Ogr.TargetLayerInfo() psInfo.poDstLayer = poODS.GetLayerByName(poLayer.GetName().lower()) if psInfo.poDstLayer is None: logger.error("The following table/ layer is not found: " + poLayer.GetName().lower()) return False poSrcFDefn = poLayer.GetLayerDefn() nSrcFieldCount = poSrcFDefn.GetFieldCount() psInfo.panMap = [-1 for i in range(nSrcFieldCount)] poDstFDefn = psInfo.poDstLayer.GetLayerDefn() for iField in range(nSrcFieldCount): poSrcFieldDefn = poSrcFDefn.GetFieldDefn(iField) iDstField = poDstFDefn.GetFieldIndex( poSrcFieldDefn.GetNameRef()) if iDstField >= 0: psInfo.panMap[iField] = iDstField poLayer.ResetReading() myOgr2Ogr.newTranslateLayer(psInfo, poODS, poLayer) s57FileHandle.Destroy() poODS.Destroy()
def importData(S57Files, nProcCount): # Open the source and destination data source section2 = config['Database'] # To formulate a string like this from config file #'PG:dbname=rameshN host=127.0.0.1 port=5433 user=postgres password=postgres' connectionString = "PG:" for k, v in section2.items(): connectionString += k + "=" + v + " " poODS = ogr.Open( connectionString, True ) gdal.PushErrorHandler('CPLQuietErrorHandler') # Process each File for index, item in enumerate(S57Files): #Open S57 Source s57FileHandle = ogr.Open(S57Files[index], False) nLayerCount = s57FileHandle.GetLayerCount() logger.info("Processing: " + os.path.basename(item) + \ " having %s" % nLayerCount + " layers" + \ " on CPU: %s" % (nProcCount + 1) + \ " size %s" % (os.path.getsize(item)/(1024)) + "KB") #papoLayers = [None for i in range(nLayerCount)] #panLayerCountFeatures = [0 for i in range(nLayerCount)] #Process Each Layer in Source for iLayer in range(nLayerCount): poLayer = s57FileHandle.GetLayer(iLayer) #Create PSInfo Object psInfo = myOgr2Ogr.TargetLayerInfo() psInfo.poDstLayer = poODS.GetLayerByName(poLayer.GetName().lower()) if psInfo.poDstLayer is None: logger.error("The following table/ layer is not found: " + poLayer.GetName().lower()) return False poSrcFDefn = poLayer.GetLayerDefn() nSrcFieldCount = poSrcFDefn.GetFieldCount() psInfo.panMap = [ -1 for i in range(nSrcFieldCount) ] poDstFDefn = psInfo.poDstLayer.GetLayerDefn() for iField in range(nSrcFieldCount): poSrcFieldDefn = poSrcFDefn.GetFieldDefn(iField) iDstField = poDstFDefn.GetFieldIndex(poSrcFieldDefn.GetNameRef()) if iDstField >= 0: psInfo.panMap[iField] = iDstField poLayer.ResetReading() myOgr2Ogr.newTranslateLayer( psInfo, poODS, poLayer) s57FileHandle.Destroy() poODS.Destroy()
def ImportToDB(S57Files, nProcCount, nFileCount): # Open the source and destination data source pszDestDataSource = 'PG:dbname=rameshN host=127.0.0.1 port=5433 user=postgres password=postgres' poODS = ogr.Open(pszDestDataSource, True) gdal.PushErrorHandler('CPLQuietErrorHandler') # Process each layer for index, item in enumerate(S57Files): # logger.info("Processing file: " + os.path.basename(item) + \ # '\t' + "running on CPU: " + str(nProcCount) + " " + \ # str(os.path.getsize(item)/(1024)) + "KB") #Open data source poDS = ogr.Open(S57Files[index], False) nLayerCount = poDS.GetLayerCount() #papoLayers = [None for i in range(nLayerCount)] panLayerCountFeatures = [0 for i in range(nLayerCount)] #Second pass to do the real job */ for iLayer in range(nLayerCount): poLayer = poDS.GetLayer(iLayer) #Create PSInfo Object psInfo = myOgr2Ogr.TargetLayerInfo() psInfo.poDstLayer = poODS.GetLayerByName(poLayer.GetName().lower()) if psInfo.poDstLayer is None: logger.error("The following table/ layer is not found: " + poLayer.GetName().lower()) return False poSrcFDefn = poLayer.GetLayerDefn() nSrcFieldCount = poSrcFDefn.GetFieldCount() panMap = [-1 for i in range(nSrcFieldCount)] psInfo.panMap = panMap psInfo.iSrcZField = -1 poLayer.ResetReading() if (psInfo is None or \ not myOgr2Ogr.newTranslateLayer( psInfo, poDS, poODS, poLayer) \ and not bSkipFailures): logger.error("Terminating translation prematurely after failed\n" + \ "translation of layer " + poLayer.GetLayerDefn().GetName() + " (use -skipfailures to skip errors)") return False poDS.Destroy() poODS.Destroy()
def ImportToDB(S57Files, nProcCount, nFileCount): # Open the source and destination data source pszDestDataSource = 'PG:dbname=rameshN host=127.0.0.1 port=5433 user=postgres password=postgres' poODS = ogr.Open( pszDestDataSource, True ) gdal.PushErrorHandler('CPLQuietErrorHandler') # Process each layer for index, item in enumerate(S57Files): # logger.info("Processing file: " + os.path.basename(item) + \ # '\t' + "running on CPU: " + str(nProcCount) + " " + \ # str(os.path.getsize(item)/(1024)) + "KB") #Open data source poDS = ogr.Open(S57Files[index], False) nLayerCount = poDS.GetLayerCount() #papoLayers = [None for i in range(nLayerCount)] panLayerCountFeatures = [0 for i in range(nLayerCount)] #Second pass to do the real job */ for iLayer in range(nLayerCount): poLayer = poDS.GetLayer(iLayer) #Create PSInfo Object psInfo = myOgr2Ogr.TargetLayerInfo() psInfo.poDstLayer = poODS.GetLayerByName(poLayer.GetName().lower()) if psInfo.poDstLayer is None: logger.error("The following table/ layer is not found: " + poLayer.GetName().lower()) return False poSrcFDefn = poLayer.GetLayerDefn() nSrcFieldCount = poSrcFDefn.GetFieldCount() panMap = [ -1 for i in range(nSrcFieldCount) ] psInfo.panMap = panMap psInfo.iSrcZField = -1 poLayer.ResetReading() if (psInfo is None or \ not myOgr2Ogr.newTranslateLayer( psInfo, poDS, poODS, poLayer) \ and not bSkipFailures): logger.error("Terminating translation prematurely after failed\n" + \ "translation of layer " + poLayer.GetLayerDefn().GetName() + " (use -skipfailures to skip errors)") return False poDS.Destroy() poODS.Destroy()