Update

parent 2dcff62f
......@@ -37,6 +37,7 @@ class Index(object):
Args:
self: The object pointer.
ResolSize (str): destination directory.
IndexType (str): # NDVI - Normalized Difference Vegetation Index, NDWI - Normalized Difference Water Index, NBAI - Normalized Built-up Area Index
Returns:
......
......@@ -6,40 +6,41 @@ Example:
$ python -m doctest -v Merge.py
"""
""" Class for Sentinel satellites configuration
Test Case
"""
import os,sys
from os.path import expanduser
home = expanduser("~")
a=os.path.join(os.path.expandvars(home),".snap/snap-python/")
sys.path.append(a)
import cv2
import snappy,numpy
from snappy import jpy,ProductData,ProgressMonitor,ProductUtils
from tools import (tools)
from readProduct import (readProduct)
jpy = snappy.jpy
Color = jpy.get_type('java.awt.Color')
ColorPoint = jpy.get_type('org.esa.snap.core.datamodel.ColorPaletteDef$Point')
ColorPaletteDef = jpy.get_type('org.esa.snap.core.datamodel.ColorPaletteDef')
ImageInfo = jpy.get_type('org.esa.snap.core.datamodel.ImageInfo')
ImageLegend = jpy.get_type('org.esa.snap.core.datamodel.ImageLegend')
JAI = jpy.get_type('javax.media.jai.JAI')
System = jpy.get_type('java.lang.System')
System.setProperty('com.sun.media.jai.disableMediaLib', 'true')
class Merge(object):
""" Class for Sentinel satellites configuration
Test Case
>>> Files = tools("all") #IW_SLC,IW_GRDH,MSIL1C
>>> dir="make/"
>>> platform='Sentinel-2'
>>> list_files=Files.findFilesSentinel(dir,platform,4)#4 for resample_subset.dim
>>> print 'There is/are %d ' % len(list_files) + platform + ' file(s)'
>>> Read=readProduct(dir,platform)
>>> TypeMerge="RGB"
>>> Mergee=Merge("60",TypeMerge)
>>> for image in list_files:
... file = dir + image
... print"Applying SubSet... ", image
... product=Read.ReadFilesSentinel(file,2)#The flag 2 ReadFiles .dim
... Mergee.merges(product, file)
"""
def __init__(self,ResolSize,TypeMerge):
"""The constructor Initialize Sentinel Data.
Args:
self: The object pointer.
folder (str): destination directory.
ResolSize (str): destination directory.
TypeMerge (str): RGB
Returns:
pointer: The object pointer.
......@@ -53,104 +54,24 @@ class Merge(object):
self.ImageManager = jpy.get_type('org.esa.snap.core.image.ImageManager')
(self.h, self.w) = (None, None)
def merges(self,product, products,file):
##blue = product.getBand('B2')
##green = product.getBand('B3')
##red = product.getBand('B4')
##width = product.getSceneRasterWidth()
##height = product.getSceneRasterHeight()
##RGB = [green,red, blue]#Bueno
#################################################################################
#RES = []
#for i in range(len(RGB)):
# Band = ProductData.createInstance(numpy.zeros((width, height), numpy.uint16))
# RGB[i].readRasterData(0, 0, width, height, Band)
# RES.append(Band)
# Image without georreference
##info = ProductUtils.createImageInfo(RGB, True, ProgressMonitor.NULL)
##image = ProductUtils.createRgbImage(RGB, info, ProgressMonitor.NULL)
# print"Wrinting PNG..."
##salida = file[:-4] + self.Type_Merge + self.ext
##savefile = self.File(salida)
##self.looks.writeImage(image, savefile)
######################################################################################
#salida = file[:-5] + self.Type_Merge+ self.ext
#image_info = ProductUtils.createImageInfo(RGB, True, ProgressMonitor.NULL)
#im = self.ImageManager.getInstance().createColoredBandImage(RGB, image_info, 0)
#JAI.create("filestore", im, salida, "JPEG-LS")
##TotImage = len(products)
##print"IMAGES...",products
#sys.exit()
# Get Raster
#dataset1 = gdal.Open(products[2], GA_ReadOnly)
#dataset2 = gdal.Open(products[1], GA_ReadOnly)
#dataset3 = gdal.Open(products[0], GA_ReadOnly)
##dataset1=cv2.imread(products[2], cv2.IMREAD_UNCHANGED)#B4 R
##dataset2=cv2.imread(products[1], cv2.IMREAD_UNCHANGED)#B3 G
##dataset3=cv2.imread(products[0], cv2.IMREAD_UNCHANGED)#B2 B
##salida = file[:-5] + self.Type_Merge
##image = cv2.merge((dataset3, dataset2, dataset1))
def merges(self, product, file):
"""Index Files Sentinel
##cv2.imwrite(salida + '.jpg', image)
########################################################################
Args:
self (pointer): The object pointer.
product (bin): Metadata Sentinel.
file (str): local path to image.
red = Image.open(products[2]).convert('L')
blue = Image.open(products[0])
green = Image.open(products[1])
"""
blue = product.getBand('B2')
green = product.getBand('B3')
red = product.getBand('B4')
out = Image.merge("RGB", (red, green, blue))
out.save("img-out.TIF") #https://gis.stackexchange.com/questions/180534/merge-rgb-band-using-python
#https://stackoverflow.com/questions/30227466/combine-several-images-horizontally-with-python
#https://gist.github.com/glombard/7cd166e311992a828675
#https://pillow.readthedocs.io/en/3.1.x/reference/Image.html
#https://stackoverflow.com/questions/32812547/working-with-jp2-image-on-python-pillow
RGB = [red, green, blue]
def search_band_combination(self,sentinel_image, Type_Merge):
Granule = "/GRANULE"
path = sentinel_image + Granule
file = os.listdir(path)
path = path + "/" + file[0]
Img_Data = "/IMG_DATA"
path = path + Img_Data
file = os.listdir(path)
products = []
if Type_Merge == "RGB":
ext1 = "B04.jp2"
ext2 = "B03.jp2"
ext3 = "B02.jp2"
raster = [f for f in file if f.endswith(ext1) or f.endswith(ext2) or f.endswith(ext3)]
for raster in raster:
product = path + "/" + raster
a = os.path.join(os.path.expandvars(home), product)
products.append(a)
#combinations_bands_sentinel(sentinel_image, Type_Merge, products)
return products
info = ProductUtils.createImageInfo(RGB, True, ProgressMonitor.NULL)
image = ProductUtils.createRgbImage(RGB, info, ProgressMonitor.NULL)
#Applying Index Flag=3 Search .dim files
#Find Sentinel Files
Files = tools("all") #IW_SLC,IW_GRDH,MSIL1C
#dir="C:\Users\Garantias723\Documents\Poncho\Image_Sentinel"
dir="make/"
platform='Sentinel-2'
list_files=Files.findFilesSentinel(dir,platform,2)#4 for resample_subset.dim
print 'There is/are %d ' % len(list_files) + platform + ' file(s)'
#Read Sentinel Files
Read=readProduct(dir,platform)
#Applying Resampling
TypeMerge="RGB"
Mergee=Merge("60",TypeMerge)
for image in list_files:
#file = dir + "/" + image
file = dir + image
products=Mergee.search_band_combination(file, TypeMerge)
print"Applying SubSet... ", image
product=Read.ReadFilesSentinel(file,2)#The flag 2 ReadFiles .dim
Mergee.merges(product,products,file)
#Mergee.merges(product, file)
\ No newline at end of file
salida = file[:-4] + self.Type_Merge + self.ext
savefile = self.File(salida)
self.looks.writeImage(image, savefile)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment