public class DefaultRasterUtils extends Object implements RasterUtils
Modifier and Type | Field and Description |
---|---|
static int |
MAX_BYTE_BIT_VALUE |
static int |
MAX_SHORT_BIT_VALUE |
Constructor and Description |
---|
DefaultRasterUtils() |
Modifier and Type | Method and Description |
---|---|
void |
adjustToPixelSize(Point2D[] points,
Point2D dim)
Ajusta el valor del array de puntos pasado como primer parámetro a las
dimensiones de la imagen.
|
Extent |
calculateAdjustedView(Extent extToAdj,
AffineTransform at,
double w,
double h)
Ajusta la extensión pasada por parámetro a los valores máximos y mínimos de
la imagen.
|
Extent |
calculateAdjustedView(Extent extToAdj,
Extent imgExt)
Ajusta la extensión pasada por parámetro a los valores máximos y mínimos de
la imagen.
|
boolean |
compareExtents(Extent e1,
Extent e2)
Compara dos extents y devuelve true si son iguales
|
BufferHistogram |
convertHistogramToRGB(BufferHistogram histogram)
Convierte un histograma al rango de valores de RGB, en pocas palabras
aplica una operacion 0xff a cada pixel para quitar los numeros negativos
y desplazarlos a su rango visual.
|
void |
copyToBuffer(Buffer bufResult,
Extent tileExtent,
Buffer buf,
Extent ex,
double rel,
boolean hasAlphaBand)
Copies a piece of image into another taking into account the different size and proportion
|
double[] |
cornersToWorldFile(Point2D[] esq,
Dimension size)
Calcula los parámetros de un worl file a partir de las esquinas del raster.
1.
|
String |
formatTime(long time)
Formatea el tiempo en milisegundos devolviendo un String en formato . dias,
horas, minutos y segundos.
|
long |
getBytesFromRaster(int width,
int height,
int rasterType,
int nBands)
Devuelve el tamaño en bytes de una región de un raster en función de su
dimensión, número de bandas y tipo de dato.
|
int |
getBytesFromRasterBufType(int rasterBufType)
Obtiene el número de bytes que ocupa un tipo de dato concreto.
|
String[] |
getCoord(double minx,
double miny,
double maxx,
double maxy,
int dec)
Obtiene un texto con las coordenadas a partir de números en coma flotante.
|
Rectangle2D |
getMapRectFromPxRect(Rectangle2D extent,
double widthPx,
double heightPx,
Rectangle2D pxWindow)
Convierte una ventana en coordenadas del mundo real a sus coordenadas
relativas en pixels teniendo en cuenta que la coordenada superior izquierda
es 0,0 y la inferior derecha es maxX y maY
|
Rectangle2D |
getPxRectFromMapRect(Rectangle2D extent,
double widthPx,
double heightPx,
Rectangle2D window)
Convierte una ventana en coordenadas del mundo real a sus coordenadas
relativas en pixels teniendo en cuenta que la coordenada superior izquierda
es 0,0 y la inferior derecha es maxX y maY
|
int |
getRasterBufTypeFromMrSIDType(int mrsidType)
Conversión de los tipos de datos de MrSID a los tipos de datos de RasterBuf
|
Extent |
getROIsMaximunExtent(List<ROI> rois)
Obtiene el extent máximo de todas las ROIs pasadas por parámetro.
|
String |
getTrace(Exception e)
Gets the exception trace
|
Extent |
intersection(Extent e1,
Extent e2)
Computes the extent which intersects both selecteds
|
boolean |
intersects(Extent e1,
Extent e2,
AffineTransform at)
Comprueba si un Extent tiene alguna parte en común con otro Extent dado, es
decir, si ambos extents intersectan en alguna zona.
|
boolean |
isBufferTooBig(double[] coords,
double resolution,
int bands)
Dadas unas coordenadas pixel y un número de bandas, esta función comprueba si
el tamaño de ventana que va a generarse supera el tamaño de la caché
|
boolean |
isBufferTooBig(double[] coords,
int bands)
Dadas unas coordenadas pixel y un número de bandas, esta función comprueba si
el tamaño de ventana que va a generarse supera el tamaño de la caché
|
boolean |
isInside(Extent e1,
Extent e2)
Comprueba si un extent está contenido dentro de otro y devuelve true en
este caso.
|
boolean |
isInside(Point2D p1,
Extent e1)
Comprueba si un punto está contenido dentro de un extend y devuelve true en
este caso.
|
boolean |
isInside(Point2D p1,
Extent e1,
AffineTransform at)
Comprueba si un punto está contenido dentro de un extend y devuelve true en
este caso.
|
boolean |
isOutside(Extent e1,
Extent ref)
Comprueba si un extent está fuera de otro extent que tenemos como
referencia.
|
boolean |
loadInMemory(RasterDataStore datasource)
Devuelve true si el tamaño del dataset es menor que el de la caché y false
si no lo es.
|
String |
parserGdalProj(String proj)
Parseo de las proyecciones que genera gdal para meter espaciados y saltos
de línea HTML
|
void |
saveGeoInfo(String outRmf,
AffineTransform at,
Point2D dim)
Guarda la información de georreferenciación de un raster en su fichero rmf
adjunto.
|
String |
typesToString(int type)
Convierte un tipo de dato a cadena
|
Point2D |
worldPointToRaster(Point2D p,
Extent ext,
int pxWidth,
int pxHeight)
Convierte un punto en coordenadas del mundo a coordenadas pixel
|
public static final int MAX_BYTE_BIT_VALUE
public static final int MAX_SHORT_BIT_VALUE
public boolean loadInMemory(RasterDataStore datasource)
RasterUtils
loadInMemory
in interface RasterUtils
datasource
- Fuente de datospublic boolean isBufferTooBig(double[] coords, int bands)
RasterUtils
isBufferTooBig
in interface RasterUtils
coords
- Coordenadas pixel del rasterbands
- Número de bandaspublic boolean isBufferTooBig(double[] coords, double resolution, int bands)
RasterUtils
isBufferTooBig
in interface RasterUtils
coords
- Coordenadas pixel del rasterbands
- Número de bandaspublic int getRasterBufTypeFromMrSIDType(int mrsidType)
RasterUtils
getRasterBufTypeFromMrSIDType
in interface RasterUtils
mrsidType
- Tipo de dato de MrSIDpublic int getBytesFromRasterBufType(int rasterBufType)
RasterUtils
getBytesFromRasterBufType
in interface RasterUtils
rasterBufType
- Tipo de dato del que se solicita el número de bytes ocupadospublic long getBytesFromRaster(int width, int height, int rasterType, int nBands)
RasterUtils
getBytesFromRaster
in interface RasterUtils
public String typesToString(int type)
RasterUtils
typesToString
in interface RasterUtils
type
- Tipo de datopublic String parserGdalProj(String proj)
RasterUtils
parserGdalProj
in interface RasterUtils
proj
- Proyecciónpublic Rectangle2D getPxRectFromMapRect(Rectangle2D extent, double widthPx, double heightPx, Rectangle2D window)
RasterUtils
getPxRectFromMapRect
in interface RasterUtils
extent
- Extent de la imagen originalwidthPx
- Ancho en pixeles de la imagen originalheightPx
- Alto en pixeles de la imagen originalwindow
- Ventana en coordenadas reales a transportar a coordenadas pixelpublic Rectangle2D getMapRectFromPxRect(Rectangle2D extent, double widthPx, double heightPx, Rectangle2D pxWindow)
RasterUtils
getMapRectFromPxRect
in interface RasterUtils
extent
- Extent de la imagen originalwidthPx
- Ancho en pixeles de la imagen originalheightPx
- Alto en pixeles de la imagen originalpublic Point2D worldPointToRaster(Point2D p, Extent ext, int pxWidth, int pxHeight)
RasterUtils
worldPointToRaster
in interface RasterUtils
p
- Punto a convertirext
- Extent completo de la imagenpublic boolean intersects(Extent e1, Extent e2, AffineTransform at) throws NoninvertibleTransformException
RasterUtils
intersects
in interface RasterUtils
NoninvertibleTransformException
public Extent intersection(Extent e1, Extent e2)
RasterUtils
intersection
in interface RasterUtils
public boolean isInside(Point2D p1, Extent e1, AffineTransform at)
RasterUtils
isInside
in interface RasterUtils
p1
- Punto a comprobar si está contenido en e1e1
- Extent sobre el que se comprueba si e1 está dentro el puntopublic boolean isInside(Extent e1, Extent e2)
RasterUtils
isInside
in interface RasterUtils
e1
- Extent a comprobar si está contenido en e2e2
- Extent sobre el que se comprueba si e1 está dentropublic boolean isInside(Point2D p1, Extent e1)
RasterUtils
isInside
in interface RasterUtils
p1
- Punto a comprobar si está contenido en e1e1
- Extent sobre el que se comprueba si e1 está dentro el puntopublic boolean isOutside(Extent e1, Extent ref)
RasterUtils
isOutside
in interface RasterUtils
e1
- Extent a comprobar si está fueraref
- Extent de referenciapublic boolean compareExtents(Extent e1, Extent e2)
RasterUtils
compareExtents
in interface RasterUtils
e1
- Extent a comparare2
- Extent a compararpublic double[] cornersToWorldFile(Point2D[] esq, Dimension size)
RasterUtils
cornersToWorldFile
in interface RasterUtils
public void adjustToPixelSize(Point2D[] points, Point2D dim)
RasterUtils
adjustToPixelSize
in interface RasterUtils
points
- Lista de puntos a ajustardim
- Dimensionpublic String getTrace(Exception e)
getTrace
in interface RasterUtils
e
- public String formatTime(long time)
RasterUtils
formatTime
in interface RasterUtils
time
- Tiempo en milisegundospublic String[] getCoord(double minx, double miny, double maxx, double maxy, int dec)
RasterUtils
getCoord
in interface RasterUtils
minx
- coordenada mínima de Xminy
- coordenada mínima de Ymaxx
- coordenada máxima de Xmaxy
- coordenada máxima de Ydec
- Número de decimales a mostrar en la caja de textopublic Extent calculateAdjustedView(Extent extToAdj, Extent imgExt)
RasterUtils
calculateAdjustedView
in interface RasterUtils
extToAdj
- Extent a ajustar.imgExt
- Extent completo de la vista donde se va a dibujar.public Extent calculateAdjustedView(Extent extToAdj, AffineTransform at, double w, double h)
RasterUtils
calculateAdjustedView
in interface RasterUtils
public void saveGeoInfo(String outRmf, AffineTransform at, Point2D dim) throws IOException
RasterUtils
saveGeoInfo
in interface RasterUtils
IOException
public Extent getROIsMaximunExtent(List<ROI> rois)
getROIsMaximunExtent
in interface RasterUtils
rois
- Lista de ROIs para calcular la extensión máxima que ocupanpublic BufferHistogram convertHistogramToRGB(BufferHistogram histogram)
convertHistogramToRGB
in interface RasterUtils
histogram
- public void copyToBuffer(Buffer bufResult, Extent tileExtent, Buffer buf, Extent ex, double rel, boolean hasAlphaBand)
RasterUtils
copyToBuffer
in interface RasterUtils
bufResult
- output buffertileExtent
- bounding box of the output bufferbuf
- input bufferex
- bounding box of the input bufferrel
- ratio between both pixel sizeshasAlphaBand
- true if the last band is a alpha band