Revision 17663
trunk/libraries/libRaster/src/org/gvsig/raster/dataset/MultiRasterDataset.java | ||
---|---|---|
25 | 25 |
import java.util.ArrayList; |
26 | 26 |
|
27 | 27 |
import org.cresques.cts.IProjection; |
28 |
import org.gvsig.raster.RasterLibrary; |
|
28 | 29 |
import org.gvsig.raster.buffer.RasterBuffer; |
29 | 30 |
import org.gvsig.raster.buffer.cache.RasterReadOnlyBuffer; |
30 | 31 |
import org.gvsig.raster.dataset.io.RasterDriverException; |
... | ... | |
406 | 407 |
else |
407 | 408 |
mallocNBands = bandList.getDrawableBandsCount(); |
408 | 409 |
|
409 |
//Buffer RO
|
|
410 |
//Buffer ReadOnly
|
|
410 | 411 |
|
411 | 412 |
if(isReadOnly()) { |
412 | 413 |
RasterBuffer rb = RasterBuffer.getReadOnlyBuffer(getDataType()[0], width, height, getBandCount()); |
... | ... | |
506 | 507 |
else |
507 | 508 |
mallocNBands = bandList.getDrawableBandsCount(); |
508 | 509 |
|
509 |
//Buffer RO
|
|
510 |
//Buffer ReadOnly
|
|
510 | 511 |
|
511 | 512 |
if(isReadOnly()) { |
512 | 513 |
RasterBuffer rb = RasterBuffer.getReadOnlyBuffer(getDataType()[0], width, height, getBandCount()); |
... | ... | |
586 | 587 |
else |
587 | 588 |
mallocNBands = bandList.getDrawableBandsCount(); |
588 | 589 |
|
589 |
//Buffer RO
|
|
590 |
//Buffer ReadOnly
|
|
590 | 591 |
|
591 | 592 |
if(isReadOnly()) { |
592 | 593 |
RasterBuffer rb = RasterBuffer.getReadOnlyBuffer(getDataType()[0], bufWidth, bufHeight, getBandCount()); |
... | ... | |
647 | 648 |
if(x < 0 || y < 0 || w > ((RasterDataset)files.get(0)).getWidth() || h > ((RasterDataset)files.get(0)).getHeight()) |
648 | 649 |
throw new InvalidSetViewException("Out of image"); |
649 | 650 |
|
650 |
//Buffer RO
|
|
651 |
//Buffer ReadOnly
|
|
651 | 652 |
|
652 | 653 |
if(isReadOnly()) { |
653 | 654 |
RasterBuffer rb = RasterBuffer.getReadOnlyBuffer(getDataType()[0], w, h, getBandCount()); |
... | ... | |
704 | 705 |
if(x < 0 || y < 0 || w > ((RasterDataset)files.get(0)).getWidth() || h > ((RasterDataset)files.get(0)).getHeight()) |
705 | 706 |
throw new InvalidSetViewException("Out of image"); |
706 | 707 |
|
707 |
//Buffer RO
|
|
708 |
//Buffer ReadOnly
|
|
708 | 709 |
|
709 | 710 |
if(isReadOnly()) { |
710 | 711 |
RasterBuffer rb = RasterBuffer.getReadOnlyBuffer(getDataType()[0], bufWidth, bufHeight, getBandCount()); |
... | ... | |
800 | 801 |
*/ |
801 | 802 |
public int[] getDataType() { |
802 | 803 |
int[] dt = new int[getBandCount()]; |
804 |
|
|
805 |
if (dt.length == 0) |
|
806 |
return null; |
|
807 |
|
|
803 | 808 |
int k = 0; |
804 | 809 |
for(int i = 0; i < files.size(); i++) { |
805 | 810 |
int[] types = ((RasterDataset)files.get(i)).getDataType(); |
... | ... | |
809 | 814 |
} |
810 | 815 |
} |
811 | 816 |
|
812 |
if(dt.length == 0) |
|
813 |
return null; |
|
814 |
else |
|
815 |
return dt; |
|
817 |
return dt; |
|
816 | 818 |
} |
817 | 819 |
|
818 | 820 |
/** |
... | ... | |
901 | 903 |
} |
902 | 904 |
return maxy; |
903 | 905 |
} |
904 |
|
|
906 |
|
|
907 |
/* |
|
908 |
* (non-Javadoc) |
|
909 |
* @see org.gvsig.raster.dataset.IRasterDataSource#getNoDataValue() |
|
910 |
*/ |
|
911 |
public double getNoDataValue(int dataset) { |
|
912 |
if (files.isEmpty()) |
|
913 |
return RasterLibrary.defaultNoDataValue; |
|
914 |
|
|
915 |
if (dataset >= files.size()) |
|
916 |
dataset = files.size() - 1; |
|
917 |
|
|
918 |
if (dataset < 0) |
|
919 |
dataset = 0; |
|
920 |
|
|
921 |
return ((RasterDataset) files.get(dataset)).getNoDataValue(); |
|
922 |
} |
|
923 |
|
|
924 |
/* |
|
925 |
* (non-Javadoc) |
|
926 |
* @see org.gvsig.raster.dataset.IRasterDataSource#resetNoDataValue() |
|
927 |
*/ |
|
928 |
public void resetNoDataValue() { |
|
929 |
for (int i = 0; i < files.size(); i++) |
|
930 |
((RasterDataset) files.get(i)).resetNoDataValue(); |
|
931 |
} |
|
932 |
|
|
933 |
/* |
|
934 |
* (non-Javadoc) |
|
935 |
* @see org.gvsig.raster.dataset.IRasterDataSource#setNoDataValue(int, double) |
|
936 |
*/ |
|
937 |
public void setNoDataValue(int dataset, double value) { |
|
938 |
if (files.isEmpty()) |
|
939 |
return; |
|
940 |
|
|
941 |
if (dataset >= files.size()) |
|
942 |
return; |
|
943 |
|
|
944 |
if (dataset < 0) |
|
945 |
return; |
|
946 |
|
|
947 |
((RasterDataset) files.get(dataset)).setNoDataValue(value); |
|
948 |
} |
|
949 |
|
|
905 | 950 |
/** |
906 | 951 |
* Obtiene el extent del multi fichero. Este corresponde al primer |
907 | 952 |
* GeoRasterFile de la lista. |
... | ... | |
1114 | 1159 |
return 0; |
1115 | 1160 |
} |
1116 | 1161 |
|
1117 |
|
|
1118 | 1162 |
/* |
1119 | 1163 |
* (non-Javadoc) |
1120 | 1164 |
* @see org.gvsig.raster.util.IHistogramable#resetPercent() |
Also available in: Unified diff