Advanced uses for automationΒΆ

The following code will first convert all the .rst data format inside C:\Users\gic\Desktop\etlIa\ folder, into tiff format and then upload all the tiff files to the GeoServer.

from geo.Geoserver import Geoserver
from osgeo import gdal
import glob
import os

geo = Geoserver('http://localhost:8080/geoserver', username='admin', password='geoserver')

rst_files = glob.glob(r'C:\Users\gic\Desktop\etlIa\*.rst')
geo.create_workspace('geonode')

for rst in rst_files:
    file_name = os.path.basename(rst)
    src = gdal.Open(rst)
    tiff = r'C:\Users\tek\Desktop\try\{}'.format(file_name)
    gdal.Translate(tiff, src)
    geo.create_coveragestore(layer_name=file_name, path=tiff, workspace='geonode')    #, overwrite=True

The following code will upload all the tiff files (with extension .tiff or .tif) located in data/landuse to the GeoServer.

from geo.Geoserver import Geoserver
import glob
import os

geo = Geoserver('http://localhost:8080/geoserver', username='admin', password='geoserver')
geo.create_workspace('test')
tiff_files = glob.glob('data/landuse/*.tiff') + glob.glob('data/landuse/*.tif')

for tiff in tiff_files:
    file_name = os.path.basename(tiff)

    # Removing extension for layer name
    temp = os.path.splitext(file_name)
    layer_name = temp[0]

    # Will overwrite layer if it exists
    geo.create_coveragestore(layer_name=layer_name, path=tiff, workspace='test')

    print(file_name + ' uploaded to geoserver')