ImageManager = jpy.get_type('org.esa.beam.jai.ImageManager') JAI = jpy.get_type('javax.media.jai.JAI') # Disable JAI native MediaLib extensions System = jpy.get_type('java.lang.System') System.setProperty('com.sun.media.jai.disableMediaLib', 'true') def write_image(band, points, filename, format): cpd = ColorPaletteDef(points) ii = ImageInfo(cpd) # this following line is actually superfluous, but due to a bug in BEAM is must be like that band.setImageInfo(ii) im = ImageManager.getInstance().createColoredBandImage([band], band.getImageInfo(), 0) JAI.create("filestore", im, filename, format) product = ProductIO.readProduct(file) band = product.getBand('radiance_13') # The colour palette assigned to pixel values 0, 50, 100 in the band's geophysical units points = [ ColorPoint(0.0, Color.YELLOW), ColorPoint(50.0, Color.RED), ColorPoint(100.0, Color.BLUE) ] write_image(band, points, 'beampy_write_image.png', 'PNG')
import sys import numpy from beampy import String from beampy import Product from beampy import ProductData from beampy import ProductIO from beampy import ProductUtils if len(sys.argv) != 2: printf("usage: %s <file>", sys.argv[0]); sys.exit(1) sourceProduct = ProductIO.readProduct(sys.argv[1]) b1 = sourceProduct.getBand('reflec_5') b2 = sourceProduct.getBand('reflec_7') b3 = sourceProduct.getBand('reflec_9') w1 = b1.getSpectralWavelength() w2 = b2.getSpectralWavelength() w3 = b3.getSpectralWavelength() a = (w2 - w1) / (w3 - w1) k = 1.03 width = sourceProduct.getSceneRasterWidth() height = sourceProduct.getSceneRasterHeight() targetName = 'FLH_Product' targetProduct = Product.newProduct(targetName, 'test', width, height) targetBand = targetProduct.addNewBand('FLH', ProductData.TYPE_FLOAT32) ProductUtils.copyGeoCoding(sourceProduct, targetProduct) targetProduct.setProductWriter(ProductIO.getProductWriter('GeoTIFF')) targetProduct.writeHeader(String.newString(targetName + '.tif'))
from beampy import String from beampy import Product from beampy import ProductData from beampy import ProductIO from beampy import ProductUtils from beampy import FlagCoding if len(sys.argv) != 2: printf("usage: %s <file>", sys.argv[0]) sys.exit(1) file = sys.argv[1] product = ProductIO.readProduct(file) width = product.getSceneRasterWidth() height = product.getSceneRasterHeight() name = product.getName() description = product.getDescription() band_names = product.getBandNames() print("Product: %s, %d x %d pixels, %s" % (name, width, height, description)) print("Bands: %s" % (band_names)) b7 = product.getBand('radiance_7') b10 = product.getBand('radiance_10') ndviProduct = Product.newProduct('NDVI', 'NDVI', width, height) ndviBand = ndviProduct.addNewBand('ndvi', ProductData.TYPE_FLOAT32) ndviFlagsBand = ndviProduct.addNewBand('ndvi_flags', ProductData.TYPE_UINT8) writer = ProductIO.getProductWriter('BEAM-DIMAP')
if len(sys.argv) != 3: print("usage: %s <file> <geometry-wkt>" % sys.argv[0]) print( " %s ./TEST.N1 \"POLYGON((15.786082 45.30223, 11.798364 46.118263, 10.878688 43.61961, 14.722727" "42.85818, 15.786082 45.30223))\"" % sys.argv[0]) sys.exit(1) file = sys.argv[1] wkt = sys.argv[2] # Uncomment if you receive errors of type com.sun.media.jai.util.ServiceConfigurationError, see # http://www.brockmann-consult.de/beam-jira/browse/BEAM-1699 #beampy.SystemUtils.init3rdPartyLibs(None) # Initialise BEAM's third party Java libraries JAI and GeoTools. geom = WKTReader().read(wkt) print("Reading...") product = ProductIO.readProduct(file) op = SubsetOp() op.setSourceProduct(product) op.setGeoRegion(geom) sub_product = op.getTargetProduct() print("Writing...") ProductIO.writeProduct(sub_product, "beampy_subset_output.dim", "BEAM-DIMAP") print("Done.")
import sys import beampy import numpy import itertools as it from beampy import String from beampy import Product from beampy import ProductData from beampy import ProductIO from beampy import ProductUtils if len(sys.argv) != 2: printf("usage: %s <file>", sys.argv[0]) sys.exit(1) product = ProductIO.readProduct(sys.argv[1]) width = product.getSceneRasterWidth() height = product.getSceneRasterHeight() name = product.getName() desc = product.getDescription() band_names = product.getBandNames() print("Product: %s, %d x %d pixels, %s" % (name, width, height, desc)) print("Bands: %s" % (band_names)) b7 = product.getBand('radiance_7') b10 = product.getBand('radiance_10') ndviProduct = Product.newProduct('NDVI', 'NDVI', width, height) ndviBand = ndviProduct.addNewBand('ndvi', ProductData.TYPE_FLOAT32) ndviBand.setNoDataValue(numpy.nan) ndviBand.setNoDataValueUsed(True)
from beampy import ProductData from beampy import ProductIO from beampy import ProductUtils if len(sys.argv) != 2: print("usage: %s <file>" % sys.argv[0]); sys.exit(1) # Uncomment if you receive errors of type com.sun.media.jai.util.ServiceConfigurationError, see # http://www.brockmann-consult.de/beam-jira/browse/BEAM-1699 #beampy.SystemUtils.init3rdPartyLibs(None) # Initialise BEAM's third party Java libraries JAI and GeoTools. print("Reading...") product = ProductIO.readProduct(sys.argv[1]) width = product.getSceneRasterWidth() height = product.getSceneRasterHeight() name = product.getName() desc = product.getDescription() band_names = product.getBandNames() print("Product: %s, %d x %d pixels, %s" % (name, width, height, desc)) print("Bands: %s" % (band_names)) b7 = product.getBand('radiance_7') b10 = product.getBand('radiance_10') ndviProduct = Product('NDVI', 'NDVI', width, height) ndviBand = ndviProduct.addBand('ndvi', ProductData.TYPE_FLOAT32) ndviBand.setNoDataValue(numpy.nan) ndviBand.setNoDataValueUsed(True)
WKTReader = beampy.jpy.get_type('com.vividsolutions.jts.io.WKTReader') if len(sys.argv) != 3: print("usage: %s <file> <geometry-wkt>" % sys.argv[0]) print(" %s ./TEST.N1 \"POLYGON((15.786082 45.30223, 11.798364 46.118263, 10.878688 43.61961, 14.722727" "42.85818, 15.786082 45.30223))\"" % sys.argv[0]) sys.exit(1) file = sys.argv[1] wkt = sys.argv[2] # Uncomment if you receive errors of type com.sun.media.jai.util.ServiceConfigurationError, see # http://www.brockmann-consult.de/beam-jira/browse/BEAM-1699 #beampy.SystemUtils.init3rdPartyLibs(None) # Initialise BEAM's third party Java libraries JAI and GeoTools. geom = WKTReader().read(wkt) print("Reading...") product = ProductIO.readProduct(file) op = SubsetOp() op.setSourceProduct(product) op.setGeoRegion(geom) sub_product = op.getTargetProduct() print("Writing...") ProductIO.writeProduct(sub_product, "beampy_subset_output.dim", "BEAM-DIMAP") print("Done.")
# More Java type definitions required for image generation Color = jpy.get_type('java.awt.Color') ColorPoint = jpy.get_type('org.esa.beam.framework.datamodel.ColorPaletteDef$Point') ColorPaletteDef = jpy.get_type('org.esa.beam.framework.datamodel.ColorPaletteDef') ImageInfo = jpy.get_type('org.esa.beam.framework.datamodel.ImageInfo') ImageManager = jpy.get_type('org.esa.beam.jai.ImageManager') JAI = jpy.get_type('javax.media.jai.JAI') # Disable JAI native MediaLib extensions System = jpy.get_type('java.lang.System') System.setProperty('com.sun.media.jai.disableMediaLib', 'true') def write_image(band, points, filename, format): cpd = ColorPaletteDef(points) ii = ImageInfo(cpd) # this following line is actually superfluous, but due to a bug in BEAM is must be like that band.setImageInfo(ii) im = ImageManager.getInstance().createColoredBandImage([band], band.getImageInfo(), 0) JAI.create("filestore", im, filename, format) product = ProductIO.readProduct(file) band = product.getBand('radiance_13') # The colour palette assigned to pixel values 0, 50, 100 in the band's geophysical units points = [ColorPoint(0.0, Color.YELLOW), ColorPoint(50.0, Color.RED), ColorPoint(100.0, Color.BLUE)] write_image(band, points, 'beampy_write_image.png', 'PNG')
from beampy import jpy if len(sys.argv) != 2: print("usage: %s <file>" % sys.argv[0]) sys.exit(1) file = sys.argv[1] # Uncomment if you receive errors of type com.sun.media.jai.util.ServiceConfigurationError, see # http://www.brockmann-consult.de/beam-jira/browse/BEAM-1699 #beampy.SystemUtils.init3rdPartyLibs(None) # Initialise BEAM's third party Java libraries JAI and GeoTools. print("Reading...") product = ProductIO.readProduct(file) width = product.getSceneRasterWidth() height = product.getSceneRasterHeight() name = product.getName() description = product.getDescription() band_names = product.getBandNames() print("Product: %s, %d x %d pixels, %s" % (name, width, height, description)) print("Bands: %s" % (list(band_names))) GPF.getDefaultInstance().getOperatorSpiRegistry().loadOperatorSpis() HashMap = jpy.get_type('java.util.HashMap') BandDescriptor = jpy.get_type('org.esa.beam.gpf.operators.standard.BandMathsOp$BandDescriptor') targetBand1 = BandDescriptor()