|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectinsensa.optionfilechanger.AbstractOptionFileChanger
insensa.optionfilechanger.CJenksOptimalBreaks
public class CJenksOptimalBreaks
| Field Summary | |
|---|---|
private CJenksOptimalBreaksValues |
breaksValues
|
private java.lang.String |
description
|
static java.lang.String |
JENKS_BREAKS
|
private static java.lang.String |
NUM_OF_CLASSES
|
private int |
numOfClasses
|
| Fields inherited from class insensa.optionfilechanger.AbstractOptionFileChanger |
|---|
errorMessage, id, oldFileName, oldFilePath, oldRasterFile, processStatus, used, workerStatus, XML_ATTR_ID, XML_ATTR_OLD_NAME, XML_ATTR_OLD_PATH, XML_ATTR_USED, XML_ELEMENT_SOURCEFILE |
| Constructor Summary | |
|---|---|
CJenksOptimalBreaks()
|
|
| Method Summary | |
|---|---|
java.util.List<java.lang.String> |
getInfoDependencies()
|
CJenksOptimalBreaksValues |
getJenksOptimalBreaksValues()
|
int |
getNumOfClasses()
|
org.jdom.Element |
getOptionElement()
Creates a new Element object that contains all
Information that should be saved in a configuration file. |
java.lang.String |
getOptionName()
Returns the name of the OptionFileChanger. |
int |
getUsableCount()
|
void |
setNumOfClasses(int numOfClasses)
|
void |
setOptionAttributes(org.jdom.Element eOption)
Sets all attributes that are saved in the configuration file. |
void |
write()
This method will be executed from the ThreadPool There are several steps that must be followed: Get actual file . |
| Methods inherited from class insensa.optionfilechanger.AbstractOptionFileChanger |
|---|
checkApproval, getActualFile, getData, getErrorMessage, getId, getOldFileRelativeFilePath, getTemporaryFileName, isPublic, isUsed, run, saveRasterFile, setId, setOldRasterFile, setWorkerStatus, solveDependencies, toString |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final java.lang.String JENKS_BREAKS
private CJenksOptimalBreaksValues breaksValues
private java.lang.String description
private int numOfClasses
private static final java.lang.String NUM_OF_CLASSES
| Constructor Detail |
|---|
public CJenksOptimalBreaks()
| Method Detail |
|---|
public java.util.List<java.lang.String> getInfoDependencies()
getInfoDependencies in interface OptionFileChangergetInfoDependencies in class AbstractOptionFileChangerAbstractOptionFileChanger.getInfoDependencies()public CJenksOptimalBreaksValues getJenksOptimalBreaksValues()
public int getNumOfClasses()
getNumOfClasses in interface BreaksValuesBreaksValues.getNumOfClasses()public org.jdom.Element getOptionElement()
OptionFileChangerElement object that contains all
Information that should be saved in a configuration file.extensions.xml filegetOptionName correctly,
you can use this function to get the name.
Element optionElement = new Element(this.getOptionName());
There are TWO attributes which should ALWAYS be saved, the status of the
execution (Therefore the same boolean expression that should be used in
the method isUsed) and the id of the current optionFileChanger.
getOptionElement in interface OptionFileChangergetOptionElement in class AbstractOptionFileChangerElement with all contents that should be saved
in the Configuration File AbstractOptionFileChanger.used is the
boolean expression
optionElement.setAttribute("used",Boolean.toString(used));
Besides the used state, you can save what ever you want and it is
possible to use the complex methods that jdom gives you.
For example: creating subElements (insensa.optionfilechanger.OptionFileChanger.setInfos and
it can be fatal to use wrong keys
private final string XML_ATTR_USED = "used";
OptionFileChanger.getOptionElement()public java.lang.String getOptionName()
OptionFileChangerextensions.xml
or in EOption
getOptionName in interface OptionFileChangerOptionFileChanger.getOptionName()public int getUsableCount()
getUsableCount in interface OptionFileChangerOptionFileChanger.getUsableCount()public void setNumOfClasses(int numOfClasses)
setNumOfClasses in interface BreaksValuesBreaksValues.setNumOfClasses(int)
public void setOptionAttributes(org.jdom.Element eOption)
throws java.io.IOException
OptionFileChangergetOptionElement.
setOptionAttributes in interface OptionFileChangersetOptionAttributes in class AbstractOptionFileChangereOption - the jdom.Element which holds the attributes
java.io.IOException - eOption holds all information that was saved.
Attribute attrUsed = element.getAttribute(XML_ATTR_USED);
Attribute attrID = element.getAttribute(XML_ATTR_ID);
if(attrUsed==null || attrID==null)
throw new IOException("one ore more necessary attributes cannot be found");
try
{
used=attrUsed.getBooleanValue();
id=attrID.getIntegerValue();
}catch (DataConversionException e)
{
throw new IOException(e);
}
OptionFileChanger.setOptionAttributes(org.jdom.Element)
public void write()
throws java.io.IOException,
org.jdom.JDOMException,
CRasterFileException
OptionFileChanger
write in interface OptionFileChangerjava.io.IOException
org.jdom.JDOMException
CRasterFileException - AbstractOptionFileChanger.getActualFile()AbstractOptionFileChanger.solveDependencies(CRasterFileInformation)
CRasterFileInformation actualRasterFile = getActualRasterFile()
In the next step it is important to be sure that all
dependencies previously defined in
getInfoDependencies are available. the easiest way is
to use the method
AbstractOptionFileChanger.solveDependencies(CRasterFileInformation)
solveDependencies(actualRasterFile);
Lets assume we need the InfoReader minMaxValues.
CMinMaxValues minMaxValues = (CMinMaxValues)actualRasterFile.getInfoReader(EInfo.minMaxValue.toString());
if(minMaxValues==null)
throw new IOException("Can't solve minMaxValues")
If a WorkerStatus was defined we can tell it that the
progress began.
if(workerStatus!=null)
{
workerStatus.setProgressName("Starting replace zero");
workerStatus.startProcess();
}
Next we need to create a new temporary file as a copy of the
old file with a new name
Now we can get Excess to the gdal functions to create the data.String tmpName = getTemporaryFileName(actualRasterFile); CRasterFileInformation tmpRasterFile = new CRasterFileInformation(tmpName,actualRasterFile,false,false,false); int dataType = actualRasterFile.getBand().getDataType(); tmpRasterFile.createNewFile(actualRasterFile, dataType, actualRasterFile.getNoDataValue());seeCRasterFileInformation#CRasterFileInformation(String, CRasterFileInformation, boolean, boolean, boolean)andCRasterFile.createNewFile(insensa.CRasterFile, int, double)for more information
Band band = actualRasterFile.getBand();
Dataset tmpDataset = tmpRasterFile.getDataset();
int xSize = band.GetXSize();
int ySize = band.getYSize();
float steps = 100.0F/ySize;
float[] fData= new float[xSize];
float readData;
for(int i=0;i < ySize;i++)
{
band.ReadRaster(0,i,xSize,1,fData);
for(int j=0;j < fData.length;j++)
{
readData=fData[j];
if(readData==actualRasterFile.getNoDataValue())
{
}
else
{
if(readData <=0.0f)
fData[j]=0.5f;
}
}
processStatus+=steps;
if(workerStatus!=null)
workerStatus.refreshPercentage(processStatus);
tmpDataset.GetRasterBand(1).WriteRaster(0,i,xSize,1,fData);
}
tmpDataset.FlushCache();
band.FlushCache();
tmpDataset=null;
band=null;
At least it is necessary to save the temporary file and set
the execution status:
saveRasterFile(tmpRasterFile, actualRasterFile);
used=true;
OptionFileChanger.write()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||