Revision 775
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.multifile.io/src/main/java/org/gvsig/raster/tools/multifile/io/DefaultMultiFileIOLibrary.java | ||
---|---|---|
41 | 41 |
MultiFileServerExplorerParameters.registerDynClass(); |
42 | 42 |
MultiFileDataParametersImpl.registerDynClass(); |
43 | 43 |
MultiFileProvider.register(); |
44 |
MultiFileDataParametersImpl.registerPersistence(); |
|
44 | 45 |
} |
45 | 46 |
} |
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.multifile.io/src/main/java/org/gvsig/raster/tools/multifile/io/MultiFileProvider.java | ||
---|---|---|
730 | 730 |
* @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getColorInterpretation() |
731 | 731 |
*/ |
732 | 732 |
public ColorInterpretation getColorInterpretation() { |
733 |
if(getColorInterpretation() == null) { |
|
733 |
if(super.getColorInterpretation() == null) {
|
|
734 | 734 |
String[] cis = new String[getBandCount()]; |
735 | 735 |
for (int i = 0; i < cis.length; i++) { |
736 | 736 |
if(i == 0) |
... | ... | |
740 | 740 |
} |
741 | 741 |
setColorInterpretation(new DataStoreColorInterpretation(cis)); |
742 | 742 |
} |
743 |
return getColorInterpretation(); |
|
743 |
return super.getColorInterpretation();
|
|
744 | 744 |
} |
745 | 745 |
|
746 | 746 |
/* |
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.multifile.io/src/main/java/org/gvsig/raster/tools/multifile/io/MultiFileDataParametersImpl.java | ||
---|---|---|
28 | 28 |
package org.gvsig.raster.tools.multifile.io; |
29 | 29 |
|
30 | 30 |
import java.util.ArrayList; |
31 |
import java.util.List; |
|
31 | 32 |
|
33 |
import org.gvsig.fmap.dal.DALLocator; |
|
32 | 34 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
35 |
import org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters; |
|
36 |
import org.gvsig.fmap.dal.exception.InitializeException; |
|
37 |
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException; |
|
38 |
import org.gvsig.fmap.dal.spi.DataManagerProviderServices; |
|
33 | 39 |
import org.gvsig.fmap.dal.spi.DataStoreProvider; |
40 |
import org.gvsig.raster.impl.provider.DefaultRasterProvider; |
|
34 | 41 |
import org.gvsig.raster.impl.provider.RasterProvider; |
35 | 42 |
import org.gvsig.raster.impl.store.AbstractRasterDataParameters; |
36 | 43 |
import org.gvsig.raster.impl.store.AbstractRasterFileDataParameters; |
... | ... | |
40 | 47 |
import org.gvsig.tools.dynobject.DynClass; |
41 | 48 |
import org.gvsig.tools.dynobject.DynField; |
42 | 49 |
import org.gvsig.tools.dynobject.DynObjectManager; |
50 |
import org.gvsig.tools.dynobject.DynStruct; |
|
51 |
import org.gvsig.tools.persistence.PersistenceManager; |
|
52 |
import org.gvsig.tools.persistence.PersistentState; |
|
53 |
import org.gvsig.tools.persistence.exception.PersistenceException; |
|
43 | 54 |
|
44 | 55 |
/** |
45 | 56 |
* Parameters for the Multifile provider |
... | ... | |
166 | 177 |
public ArrayList<RasterProvider> getProviders() { |
167 | 178 |
return (ArrayList<RasterProvider>)getDynValue(MultiFileDataParameters.FIELD_PROVIDERS); |
168 | 179 |
} |
180 |
|
|
181 |
/* |
|
182 |
* (non-Javadoc) |
|
183 |
* @see org.gvsig.raster.impl.store.AbstractRasterDataParameters#loadFromState(org.gvsig.tools.persistence.PersistentState) |
|
184 |
*/ |
|
185 |
@SuppressWarnings("unchecked") |
|
186 |
public void loadFromState(PersistentState state) |
|
187 |
throws PersistenceException { |
|
188 |
super.loadFromState(state); |
|
189 |
DataManagerProviderServices dataManager = (DataManagerProviderServices)DALLocator.getDataManager(); |
|
190 |
|
|
191 |
List<RasterDataParameters> parameters = state.getList("parameters"); |
|
192 |
for (int i = 0; i < parameters.size(); i++) { |
|
193 |
try { |
|
194 |
DefaultRasterStore dSet = new DefaultRasterStore(); |
|
195 |
DefaultRasterProvider provider = (DefaultRasterProvider)dataManager.createProvider(dSet, parameters.get(i)); |
|
196 |
addProvider(provider); |
|
197 |
} catch (InitializeException e) { |
|
198 |
throw new PersistenceException(e); |
|
199 |
} catch (ProviderNotRegisteredException e) { |
|
200 |
throw new PersistenceException(e); |
|
201 |
} |
|
202 |
} |
|
203 |
} |
|
204 |
|
|
205 |
/* |
|
206 |
* (non-Javadoc) |
|
207 |
* @see org.gvsig.raster.impl.store.AbstractRasterDataParameters#saveToState(org.gvsig.tools.persistence.PersistentState) |
|
208 |
*/ |
|
209 |
public void saveToState(PersistentState state) throws PersistenceException { |
|
210 |
super.saveToState(state); |
|
211 |
ArrayList<RasterProvider> provList = getProviders(); |
|
212 |
ArrayList<RasterDataParameters> rasterDataParametersList = new ArrayList<RasterDataParameters>(); |
|
213 |
for (int j = 0; j < provList.size(); j++) { |
|
214 |
rasterDataParametersList.add(provList.get(j).getDataParameters()); |
|
215 |
} |
|
216 |
|
|
217 |
state.set("parameters", rasterDataParametersList); |
|
218 |
} |
|
219 |
|
|
220 |
public static void registerPersistence() { |
|
221 |
PersistenceManager manager = ToolsLocator.getPersistenceManager(); |
|
222 |
DynStruct definition = manager.getDefinition("MultiFileDataParameters_Persistent"); |
|
223 |
if( definition == null ) { |
|
224 |
definition = manager.addDefinition( |
|
225 |
MultiFileDataParametersImpl.class, |
|
226 |
"MultiFileDataParameters_Persistent", |
|
227 |
"MultiFileDataParameters Persistent", |
|
228 |
null, |
|
229 |
null |
|
230 |
); |
|
231 |
definition.addDynFieldList("parameters").setClassOfItems(RasterDataParameters.class).setMandatory(true); |
|
232 |
AbstractRasterDataParameters.registerPersistence(definition); |
|
233 |
} |
|
234 |
} |
|
169 | 235 |
} |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/serializer/StatisticsRmfSerializer.java | ||
---|---|---|
78 | 78 |
public static final String MINIMUN = "Minimun"; |
79 | 79 |
public static final String MEAN = "Mean"; |
80 | 80 |
public static final String VARIANCE = "Variance"; |
81 |
public static final String NVALUES = "NValues"; |
|
81 | 82 |
public static final String BANDCOUNT = "BandCount"; |
82 | 83 |
public static final String TAILTRIM = "TailTrim"; |
83 | 84 |
public static final String KEY = "Key"; |
... | ... | |
134 | 135 |
* @throws XmlPullParserException |
135 | 136 |
* @throws IOException |
136 | 137 |
*/ |
137 |
private long[] parserStatBandValues(KXmlParser parser, int band, double[] max, double[] min, double[] sndmax, double[] sndmin, double[] maxRGB, double[] minRGB, double[] sndmaxRGB, double[] sndminRGB, double[] mean, double[] variance) throws XmlPullParserException, IOException { |
|
138 |
boolean maxOk = false, minOk = false, sndmaxOk = false, sndminOk = false, meanOk = false, varianceOk = false; |
|
138 |
private long[] parserStatBandValues(KXmlParser parser, int band, double[] max, double[] min, double[] sndmax, double[] sndmin, double[] maxRGB, double[] minRGB, double[] sndmaxRGB, double[] sndminRGB, double[] mean, double[] variance, long[] nValues) throws XmlPullParserException, IOException {
|
|
139 |
boolean maxOk = false, minOk = false, sndmaxOk = false, sndminOk = false, meanOk = false, varianceOk = false, nvaluesOk = false;
|
|
139 | 140 |
boolean maxRGBOk = false, minRGBOk = false, sndmaxRGBOk = false, sndminRGBOk = false; |
140 | 141 |
long[] valueList = null; |
141 | 142 |
boolean end = false; |
... | ... | |
164 | 165 |
meanOk = true; |
165 | 166 |
if (parser.getName().compareTo(VARIANCE) == 0) |
166 | 167 |
varianceOk = true; |
168 |
if (parser.getName().compareTo(NVALUES) == 0) |
|
169 |
nvaluesOk = true; |
|
167 | 170 |
} |
168 | 171 |
break; |
169 | 172 |
case KXmlParser.END_TAG: |
... | ... | |
211 | 214 |
variance[band] = Double.parseDouble(parser.getText()); |
212 | 215 |
varianceOk = false; |
213 | 216 |
} |
217 |
if(nvaluesOk) { |
|
218 |
nValues[band] = Long.parseLong(parser.getText()); |
|
219 |
nvaluesOk = false; |
|
220 |
} |
|
214 | 221 |
break; |
215 | 222 |
} |
216 | 223 |
if (!end) |
... | ... | |
231 | 238 |
double[] secondMin = null, secondMinRGB = null; |
232 | 239 |
double[] mean = null; |
233 | 240 |
double[] variance = null; |
241 |
long[] nValues = null; |
|
234 | 242 |
|
235 | 243 |
KXmlParser parser = new KXmlParser(); |
236 | 244 |
Reader reader = new StringReader(xml); |
... | ... | |
261 | 269 |
secondMinRGB = new double[bandCount]; |
262 | 270 |
mean = new double[bandCount]; |
263 | 271 |
variance = new double[bandCount]; |
272 |
nValues = new long[bandCount]; |
|
264 | 273 |
} |
265 | 274 |
for (int i = 0; i < bandCount; i++) |
266 |
parserStatBandValues(parser, i, max, min, secondMax, secondMin, maxRGB, minRGB, secondMaxRGB, secondMinRGB, mean, variance); |
|
275 |
parserStatBandValues(parser, i, max, min, secondMax, secondMin, maxRGB, minRGB, secondMaxRGB, secondMinRGB, mean, variance, nValues);
|
|
267 | 276 |
} |
268 | 277 |
} |
269 | 278 |
break; |
... | ... | |
293 | 302 |
getDatasetStatistics().setSecondMinRGB(secondMinRGB); |
294 | 303 |
getDatasetStatistics().setMean(mean); |
295 | 304 |
getDatasetStatistics().setVariance(variance); |
305 |
getDatasetStatistics().setNumberOfValues(nValues); |
|
296 | 306 |
getDatasetStatistics().setCalculated(true); |
297 | 307 |
} |
298 | 308 |
|
... | ... | |
329 | 339 |
if (getDatasetStatistics().getMean() != null) |
330 | 340 |
putProperty(b, MEAN, getDatasetStatistics().getMean()[i], 2); |
331 | 341 |
if (getDatasetStatistics().getVariance() != null) |
332 |
putProperty(b, VARIANCE, getDatasetStatistics().getVariance()[i], 2); |
|
342 |
putProperty(b, VARIANCE, getDatasetStatistics().getVariance()[i], 2); |
|
343 |
if (getDatasetStatistics().getNumberOfValues() != null) |
|
344 |
putProperty(b, NVALUES, new Long(getDatasetStatistics().getNumberOfValues()[i]).toString(), 2); |
|
333 | 345 |
b.append("\t</" + BAND + ">\n"); |
334 | 346 |
} |
335 | 347 |
for (int i = 0; i < getDatasetStatistics().getTailTrimCount(); i++) { |
Also available in: Unified diff