root / trunk / extensions / extGeoreferencing / src / org / gvsig / georeferencing / process / geotransform / GeoTransformDataResult.java @ 18530
History | View | Annotate | Download (4.6 KB)
1 |
package org.gvsig.georeferencing.process.geotransform; |
---|---|
2 |
|
3 |
import org.gvsig.raster.datastruct.GeoPoint; |
4 |
|
5 |
/**
|
6 |
* Clase que representa el resultado de un GeoTransformProcess. Recoge todos los calculos realizados en
|
7 |
* un GeoTransformProcess y que la UI va a consumir.
|
8 |
* @author Alejandro Mu?oz Sanchez (alejandro.munoz@uclm.es)
|
9 |
* @version 20/1/2008
|
10 |
**/
|
11 |
|
12 |
public class GeoTransformDataResult { |
13 |
|
14 |
private double polxCoef []= null; |
15 |
private double polyCoef []= null; |
16 |
private double xError [] = null; |
17 |
private double yError [] = null; |
18 |
private GeoPoint gpcs[]= null; |
19 |
private double rms[]=null; |
20 |
private double rmsXTotal=0; |
21 |
private double rmsYTotal=0; |
22 |
private double rmsTotal=0; |
23 |
private double xEvaluate[] = null; |
24 |
private double yEvaluate[] = null; |
25 |
private int polynomialorden= 0; |
26 |
private int exp [][]=null; |
27 |
|
28 |
public GeoTransformDataResult(){}
|
29 |
|
30 |
|
31 |
/** @return lista de GeoPoint con que se efectuo la transformacion */
|
32 |
public GeoPoint[] getGpcs() { |
33 |
return gpcs;
|
34 |
} |
35 |
|
36 |
/**Asignaci?n de la lista de puntos*/
|
37 |
public void setGpcs(GeoPoint[] gpcs) { |
38 |
this.gpcs = gpcs;
|
39 |
} |
40 |
|
41 |
/**
|
42 |
* @retrun array con los coeficientes para las x.
|
43 |
* */
|
44 |
public double[] getPolxCoef() { |
45 |
return polxCoef;
|
46 |
} |
47 |
|
48 |
/**
|
49 |
* array con los coeficientes para las x.
|
50 |
* */
|
51 |
public void setPolxCoef(double[] polxCoef) { |
52 |
this.polxCoef = polxCoef;
|
53 |
} |
54 |
|
55 |
/**
|
56 |
* @retrun array con los coeficientes para las y.
|
57 |
* */
|
58 |
public double[] getPolyCoef() { |
59 |
return polyCoef;
|
60 |
} |
61 |
|
62 |
/**
|
63 |
* array con los coeficientes para las y.
|
64 |
* */
|
65 |
public void setPolyCoef(double[] polyCoef) { |
66 |
this.polyCoef = polyCoef;
|
67 |
} |
68 |
|
69 |
/**
|
70 |
* @return array con los rms para cada punto.
|
71 |
* */
|
72 |
public double[] getRms() { |
73 |
return rms;
|
74 |
} |
75 |
|
76 |
/**
|
77 |
* asignacion del vector con los rms para cada punto
|
78 |
* */
|
79 |
public void setRms(double[] rms) { |
80 |
this.rms = rms;
|
81 |
} |
82 |
|
83 |
/**
|
84 |
* @return array con los rms para cada punto
|
85 |
* */
|
86 |
public double getRmsTotal() { |
87 |
return rmsTotal;
|
88 |
} |
89 |
|
90 |
|
91 |
public void setRmsTotal(double rmsTotal) { |
92 |
this.rmsTotal = rmsTotal;
|
93 |
} |
94 |
|
95 |
|
96 |
/**
|
97 |
* @return error total cometido para las x
|
98 |
* */
|
99 |
public double getRmsXTotal() { |
100 |
return rmsXTotal;
|
101 |
} |
102 |
|
103 |
/**
|
104 |
* return error total cometido para las x
|
105 |
* */
|
106 |
public void setRmsXTotal(double rmsXTotal) { |
107 |
this.rmsXTotal = rmsXTotal;
|
108 |
} |
109 |
|
110 |
/**
|
111 |
* error total cometido para las y
|
112 |
* */
|
113 |
public double getRmsYTotal() { |
114 |
return rmsYTotal;
|
115 |
} |
116 |
|
117 |
/**
|
118 |
* return error total cometido para las y
|
119 |
* */
|
120 |
public void setRmsYTotal(double rmsYTotal) { |
121 |
this.rmsYTotal = rmsYTotal;
|
122 |
} |
123 |
|
124 |
/**
|
125 |
* @array con los errores cometidos para cada x
|
126 |
* */
|
127 |
public double[] getXError() { |
128 |
return xError;
|
129 |
} |
130 |
|
131 |
/**
|
132 |
* @array con los errores cometidos para cada x
|
133 |
* */
|
134 |
public void setXError(double[] error) { |
135 |
xError = error; |
136 |
} |
137 |
|
138 |
|
139 |
/**
|
140 |
*@return array con evaluacion de las coordenadas y de la lista de
|
141 |
*puntos de control.
|
142 |
* */
|
143 |
public double[] getXEvaluate() { |
144 |
return xEvaluate;
|
145 |
} |
146 |
|
147 |
|
148 |
/**
|
149 |
* resultado de la evaluacion del polinomio en las coord x de la lista de
|
150 |
* los puntos de control
|
151 |
* */
|
152 |
public void setXEvaluate(double[] evaluate) { |
153 |
xEvaluate = evaluate; |
154 |
} |
155 |
|
156 |
/**
|
157 |
* @array con los errores cometidos para cada y
|
158 |
* */
|
159 |
public double[] getYError() { |
160 |
return yError;
|
161 |
} |
162 |
|
163 |
/**
|
164 |
* array con los errores cometidos para cada x
|
165 |
* */
|
166 |
public void setYError(double[] error) { |
167 |
yError = error; |
168 |
} |
169 |
|
170 |
/**
|
171 |
*@return array con evaluacion de las coordenadas y de la lista de
|
172 |
*puntos de control.
|
173 |
* */
|
174 |
public double[] getYEvaluate() { |
175 |
return yEvaluate;
|
176 |
} |
177 |
|
178 |
/**
|
179 |
* resultado de la evaluacion del polinomio en las coord y de la lista de
|
180 |
* los puntos de control
|
181 |
* */
|
182 |
public void setYEvaluate(double[] evaluate) { |
183 |
yEvaluate = evaluate; |
184 |
} |
185 |
|
186 |
|
187 |
public int getPolynomialOrden() { |
188 |
return polynomialorden;
|
189 |
} |
190 |
|
191 |
|
192 |
public void setPolynomialOrden(int polynomialorden) { |
193 |
this.polynomialorden = polynomialorden;
|
194 |
} |
195 |
|
196 |
|
197 |
/**
|
198 |
* Funci?n que evalua el polinomio de transformaci?n para un punto especifico
|
199 |
* @param x coordenada x del punto
|
200 |
* @param y coordenada y del punto
|
201 |
* @return resultado de la evaluaci?n para x e y
|
202 |
* */
|
203 |
public double[] evaluate(double x, double y){ |
204 |
setExpPolinomial(); |
205 |
double eval[]= new double [2]; |
206 |
for(int i=0; i<polxCoef.length;i++) |
207 |
{ |
208 |
eval[0]+=polxCoef[i] * Math.pow(x, exp[i][0]) * Math.pow(y,exp[i][1]); |
209 |
eval[1]+=polyCoef[i] * Math.pow(x, exp[i][0]) * Math.pow(y, exp[i][0]); |
210 |
} |
211 |
return eval;
|
212 |
} |
213 |
|
214 |
|
215 |
private void setExpPolinomial(){ |
216 |
if(exp==null) |
217 |
{ |
218 |
int minGPC=(getPolynomialOrden()+1)*(getPolynomialOrden()+2)/2; |
219 |
exp=new int[minGPC][2]; |
220 |
for(int k=0; k<minGPC;k++) |
221 |
for (int i=0; i<=minGPC; i++) |
222 |
for(int j=0; j<=i; j++){ |
223 |
exp[k][0]=i-j;
|
224 |
exp[k][1]=j;
|
225 |
} |
226 |
|
227 |
} |
228 |
} |
229 |
|
230 |
} |