Revision 1055
org.gvsig.geoprocess/branches/refactor-2018/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/SextanteGeoProcessLibrary.java | ||
---|---|---|
25 | 25 |
|
26 | 26 |
import org.gvsig.andami.IconThemeHelper; |
27 | 27 |
import org.gvsig.fmap.dal.DALLibrary; |
28 |
import org.gvsig.fmap.dal.coverage.RasterLibrary; |
|
28 |
//import org.gvsig.fmap.dal.coverage.RasterLibrary;
|
|
29 | 29 |
import org.gvsig.fmap.mapcontext.MapContextLibrary; |
30 | 30 |
import org.gvsig.fmap.mapcontrol.MapControlLibrary; |
31 | 31 |
import org.gvsig.geoprocess.lib.api.GeoProcessLibrary; |
32 | 32 |
import org.gvsig.geoprocess.lib.api.GeoProcessLocator; |
33 | 33 |
import org.gvsig.i18n.Messages; |
34 |
import org.gvsig.raster.fmap.FmapRasterLibrary; |
|
34 |
//import org.gvsig.raster.fmap.FmapRasterLibrary;
|
|
35 | 35 |
import org.gvsig.tools.library.AbstractLibrary; |
36 | 36 |
import org.gvsig.tools.library.LibraryException; |
37 | 37 |
|
... | ... | |
51 | 51 |
require(DALLibrary.class); |
52 | 52 |
require(MapContextLibrary.class); |
53 | 53 |
require(MapControlLibrary.class); |
54 |
require(FmapRasterLibrary.class); |
|
55 |
require(RasterLibrary.class); |
|
54 |
//require(FmapRasterLibrary.class);
|
|
55 |
//require(RasterLibrary.class);
|
|
56 | 56 |
} |
57 | 57 |
|
58 | 58 |
@Override |
org.gvsig.geoprocess/branches/refactor-2018/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/SimpleTaskStatusDelegated.java | ||
---|---|---|
66 | 66 |
this.status.setAutoremove(true); |
67 | 67 |
} |
68 | 68 |
|
69 |
@Override |
|
69 | 70 |
public void addObserver(Observer o) { |
70 | 71 |
status.addObserver(o); |
71 | 72 |
} |
72 | 73 |
|
74 |
@Override |
|
73 | 75 |
public void deleteObserver(Observer o) { |
74 | 76 |
status.deleteObserver(o); |
75 | 77 |
} |
76 | 78 |
|
79 |
@Override |
|
77 | 80 |
public void deleteObservers() { |
78 | 81 |
status.deleteObservers(); |
79 | 82 |
} |
80 | 83 |
|
84 |
@Override |
|
81 | 85 |
public void setTittle(String tittle) { |
82 | 86 |
status.setTitle(tittle); |
83 | 87 |
} |
84 | 88 |
|
89 |
@Override |
|
85 | 90 |
public void setTitle(String title) { |
86 | 91 |
status.setTitle(title); |
87 | 92 |
} |
88 | 93 |
|
94 |
@Override |
|
89 | 95 |
public void message(String message) { |
90 | 96 |
status.message(message); |
91 | 97 |
if (this.monitor != null) { |
... | ... | |
93 | 99 |
} |
94 | 100 |
} |
95 | 101 |
|
102 |
@Override |
|
96 | 103 |
public void setRangeOfValues(long min, long max) { |
97 | 104 |
this.min = min; |
98 | 105 |
this.max = max; |
... | ... | |
102 | 109 |
} |
103 | 110 |
} |
104 | 111 |
|
112 |
@Override |
|
105 | 113 |
public void setCurValue(long value) { |
106 | 114 |
status.setCurValue(value); |
107 | 115 |
if (this.monitor != null) { |
... | ... | |
109 | 117 |
} |
110 | 118 |
} |
111 | 119 |
|
120 |
@Override |
|
112 | 121 |
public boolean isCancellationRequested() { |
113 | 122 |
return status.isCancellationRequested(); |
114 | 123 |
} |
115 | 124 |
|
125 |
@Override |
|
116 | 126 |
public void cancelRequest() { |
117 | 127 |
status.cancelRequest(); |
118 | 128 |
} |
119 | 129 |
|
130 |
@Override |
|
120 | 131 |
public void terminate() { |
121 | 132 |
status.terminate(); |
122 | 133 |
if (this.monitor != null) { |
... | ... | |
124 | 135 |
} |
125 | 136 |
} |
126 | 137 |
|
138 |
@Override |
|
127 | 139 |
public String getTitle() { |
128 | 140 |
return status.getTitle(); |
129 | 141 |
} |
130 | 142 |
|
143 |
@Override |
|
131 | 144 |
public void cancel() { |
132 | 145 |
status.cancel(); |
133 | 146 |
} |
134 | 147 |
|
148 |
@Override |
|
135 | 149 |
public String getCode() { |
136 | 150 |
return status.getCode(); |
137 | 151 |
} |
138 | 152 |
|
153 |
@Override |
|
139 | 154 |
public void abort() { |
140 | 155 |
status.abort(); |
141 | 156 |
if (this.monitor != null) { |
... | ... | |
143 | 158 |
} |
144 | 159 |
} |
145 | 160 |
|
161 |
@Override |
|
146 | 162 |
public int getCompleted() { |
147 | 163 |
return status.getCompleted(); |
148 | 164 |
} |
149 | 165 |
|
166 |
@Override |
|
150 | 167 |
public void remove() { |
151 | 168 |
status.remove(); |
152 | 169 |
} |
153 | 170 |
|
171 |
@Override |
|
154 | 172 |
public void add() { |
155 | 173 |
status.add(); |
156 | 174 |
} |
157 | 175 |
|
176 |
@Override |
|
158 | 177 |
public String getLabel() { |
159 | 178 |
return status.getLabel(); |
160 | 179 |
} |
161 | 180 |
|
181 |
@Override |
|
162 | 182 |
public void setCancellable(boolean cancellable) { |
163 | 183 |
status.setCancellable(cancellable); |
164 | 184 |
} |
... | ... | |
168 | 188 |
|| (monitor != null && monitor.isCanceled()); |
169 | 189 |
} |
170 | 190 |
|
191 |
@Override |
|
171 | 192 |
public void setAutoremove(boolean autoremove) { |
172 | 193 |
status.setAutoremove(autoremove); |
173 | 194 |
} |
174 | 195 |
|
196 |
@Override |
|
175 | 197 |
public boolean isAborted() { |
176 | 198 |
return status.isAborted(); |
177 | 199 |
} |
178 | 200 |
|
201 |
@Override |
|
179 | 202 |
public boolean isRunning() { |
180 | 203 |
return status.isRunning(); |
181 | 204 |
} |
182 | 205 |
|
206 |
@Override |
|
183 | 207 |
public boolean getAutoRemove() { |
184 | 208 |
return status.getAutoRemove(); |
185 | 209 |
} |
186 | 210 |
|
211 |
@Override |
|
187 | 212 |
public Date getLastModification() { |
188 | 213 |
return status.getLastModification(); |
189 | 214 |
} |
190 | 215 |
|
216 |
@Override |
|
191 | 217 |
public TaskStatusManager getManager() { |
192 | 218 |
return status.getManager(); |
193 | 219 |
} |
194 | 220 |
|
221 |
@Override |
|
195 | 222 |
public boolean isIndeterminate() { |
196 | 223 |
return status.isIndeterminate(); |
197 | 224 |
} |
198 | 225 |
|
226 |
@Override |
|
199 | 227 |
public boolean isCancellable() { |
200 | 228 |
return status.isCancellable(); |
201 | 229 |
} |
202 | 230 |
|
231 |
@Override |
|
203 | 232 |
public void pop() { |
204 | 233 |
status.pop(); |
205 | 234 |
} |
206 | 235 |
|
236 |
@Override |
|
207 | 237 |
public void push() { |
208 | 238 |
status.push(); |
209 | 239 |
} |
210 | 240 |
|
241 |
@Override |
|
211 | 242 |
public void setIndeterminate() { |
212 | 243 |
status.setIndeterminate(); |
213 | 244 |
} |
214 |
|
|
215 |
public void restart() { |
|
216 |
status.restart(); |
|
217 |
} |
|
218 | 245 |
|
219 | 246 |
} |
org.gvsig.geoprocess/branches/refactor-2018/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/SextanteGeoProcessManager.java | ||
---|---|---|
99 | 99 |
geoprocesses = new HashMap<String, GeoAlgorithm>(); |
100 | 100 |
} |
101 | 101 |
|
102 |
@Override |
|
102 | 103 |
public String getTranslation(String label) { |
103 | 104 |
// Just in case an algorithm is using a sextante label |
104 | 105 |
String text = i18nManager.getTranslation(label); |
105 | 106 |
return text == null ? Sextante.getText(label) : text; |
106 | 107 |
} |
107 | 108 |
|
109 |
@Override |
|
108 | 110 |
public void registerGeoProcess(GeoProcess geoProcess) { |
109 | 111 |
if (geoProcess instanceof GeoAlgorithm) { |
110 | 112 |
GeoAlgorithm geoAlgorithm = (GeoAlgorithm) geoProcess; |
... | ... | |
116 | 118 |
} |
117 | 119 |
} |
118 | 120 |
|
121 |
@Override |
|
119 | 122 |
public void registerGeoProcess(Class<? extends GeoProcess> geoProcessClazz, |
120 | 123 |
Map<String, String> localeStrings) { |
121 | 124 |
try { |
... | ... | |
132 | 135 |
} |
133 | 136 |
} |
134 | 137 |
|
138 |
@Override |
|
135 | 139 |
public void initialize() { |
136 | 140 |
// Nothing to do |
137 | 141 |
} |
138 | 142 |
|
143 |
@Override |
|
139 | 144 |
public String getName() { |
140 | 145 |
return Messages.getText("gv_algorithms"); |
141 | 146 |
} |
142 | 147 |
|
148 |
@Override |
|
143 | 149 |
public HashMap<String, GeoAlgorithm> getAlgorithms() { |
144 | 150 |
return new HashMap<String, GeoAlgorithm>(geoprocesses); |
145 | 151 |
} |
146 | 152 |
|
153 |
@Override |
|
147 | 154 |
public HashMap<String, Class> getCustomModelerParameterPanels() { |
148 | 155 |
final HashMap<String, Class> map = new HashMap<String, Class>(); |
149 | 156 |
final Set<String> set = getAlgorithms().keySet(); |
... | ... | |
155 | 162 |
return map; |
156 | 163 |
} |
157 | 164 |
|
165 |
@Override |
|
158 | 166 |
public HashMap<String, Class> getCustomParameterPanels() { |
159 | 167 |
final HashMap<String, Class> map = new HashMap<String, Class>(); |
160 | 168 |
final Set<Entry<String, GeoAlgorithm>> set = getAlgorithms().entrySet(); |
... | ... | |
175 | 183 |
return map; |
176 | 184 |
} |
177 | 185 |
|
186 |
@Override |
|
178 | 187 |
public ImageIcon getIcon() { |
179 | 188 |
return IconThemeHelper.getImageIcon("gvsig-icon16x16"); |
180 | 189 |
} |
181 | 190 |
|
191 |
@Override |
|
182 | 192 |
public Setting getSettings() { |
183 | 193 |
return new GeoprocessSetting(); |
184 | 194 |
} |
185 | 195 |
|
196 |
@Override |
|
186 | 197 |
public void update() { |
187 | 198 |
// Nothing to do |
188 | 199 |
} |
189 | 200 |
|
201 |
@Override |
|
190 | 202 |
public Object getAlgorithmHelp(GeoAlgorithm alg) { |
191 | 203 |
String algName = alg.getClass().getSimpleName(); |
192 | 204 |
String helpFileName = |
... | ... | |
388 | 400 |
return doc.getHTMLCode(); |
389 | 401 |
} |
390 | 402 |
|
403 |
@Override |
|
391 | 404 |
public String getAlgorithmHelpFilename(GeoAlgorithm alg, |
392 | 405 |
boolean bForceCurrentLocale) { |
393 | 406 |
// TODO Auto-generated method stub |
394 | 407 |
return null; |
395 | 408 |
} |
396 | 409 |
|
410 |
@Override |
|
397 | 411 |
public boolean canEditHelp() { |
398 | 412 |
return false; |
399 | 413 |
} |
... | ... | |
504 | 518 |
|
505 | 519 |
} |
506 | 520 |
|
521 |
@Override |
|
507 | 522 |
public HashMap<NameAndIcon, ArrayList<ToolboxAction>> getToolboxActions() { |
508 | 523 |
return new HashMap<NameAndIcon, ArrayList<ToolboxAction>>(); |
509 | 524 |
} |
510 | 525 |
|
511 | 526 |
|
527 |
@Override |
|
512 | 528 |
public IToolboxRightButtonAction[] getToolboxRightButtonActions() { |
513 | 529 |
return new IToolboxRightButtonAction[0]; |
514 | 530 |
} |
org.gvsig.geoprocess/branches/refactor-2018/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/dataObjects/DALIFeatureIterator.java | ||
---|---|---|
43 | 43 |
import org.gvsig.fmap.dal.feature.FeatureSet; |
44 | 44 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
45 | 45 |
import org.gvsig.fmap.dal.feature.FeatureType; |
46 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
|
47 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
|
46 | 48 |
import org.gvsig.fmap.geom.operation.tojts.ToJTS; |
47 | 49 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
48 | 50 |
import org.gvsig.tools.dispose.DisposableIterator; |
... | ... | |
104 | 106 |
} |
105 | 107 |
|
106 | 108 |
boolean bFound = false; |
107 |
; |
|
108 | 109 |
while (!bFound && m_FeatureIterator.hasNext()) { |
109 | 110 |
try { |
110 | 111 |
final Feature f = (Feature) m_FeatureIterator.next(); |
111 |
final org.gvsig.fmap.geom.Geometry geometry =
|
|
112 |
f.getDefaultGeometry();
|
|
112 |
final org.gvsig.fmap.geom.Geometry geometry;
|
|
113 |
geometry = f.getDefaultGeometry();
|
|
113 | 114 |
final Geometry geom = |
114 | 115 |
(Geometry) geometry.invokeOperation(ToJTS.CODE, null); |
115 | 116 |
final FeatureType type = f.getType(); |
116 | 117 |
@SuppressWarnings("unchecked") |
117 |
final Iterator<FeatureAttributeDescriptor> iter =
|
|
118 |
type.iterator();
|
|
118 |
final Iterator<FeatureAttributeDescriptor> iter;
|
|
119 |
iter = type.iterator();
|
|
119 | 120 |
final List<Object> objects = new ArrayList<Object>(); |
120 | 121 |
while (iter.hasNext()) { |
121 | 122 |
final FeatureAttributeDescriptor descriptor = iter.next(); |
... | ... | |
134 | 135 |
m_CurrentValue = feature; |
135 | 136 |
m_bIsNextConsumed = false; |
136 | 137 |
} |
137 |
} catch (final Exception e) { |
|
138 |
} catch (final GeometryOperationException e) {
|
|
138 | 139 |
Sextante.addErrorToLog(e); |
139 | 140 |
return false; |
141 |
} catch (final GeometryOperationNotSupportedException e) { |
|
142 |
Sextante.addErrorToLog(e); |
|
143 |
return false; |
|
140 | 144 |
} |
141 | 145 |
} |
142 | 146 |
if (!bFound) { |
... | ... | |
145 | 149 |
return bFound; |
146 | 150 |
} |
147 | 151 |
|
152 |
@Override |
|
148 | 153 |
public IFeature next() { |
149 | 154 |
|
150 | 155 |
if (!m_bIsNextConsumed) { |
... | ... | |
162 | 167 |
throw new NoSuchElementException(); |
163 | 168 |
} |
164 | 169 |
|
170 |
@Override |
|
165 | 171 |
public boolean hasNext() { |
166 | 172 |
|
167 | 173 |
if (m_bFinished) { |
... | ... | |
176 | 182 |
|
177 | 183 |
} |
178 | 184 |
|
185 |
@Override |
|
179 | 186 |
public void close() { |
180 | 187 |
} |
181 | 188 |
|
org.gvsig.geoprocess/branches/refactor-2018/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/dataObjects/FileTools.java | ||
---|---|---|
26 | 26 |
import java.io.File; |
27 | 27 |
|
28 | 28 |
import es.unex.sextante.core.Sextante; |
29 |
import java.util.logging.Level; |
|
30 |
import java.util.logging.Logger; |
|
29 | 31 |
|
30 | 32 |
import org.cresques.cts.IProjection; |
31 | 33 |
import org.gvsig.app.ApplicationLocator; |
... | ... | |
35 | 37 |
import org.gvsig.app.project.documents.table.TableManager; |
36 | 38 |
import org.gvsig.fmap.dal.DALLocator; |
37 | 39 |
import org.gvsig.fmap.dal.DataManager; |
40 |
import org.gvsig.fmap.dal.DataServerExplorer; |
|
41 |
import org.gvsig.fmap.dal.DataServerExplorerParameters; |
|
42 |
import org.gvsig.fmap.dal.DataStore; |
|
38 | 43 |
import org.gvsig.fmap.dal.DataStoreParameters; |
39 |
import org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters; |
|
44 |
import org.gvsig.fmap.dal.NewDataStoreParameters; |
|
45 |
import org.gvsig.fmap.dal.exception.DataException; |
|
46 |
import org.gvsig.fmap.dal.exception.InitializeException; |
|
47 |
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException; |
|
48 |
import org.gvsig.fmap.dal.exception.ValidateDataParametersException; |
|
40 | 49 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
50 |
import org.gvsig.fmap.dal.raster.api.NewRasterStoreParameters; |
|
51 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorer; |
|
41 | 52 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters; |
42 |
import org.gvsig.fmap.dal.store.dbf.DBFStoreParameters; |
|
43 |
import org.gvsig.fmap.dal.store.dbf.DBFStoreProvider; |
|
44 | 53 |
import org.gvsig.fmap.mapcontext.MapContextLocator; |
54 |
import org.gvsig.fmap.mapcontext.exceptions.LoadLayerException; |
|
45 | 55 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
46 | 56 |
|
47 | 57 |
public class FileTools { |
... | ... | |
51 | 61 |
public final static String[] RASTER_EXT_IN = { "tif", "asc", "dat", "tiff", |
52 | 62 |
"bmp", "gif", "img", "jpg", "png", "vrt", "lan", "gis", "pix", "aux", |
53 | 63 |
"adf", "mpr", "mpl", "map", "hdr" }; |
54 |
public final static String[] RASTER_DRIVERS_IN = { "RasterStore", |
|
55 |
"RasterStore", "RasterStore", "RasterStore", "RasterStore", |
|
56 |
"RasterStore", "RasterStore", "RasterStore", "RasterStore", |
|
57 |
"RasterStore", "RasterStore", "RasterStore", "RasterStore", |
|
58 |
"RasterStore", "RasterStore", "RasterStore", "RasterStore", |
|
59 |
"RasterStore", "RasterStore" }; |
|
64 |
// public final static String[] RASTER_DRIVERS_IN = { "RasterStore",
|
|
65 |
// "RasterStore", "RasterStore", "RasterStore", "RasterStore",
|
|
66 |
// "RasterStore", "RasterStore", "RasterStore", "RasterStore",
|
|
67 |
// "RasterStore", "RasterStore", "RasterStore", "RasterStore",
|
|
68 |
// "RasterStore", "RasterStore", "RasterStore", "RasterStore",
|
|
69 |
// "RasterStore", "RasterStore" };
|
|
60 | 70 |
|
61 | 71 |
public final static String[] VECTOR_EXT_IN = { "shp", "gml", "dxf", "dgn", |
62 | 72 |
"dwg" }; |
... | ... | |
68 | 78 |
public static final String[] LAYERS_EXT_IN = { "tif", "asc", "dat", "tiff", |
69 | 79 |
"bmp", "gif", "img", "jpg", "png", "vrt", "lan", "gis", "pix", "aux", |
70 | 80 |
"adf", "mpr", "mpl", "map", "shp", "gml", "dxf", "dgn", "dwg" }; |
71 |
public static final String[] LAYER_DRIVERS_IN = { "Gdal Store", |
|
72 |
"Gdal Store", "Gdal Store", "Gdal Store", "Gdal Store", "Gdal Store", |
|
73 |
"Gdal Store", "Gdal Store", "Gdal Store", "Gdal Store", "Gdal Store", |
|
74 |
"Gdal Store", "Gdal Store", "Gdal Store", "Gdal Store", "Gdal Store", |
|
75 |
"Gdal Store", "Gdal Store", "Shape", "GML", "DXF", "DGN", "DWG" }; |
|
76 |
public static final boolean[] LAYER_RASTER = { true, true, true, true, |
|
77 |
true, true, true, true, true, true, true, true, true, true, true, true, |
|
78 |
true, true, false, false, false, false, false, }; |
|
81 |
// public static final String[] LAYER_DRIVERS_IN = { "Gdal Store",
|
|
82 |
// "Gdal Store", "Gdal Store", "Gdal Store", "Gdal Store", "Gdal Store",
|
|
83 |
// "Gdal Store", "Gdal Store", "Gdal Store", "Gdal Store", "Gdal Store",
|
|
84 |
// "Gdal Store", "Gdal Store", "Gdal Store", "Gdal Store", "Gdal Store",
|
|
85 |
// "Gdal Store", "Gdal Store", "Shape", "GML", "DXF", "DGN", "DWG" };
|
|
86 |
// public static final boolean[] LAYER_RASTER = { true, true, true, true,
|
|
87 |
// true, true, true, true, true, true, true, true, true, true, true, true,
|
|
88 |
// true, true, false, false, false, false, false, };
|
|
79 | 89 |
|
80 | 90 |
public static FLayer openLayer(final String sFilename, |
81 |
final String sName, final IProjection projection) { |
|
91 |
final String sName, final IProjection projection) {
|
|
82 | 92 |
|
83 |
final String sExtension = |
|
84 |
sFilename.substring(sFilename.lastIndexOf('.') + 1, |
|
85 |
sFilename.length()); |
|
93 |
try { |
|
86 | 94 |
|
87 |
for (int i = 0; i < LAYERS_EXT_IN.length; i++) { |
|
88 |
if (sExtension.equals(LAYERS_EXT_IN[i])) { |
|
89 |
try { |
|
90 |
FLayer layer; |
|
91 |
final DataManager dm = DALLocator.getDataManager(); |
|
92 |
final DataStoreParameters params = |
|
93 |
dm.createStoreParameters(FileTools.LAYER_DRIVERS_IN[i]); |
|
94 |
((FilesystemStoreParameters) params).setFile(new File(sFilename)); |
|
95 |
|
|
96 |
if(!(params instanceof RasterDataParameters)) { |
|
97 |
params.setDynValue("crs", projection); |
|
98 |
} |
|
99 |
layer = MapContextLocator.getMapContextManager().createLayer(sName, params); |
|
100 |
|
|
101 |
if ((layer != null) && layer.isAvailable()) { |
|
102 |
return layer; |
|
103 |
} else { |
|
104 |
return null; |
|
105 |
} |
|
106 |
} catch (final Exception e) { |
|
107 |
Sextante.addErrorToLog(e); |
|
108 |
return null; |
|
109 |
} |
|
95 |
final DataManager dm = DALLocator.getDataManager(); |
|
96 |
DataServerExplorerParameters serverParameters = dm.createServerExplorerParameters(FilesystemServerExplorer.NAME); |
|
97 |
FilesystemServerExplorer server = (FilesystemServerExplorer) dm.openServerExplorer(FilesystemServerExplorer.NAME, serverParameters); |
|
98 |
File file = new File(sFilename); |
|
99 |
DataStoreParameters parameters = server.createStoreParameters(file); |
|
100 |
if (!(parameters instanceof NewRasterStoreParameters)) { |
|
101 |
parameters.setDynValue("crs", projection); |
|
110 | 102 |
} |
103 |
DataStore store = dm.openStore(parameters.getDataStoreName(), parameters); |
|
104 |
FLayer layer = MapContextLocator.getMapContextManager().createLayer(sName, store); |
|
105 |
if ((layer != null) && layer.isAvailable()) { |
|
106 |
return layer; |
|
107 |
} else { |
|
108 |
return null; |
|
109 |
} |
|
110 |
} catch (Exception e) { |
|
111 |
Sextante.addErrorToLog(e); |
|
111 | 112 |
} |
112 | 113 |
return null; |
113 | 114 |
} |
... | ... | |
117 | 118 |
final DataManager dm = DALLocator.getDataManager(); |
118 | 119 |
try { |
119 | 120 |
DataStoreParameters storeParameters = |
120 |
dm.createStoreParameters(DBFStoreProvider.NAME); |
|
121 |
storeParameters.setDynValue( |
|
122 |
DBFStoreParameters.DBFFILE_PARAMTER_NAME, sFilename); |
|
121 |
dm.createStoreParameters("DBF"); |
|
122 |
storeParameters.setDynValue("dbfFile", sFilename); |
|
123 | 123 |
final FeatureStore store = |
124 |
(FeatureStore) dm.openStore(DBFStoreProvider.NAME, |
|
125 |
storeParameters); |
|
124 |
(FeatureStore) dm.openStore("DBF",storeParameters); |
|
126 | 125 |
final TableDocument pt = |
127 | 126 |
(TableDocument) ProjectManager.getInstance().createDocument( |
128 | 127 |
TableManager.TYPENAME, sName); |
... | ... | |
132 | 131 |
Sextante.addErrorToLog(e); |
133 | 132 |
return null; |
134 | 133 |
} |
135 |
} |
|
134 |
}
|
|
136 | 135 |
|
137 | 136 |
public static Object open(final String sFilename) { |
138 | 137 |
|
org.gvsig.geoprocess/branches/refactor-2018/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/dataObjects/FLyrRasterIRasterLayer.java | ||
---|---|---|
28 | 28 |
|
29 | 29 |
import org.gvsig.fmap.dal.DALLocator; |
30 | 30 |
import org.gvsig.fmap.dal.DataManager; |
31 |
import org.gvsig.fmap.dal.coverage.RasterLocator; |
|
32 |
import org.gvsig.fmap.dal.coverage.RasterManager; |
|
33 |
import org.gvsig.fmap.dal.coverage.dataset.Buffer; |
|
34 |
import org.gvsig.fmap.dal.coverage.datastruct.Extent; |
|
35 |
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException; |
|
36 |
import org.gvsig.fmap.dal.coverage.exception.QueryException; |
|
37 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
|
38 |
import org.gvsig.fmap.dal.coverage.store.RasterQuery; |
|
39 |
import org.gvsig.fmap.dal.coverage.store.parameter.RasterFileStoreParameters; |
|
40 |
import org.gvsig.fmap.dal.exception.CloseException; |
|
31 |
|
|
41 | 32 |
import org.gvsig.fmap.dal.exception.InitializeException; |
42 | 33 |
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException; |
43 | 34 |
import org.gvsig.fmap.dal.exception.ValidateDataParametersException; |
44 | 35 |
import org.gvsig.fmap.mapcontext.exceptions.LoadLayerException; |
45 |
import org.gvsig.raster.fmap.layers.DefaultFLyrRaster; |
|
46 |
import org.gvsig.raster.fmap.layers.FLyrRaster; |
|
47 | 36 |
|
48 | 37 |
import es.unex.sextante.core.AnalysisExtent; |
49 | 38 |
import es.unex.sextante.core.Sextante; |
50 | 39 |
import es.unex.sextante.dataObjects.AbstractRasterLayer; |
51 | 40 |
import es.unex.sextante.outputs.IOutputChannel; |
41 |
import org.gvsig.fmap.dal.exception.DataException; |
|
42 |
import org.gvsig.fmap.dal.raster.api.BandDescriptor; |
|
43 |
import org.gvsig.fmap.dal.raster.api.NewRasterStoreParameters; |
|
44 |
import org.gvsig.fmap.dal.raster.api.RasterQuery; |
|
45 |
import org.gvsig.fmap.dal.raster.api.RasterStore; |
|
46 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
47 |
import org.gvsig.fmap.geom.exception.CreateEnvelopeException; |
|
48 |
import org.gvsig.fmap.geom.primitive.Envelope; |
|
49 |
import org.gvsig.fmap.mapcontext.MapContextLocator; |
|
50 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
|
51 |
import org.gvsig.fmap.mapcontext.raster.api.RasterLayer; |
|
52 |
import org.gvsig.fmap.mapcontext.raster.impl.DefaultRasterLayer; |
|
53 |
import org.gvsig.raster.lib.buffer.api.Buffer; |
|
54 |
import org.gvsig.raster.lib.buffer.api.BufferManager; |
|
55 |
import org.gvsig.raster.lib.buffer.api.NoData; |
|
56 |
import org.gvsig.tools.dispose.DisposeUtils; |
|
57 |
import org.gvsig.tools.locator.LocatorException; |
|
52 | 58 |
|
53 | 59 |
/** |
54 | 60 |
* A wrapper for a gvSIG Raster layer. Allows only reading, but not writing to |
... | ... | |
58 | 64 |
* |
59 | 65 |
*/ |
60 | 66 |
public class FLyrRasterIRasterLayer extends AbstractRasterLayer { |
61 |
private FLyrRaster lyr = null;
|
|
67 |
private RasterLayer lyr = null;
|
|
62 | 68 |
private Buffer m_Buffer = null; |
63 | 69 |
private int xTranslate = 0; |
64 | 70 |
private int yTranslate = 0; |
... | ... | |
73 | 79 |
this.fName = fName; |
74 | 80 |
} |
75 | 81 |
|
76 |
public void create(final FLyrRaster lyr) {
|
|
82 |
public void create(final RasterLayer lyr) {
|
|
77 | 83 |
this.lyr = lyr; |
78 | 84 |
} |
79 | 85 |
|
80 |
private RasterDataStore getDataStore() {
|
|
81 |
return lyr == null ? null : lyr.getDataStore();
|
|
86 |
private RasterStore getDataStore() { |
|
87 |
return lyr == null ? null : lyr.getRasterStore();
|
|
82 | 88 |
} |
83 | 89 |
|
90 |
@Override |
|
84 | 91 |
public int getDataType() { |
85 |
return getDataStore().getDataType()[0];
|
|
92 |
return getDataStore().getBandDescriptor(0).getDataType();
|
|
86 | 93 |
} |
87 | 94 |
|
95 |
@Override |
|
88 | 96 |
public void setCellValue(final int x, final int y, final int iBand, |
89 | 97 |
final double dValue) { |
90 | 98 |
} |
91 | 99 |
|
100 |
@Override |
|
92 | 101 |
public void setNoDataValue(final double dNoDataValue) { |
93 |
getDataStore().getNoDataValue().setValue(Double.valueOf(dNoDataValue)); |
|
102 |
//TODO aplicar a todas las bandas |
|
103 |
getDataStore().getBandDescriptor(0).getNoData().setValue(dNoDataValue); |
|
94 | 104 |
} |
95 | 105 |
|
96 | 106 |
@Override |
... | ... | |
98 | 108 |
|
99 | 109 |
} |
100 | 110 |
|
111 |
@Override |
|
101 | 112 |
public double getNoDataValue() { |
102 |
if(getDataStore().getNoDataValue().getValue() != null) |
|
103 |
return getDataStore().getNoDataValue().getValue().doubleValue(); |
|
113 |
NoData noData = getDataStore().getBandDescriptor(0).getNoData(); |
|
114 |
if(noData!=null && noData.getValue() != null) |
|
115 |
return noData.getValue().doubleValue(); |
|
104 | 116 |
return -99999.0; |
105 | 117 |
} |
106 | 118 |
|
119 |
@Override |
|
107 | 120 |
public double getCellValueInLayerCoords(final int x, final int y, |
108 | 121 |
final int iBand) { |
109 | 122 |
int newx = x - xTranslate; |
110 | 123 |
int newy = y - yTranslate; |
111 | 124 |
if(m_Buffer == null) |
112 | 125 |
open(); |
126 |
|
|
113 | 127 |
if (m_Buffer.isInside(newx, newy)) { |
114 |
switch (getDataStore().getDataType()[0]) {
|
|
115 |
case Buffer.TYPE_BYTE: |
|
116 |
return (m_Buffer.getElemByte(newy, newx, iBand) & 0xff);
|
|
117 |
case Buffer.TYPE_SHORT: |
|
118 |
return m_Buffer.getElemShort(newy, newx, iBand);
|
|
119 |
case Buffer.TYPE_INT: |
|
120 |
return m_Buffer.getElemInt(newy, newx, iBand);
|
|
121 |
case Buffer.TYPE_FLOAT: |
|
122 |
return m_Buffer.getElemFloat(newy, newx, iBand);
|
|
123 |
case Buffer.TYPE_DOUBLE: |
|
128 |
switch (getDataStore().getBandDescriptor(iBand).getDataType()) {
|
|
129 |
case BufferManager.TYPE_BYTE:
|
|
130 |
return (m_Buffer.getBandByte(iBand).getValue(newx, newy) & 0xff);
|
|
131 |
case BufferManager.TYPE_SHORT:
|
|
132 |
return m_Buffer.getBandShort(iBand).getValue(newx, newy);
|
|
133 |
case BufferManager.TYPE_INT:
|
|
134 |
return m_Buffer.getBandInt(iBand).getValue(newx, newy);
|
|
135 |
case BufferManager.TYPE_FLOAT:
|
|
136 |
return m_Buffer.getBandFloat(iBand).getValue(newx, newy);
|
|
137 |
case BufferManager.TYPE_DOUBLE:
|
|
124 | 138 |
default: |
125 |
return m_Buffer.getElemDouble(newy, newx, iBand); |
|
126 |
} |
|
139 |
return m_Buffer.getBandFloat(iBand).getValue(newx, newy); } |
|
127 | 140 |
} else { |
128 | 141 |
return getNoDataValue(); |
129 | 142 |
} |
130 | 143 |
} |
131 | 144 |
|
145 |
@Override |
|
132 | 146 |
public int getBandsCount() { |
133 |
return getDataStore().getBandCount();
|
|
147 |
return getDataStore().getBands();
|
|
134 | 148 |
} |
135 | 149 |
|
150 |
@Override |
|
136 | 151 |
public String getName() { |
137 | 152 |
if(lyr != null) { |
138 | 153 |
return lyr.getName(); |
... | ... | |
148 | 163 |
return null; |
149 | 164 |
} |
150 | 165 |
|
166 |
@Override |
|
151 | 167 |
public void postProcess() { |
152 | 168 |
|
153 | 169 |
} |
154 | 170 |
|
171 |
@Override |
|
155 | 172 |
public void open() { |
156 | 173 |
if(getDataStore() == null) |
157 |
setBaseDataObject(fName); |
|
158 |
RasterQuery query = RasterLocator.getManager().createQuery(); |
|
159 |
query.setAllDrawableBands(); |
|
174 |
try { |
|
175 |
setBaseDataObject(fName); |
|
176 |
} catch (LoadLayerException e) { |
|
177 |
Sextante.addErrorToLog(e); |
|
178 |
} catch (ValidateDataParametersException e) { |
|
179 |
Sextante.addErrorToLog(e); |
|
180 |
} |
|
181 |
RasterQuery query = getDataStore().createRasterQuery(); |
|
160 | 182 |
try { |
161 |
query.setAreaOfInterest(); |
|
162 |
query.setReadOnly(true); |
|
163 |
m_Buffer = getDataStore().query(query); |
|
164 |
} catch (QueryException e) { |
|
165 |
Sextante.addErrorToLog(e); |
|
166 |
} catch (ProcessInterruptedException e) { |
|
167 |
Sextante.addErrorToLog(e); |
|
168 |
} |
|
183 |
m_Buffer = getDataStore().getRasterSet(query); |
|
184 |
} catch (DataException e) { |
|
185 |
Sextante.addErrorToLog(e); |
|
186 |
} |
|
169 | 187 |
} |
170 | 188 |
|
189 |
@Override |
|
171 | 190 |
public void close() { |
172 | 191 |
if(m_Buffer != null) |
173 | 192 |
m_Buffer.dispose(); |
174 | 193 |
} |
175 | 194 |
|
195 |
@Override |
|
176 | 196 |
public Rectangle2D getFullExtent() { |
177 |
return getDataStore().getExtent().toRectangle2D(); |
|
197 |
try { |
|
198 |
return getDataStore().getEnvelope().getGeometry().getBounds().getBounds2D(); |
|
199 |
} catch (DataException e) { |
|
200 |
Sextante.addErrorToLog(e); |
|
201 |
return null; |
|
202 |
} catch (LocatorException e) { |
|
203 |
Sextante.addErrorToLog(e); |
|
204 |
return null; |
|
205 |
} catch (CreateEnvelopeException e) { |
|
206 |
Sextante.addErrorToLog(e); |
|
207 |
return null; |
|
208 |
} |
|
209 |
|
|
178 | 210 |
} |
179 | 211 |
|
212 |
@Override |
|
180 | 213 |
public AnalysisExtent getLayerGridExtent() { |
181 | 214 |
if(layerExtent == null) { |
182 | 215 |
try { |
183 | 216 |
layerExtent = new AnalysisExtent(); |
184 |
layerExtent.setCellSize(getDataStore().getCellSize()); |
|
185 |
Extent bbox = getDataStore().getExtent(); |
|
186 |
layerExtent.setXRange(bbox.getMin().getX(), bbox.getMax().getX(), true); |
|
187 |
layerExtent.setYRange(bbox.getMin().getY(), bbox.getMax().getY(), true); |
|
188 |
} catch (final Exception e) { |
|
189 |
return null; |
|
190 |
} |
|
217 |
layerExtent.setCellSize(getLayerCellSize()); |
|
218 |
Envelope bbox = getDataStore().getEnvelope(); |
|
219 |
layerExtent.setXRange(bbox.getLowerCorner().getX(), bbox.getUpperCorner().getX(), true); |
|
220 |
layerExtent.setYRange(bbox.getLowerCorner().getY(), bbox.getUpperCorner().getY(), true); |
|
221 |
} catch (final DataException e) { |
|
222 |
Sextante.addErrorToLog(e); |
|
223 |
} catch (final CreateEnvelopeException e) { |
|
224 |
Sextante.addErrorToLog(e); layerExtent = new AnalysisExtent(); |
|
225 |
} catch (final LocatorException e) { |
|
226 |
Sextante.addErrorToLog(e); |
|
227 |
} |
|
191 | 228 |
} |
192 | 229 |
return layerExtent; |
193 | 230 |
} |
194 | 231 |
|
232 |
@Override |
|
195 | 233 |
public void setWindowExtent(final AnalysisExtent extent) { |
196 | 234 |
super.setWindowExtent(extent); |
197 | 235 |
|
198 |
RasterManager rManager = RasterLocator.getManager(); |
|
199 |
RasterQuery query = rManager.createQuery(); |
|
200 |
query.setReadOnly(true); |
|
201 |
int[] bands = new int[getDataStore().getBandCount()]; |
|
202 |
for (int i = 0; i < getDataStore().getBandCount(); i++) { |
|
203 |
bands[i] = i; |
|
204 |
} |
|
205 |
query.setDrawableBands(bands); |
|
206 |
Extent ext = RasterLocator.getManager().getDataStructFactory().createExtent( |
|
207 |
extent.getXMin(), |
|
208 |
extent.getYMax(), |
|
209 |
extent.getXMax(), |
|
210 |
extent.getYMin()); |
|
211 |
query.setAreaOfInterest(ext, extent.getNX(), extent.getNY()); |
|
236 |
RasterQuery query = getDataStore().createRasterQuery(); |
|
237 |
//int[] bands = new int[getDataStore().getBands()]; |
|
238 |
//for (int i = 0; i < getDataStore().getBands(); i++) { |
|
239 |
// bands[i] = i; |
|
240 |
// } |
|
241 |
//query.setDrawableBands(bands); |
|
242 |
|
|
243 |
Envelope ext; |
|
244 |
try { |
|
245 |
ext = GeometryLocator.getGeometryManager().createEnvelope( |
|
246 |
extent.getXMin(), |
|
247 |
extent.getYMax(), |
|
248 |
extent.getXMax(), |
|
249 |
extent.getYMin(), |
|
250 |
2); |
|
251 |
} catch (CreateEnvelopeException e) { |
|
252 |
Sextante.addErrorToLog(e); |
|
253 |
ext = null; |
|
254 |
} |
|
255 |
query.setClip(ext); |
|
212 | 256 |
Buffer entireBuf = m_Buffer; |
213 | 257 |
try { |
214 |
m_Buffer = getDataStore().query(query);
|
|
258 |
m_Buffer = getDataStore().getRasterSet(query);
|
|
215 | 259 |
//Calculamos la traslaci?n respecto a la ventana recortada pq Sextante pedir? |
216 | 260 |
//p?xeles en relaci?n a la imagen completa |
217 |
Extent bbox = getDataStore().getExtent(); |
|
218 |
double distx = extent.getXMin() - bbox.getMin().getX(); |
|
219 |
double disty = bbox.getMax().getY() - extent.getYMax(); |
|
261 |
Rectangle2D bbox = getDataStore().getEnvelope().getGeometry().getBounds().getBounds2D(); |
|
262 |
double distx; |
|
263 |
distx = extent.getXMin() - bbox.getMinX(); |
|
264 |
double disty = bbox.getMaxY() - extent.getYMax(); |
|
220 | 265 |
xTranslate = (int)Math.round((distx * extent.getNX()) / (extent.getXMax() - extent.getXMin())); |
221 | 266 |
yTranslate = (int)Math.round((disty * extent.getNY()) / (extent.getYMax() - extent.getYMin())); |
222 |
} catch (QueryException e) { |
|
223 |
m_Buffer = entireBuf; |
|
224 |
} catch (ProcessInterruptedException e) { |
|
225 |
} |
|
267 |
} catch (final Exception e) { |
|
268 |
m_Buffer = entireBuf; |
|
269 |
} |
|
226 | 270 |
} |
227 | 271 |
|
272 |
@Override |
|
228 | 273 |
public double getLayerCellSize() { |
229 |
return getDataStore().getCellSize(); |
|
274 |
try { |
|
275 |
//return getDataStore().getCellSize(); |
|
276 |
return getDataStore().getDimensions().getPixelSizeX(); |
|
277 |
} catch (InitializeException e) { |
|
278 |
Sextante.addErrorToLog(e); |
|
279 |
} |
|
280 |
return 0; |
|
230 | 281 |
} |
231 | 282 |
|
283 |
@Override |
|
232 | 284 |
public Object getCRS() { |
233 |
return getDataStore().getProjection(); |
|
285 |
try { |
|
286 |
return getDataStore().getRasterSet().getProjection(); |
|
287 |
} catch (DataException e) { |
|
288 |
Sextante.addErrorToLog(e); |
|
289 |
} |
|
290 |
return null; |
|
234 | 291 |
} |
235 | 292 |
|
293 |
@Override |
|
236 | 294 |
public void setName(final String name) { |
237 | 295 |
lyr.setName(name); |
238 | 296 |
} |
239 | 297 |
|
298 |
@Override |
|
240 | 299 |
public void free() { |
241 |
if(m_Buffer != null) |
|
242 |
m_Buffer.dispose(); |
|
243 |
try { |
|
244 |
getDataStore().close(); |
|
245 |
} catch (CloseException e) { |
|
246 |
Sextante.addErrorToLog(e); |
|
247 |
} |
|
300 |
DisposeUtils.disposeQuietly(m_Buffer); |
|
301 |
DisposeUtils.disposeQuietly(lyr); |
|
248 | 302 |
} |
249 | 303 |
|
304 |
@Override |
|
250 | 305 |
public Object getBaseDataObject() { |
251 | 306 |
return lyr; |
252 | 307 |
} |
253 | 308 |
|
254 |
public void setBaseDataObject(FLyrRaster lyr) {
|
|
309 |
public void setBaseDataObject(RasterLayer lyr) {
|
|
255 | 310 |
this.lyr = lyr; |
256 | 311 |
} |
257 | 312 |
|
258 |
public void setBaseDataObject(RasterDataStore store) { |
|
259 |
DefaultFLyrRaster lyr = new DefaultFLyrRaster(); |
|
260 |
try { |
|
261 |
lyr.setDataStore(store); |
|
262 |
} catch (LoadLayerException e) { |
|
263 |
Sextante.addErrorToLog(e); |
|
264 |
return; |
|
265 |
} |
|
266 |
this.lyr = lyr; |
|
313 |
public void setBaseDataObject(RasterStore store) throws LoadLayerException { |
|
314 |
//DefaultRasterLayer newlyr = new DefaultRasterLayer(); |
|
315 |
FLayer newlyr = MapContextLocator.getMapContextManager().createLayer(store.getName(), store); |
|
316 |
|
|
317 |
// try { |
|
318 |
// newlyr.setDataStore(store); |
|
319 |
// } catch (LoadLayerException e) { |
|
320 |
// Sextante.addErrorToLog(e); |
|
321 |
// return; |
|
322 |
// } |
|
323 |
this.lyr = (RasterLayer) newlyr; |
|
267 | 324 |
} |
268 | 325 |
|
269 |
public void setBaseDataObject(String fileName) { |
|
270 |
DataManager dataManager = DALLocator.getDataManager(); |
|
326 |
public void setBaseDataObject(String fileName) throws LoadLayerException, ValidateDataParametersException {
|
|
327 |
DataManager dataManager = DALLocator.getDataManager();
|
|
271 | 328 |
try { |
272 |
RasterFileStoreParameters params = |
|
273 |
(RasterFileStoreParameters)dataManager.createStoreParameters("Gdal Store"); |
|
274 |
params.setURI(new File(fileName).toURI()); |
|
275 |
RasterDataStore dataStore = (RasterDataStore)dataManager.openStore(params.getDataStoreName(), params); |
|
329 |
NewRasterStoreParameters params; |
|
330 |
params = (NewRasterStoreParameters)dataManager.createStoreParameters("Gdal Store"); |
|
331 |
|
|
332 |
params.setDynValue("uri",new File(fileName).toURI()); |
|
333 |
RasterStore dataStore; |
|
334 |
dataStore = (RasterStore)dataManager.openStore(params.getDataStoreName(), params); |
|
276 | 335 |
setBaseDataObject(dataStore); |
277 |
} catch (ValidateDataParametersException e) { |
|
278 |
Sextante.addErrorToLog(e); |
|
279 | 336 |
} catch (InitializeException e) { |
280 | 337 |
Sextante.addErrorToLog(e); |
281 | 338 |
} catch (ProviderNotRegisteredException e) { |
... | ... | |
285 | 342 |
|
286 | 343 |
|
287 | 344 |
|
345 |
@Override |
|
288 | 346 |
public IOutputChannel getOutputChannel() { |
289 | 347 |
return new IOutputChannel() { |
348 |
@Override |
|
290 | 349 |
public String getAsCommandLineParameter() { |
291 | 350 |
return lyr.getName(); |
292 | 351 |
} |
org.gvsig.geoprocess/branches/refactor-2018/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/dataObjects/FeatureSetIRecordsetIterator.java | ||
---|---|---|
53 | 53 |
|
54 | 54 |
} |
55 | 55 |
|
56 |
@Override |
|
56 | 57 |
public boolean hasNext() { |
57 | 58 |
return featureIterator.hasNext(); |
58 | 59 |
} |
59 | 60 |
|
61 |
@Override |
|
60 | 62 |
public IRecord next() { |
61 | 63 |
final Feature feature = (Feature) featureIterator.next(); |
62 | 64 |
final FeatureType fType = feature.getType(); |
... | ... | |
74 | 76 |
return record; |
75 | 77 |
} |
76 | 78 |
|
79 |
@Override |
|
77 | 80 |
public void close() { |
78 | 81 |
if (featureIterator != null) { |
79 | 82 |
featureIterator.dispose(); |
org.gvsig.geoprocess/branches/refactor-2018/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/dataObjects/FlyrVectIVectorLayer.java | ||
---|---|---|
38 | 38 |
import org.gvsig.fmap.dal.DataStoreParameters; |
39 | 39 |
import org.gvsig.fmap.dal.exception.DataException; |
40 | 40 |
import org.gvsig.fmap.dal.exception.ReadException; |
41 |
import org.gvsig.fmap.dal.exception.ValidateDataParametersException; |
|
42 | 41 |
import org.gvsig.fmap.dal.feature.EditableFeature; |
43 | 42 |
import org.gvsig.fmap.dal.feature.EditableFeatureType; |
44 | 43 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
... | ... | |
64 | 63 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
65 | 64 |
import org.gvsig.tools.ToolsLocator; |
66 | 65 |
import org.gvsig.tools.dataTypes.DataTypesManager; |
67 |
import org.gvsig.tools.locator.LocatorException; |
|
68 | 66 |
|
69 | 67 |
import com.vividsolutions.jts.geom.Geometry; |
70 | 68 |
|
... | ... | |
267 | 265 |
|
268 | 266 |
private int[] getTypes(Class<?>[] classes) { |
269 | 267 |
DataTypesManager typesManager = ToolsLocator.getDataTypesManager(); |
270 |
int[] types = new int[classes.length];
|
|
268 |
int[] dataTypes = new int[classes.length];
|
|
271 | 269 |
for (int i = 0; i < classes.length; i++) { |
272 |
types[i] = typesManager.getDataType(classes[i]).getType();
|
|
270 |
dataTypes[i] = typesManager.getDataType(classes[i]).getType();
|
|
273 | 271 |
} |
274 |
return types;
|
|
272 |
return dataTypes;
|
|
275 | 273 |
} |
276 | 274 |
|
277 | 275 |
public void create(final FLyrVect layer) { |
... | ... | |
287 | 285 |
|
288 | 286 |
} |
289 | 287 |
|
288 |
@Override |
|
290 | 289 |
public void open() { |
291 | 290 |
if (m_Layer == null) { |
292 | 291 |
try { |
... | ... | |
300 | 299 |
} |
301 | 300 |
} |
302 | 301 |
|
302 |
@Override |
|
303 | 303 |
public void close() { |
304 | 304 |
if( this.m_Layer==null ) { |
305 | 305 |
this.free(); |
... | ... | |
336 | 336 |
} |
337 | 337 |
|
338 | 338 |
@SuppressWarnings("unchecked") |
339 |
@Override |
|
339 | 340 |
public void addFeature(final Geometry geom, final Object[] values) { |
340 | 341 |
try { |
341 |
org.gvsig.fmap.geom.Geometry iGeo = null;
|
|
342 |
org.gvsig.fmap.geom.Geometry iGeo; |
|
342 | 343 |
|
343 | 344 |
final GeometryOperationContext ctx = new GeometryOperationContext(); |
344 | 345 |
ctx.setAttribute(FromJTS.PARAM, geom); |
... | ... | |
375 | 376 |
} |
376 | 377 |
} |
377 | 378 |
|
379 |
@Override |
|
378 | 380 |
public IFeatureIterator iterator() { |
379 | 381 |
if (m_Layer != null) { |
380 | 382 |
return new DALIFeatureIterator(m_Layer, getFilters()); |
... | ... | |
384 | 386 |
} |
385 | 387 |
} |
386 | 388 |
|
389 |
@Override |
|
387 | 390 |
public String getFieldName(final int i) { |
388 | 391 |
if (featureStore != null) { |
389 | 392 |
return ((FeatureAttributeDescriptor) featureType.get(i)).getName(); |
... | ... | |
391 | 394 |
return null; |
392 | 395 |
} |
393 | 396 |
|
397 |
@Override |
|
394 | 398 |
public Class<?> getFieldType(final int i) { |
395 | 399 |
return types.get(i); |
396 | 400 |
} |
397 | 401 |
|
402 |
@Override |
|
398 | 403 |
public int getFieldCount() { |
399 | 404 |
if (featureStore != null) { |
400 | 405 |
return names.size(); |
... | ... | |
420 | 425 |
return 0; |
421 | 426 |
} |
422 | 427 |
|
428 |
@Override |
|
423 | 429 |
public int getShapeType() { |
424 | 430 |
if (featureStore != null) { |
425 | 431 |
return getShapeTypeFromGvSIGShapeType(((FeatureAttributeDescriptor) featureType |
... | ... | |
476 | 482 |
} |
477 | 483 |
} |
478 | 484 |
|
485 |
@Override |
|
479 | 486 |
public String getName() { |
480 | 487 |
if (m_Layer != null) { |
481 | 488 |
return m_Layer.getName(); |
... | ... | |
484 | 491 |
} |
485 | 492 |
} |
486 | 493 |
|
494 |
@Override |
|
487 | 495 |
public void postProcess() { |
488 | 496 |
if (featureStore == null) { |
489 | 497 |
return; |
... | ... | |
509 | 517 |
return m_sName; |
510 | 518 |
} |
511 | 519 |
|
520 |
@Override |
|
512 | 521 |
public Object getCRS() { |
513 | 522 |
|
514 | 523 |
return m_Projection; |
515 | 524 |
|
516 | 525 |
} |
517 | 526 |
|
527 |
@Override |
|
518 | 528 |
public void setName(final String name) { |
519 | 529 |
m_sName = name; |
520 | 530 |
} |
... | ... | |
524 | 534 |
return m_Layer; |
525 | 535 |
} |
526 | 536 |
|
537 |
@Override |
|
527 | 538 |
public void free() { |
528 | 539 |
if( this.featureStore!=null ) { |
529 | 540 |
if( featureStore.isEditing() || featureStore.isAppending() ) { |
... | ... | |
542 | 553 |
} |
543 | 554 |
} |
544 | 555 |
|
556 |
@Override |
|
545 | 557 |
public IOutputChannel getOutputChannel() { |
546 | 558 |
if (featureStore != null) { |
547 | 559 |
final DataStoreParameters dsp = featureStore.getParameters(); |
... | ... | |
558 | 570 |
} |
559 | 571 |
} |
560 | 572 |
|
573 |
@Override |
|
561 | 574 |
public boolean canBeEdited() { |
562 | 575 |
// we support only file-based, so we can overwrite |
563 | 576 |
return true; |
... | ... | |
569 | 582 |
} |
570 | 583 |
|
571 | 584 |
|
585 |
@Override |
|
572 | 586 |
public Rectangle2D getFullExtent() { |
573 | 587 |
org.gvsig.fmap.geom.primitive.Envelope envelope; |
574 | 588 |
try { |
... | ... | |
581 | 595 |
|
582 | 596 |
|
583 | 597 |
|
598 |
@Override |
|
584 | 599 |
public String[] getFieldNames() { |
585 | 600 |
return (String[]) names.toArray(new String[names.size()]); |
586 | 601 |
} |
587 | 602 |
|
603 |
@Override |
|
588 | 604 |
public int getFieldIndexByName(final String sFieldName) { |
589 |
String[] names = getFieldNames();
|
|
590 |
for (int i = 0; i < names.length; i++) {
|
|
591 |
if(names[i].equalsIgnoreCase(sFieldName)) {
|
|
605 |
String[] fieldNames = getFieldNames();
|
|
606 |
for (int i = 0; i < fieldNames.length; i++) {
|
|
607 |
if(fieldNames[i].equalsIgnoreCase(sFieldName)) {
|
|
592 | 608 |
return i; |
593 | 609 |
} |
594 | 610 |
} |
595 | 611 |
return -1; |
596 | 612 |
} |
597 | 613 |
|
614 |
@Override |
|
598 | 615 |
public Class<?>[] getFieldTypes() { |
599 | 616 |
return (Class<?>[]) types.toArray(new Class<?>[types.size()]); |
600 | 617 |
} |
org.gvsig.geoprocess/branches/refactor-2018/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/dataObjects/TableDocumentITable.java | ||
---|---|---|
58 | 58 |
private FeatureType featureType; |
59 | 59 |
private FeatureStore featureStore; |
60 | 60 |
|
61 |
@Override |
|
61 | 62 |
public String getName() { |
62 | 63 |
|
63 | 64 |
if (m_Table != null) { |
... | ... | |
142 | 143 |
return types; |
143 | 144 |
} |
144 | 145 |
|
146 |
@Override |
|
145 | 147 |
public void addRecord(final Object[] record) { |
146 | 148 |
try { |
147 | 149 |
final EditableFeature ef = featureStore.createNewFeature(); |
... | ... | |
163 | 165 |
|
164 | 166 |
} |
165 | 167 |
|
168 |
@Override |
|
166 | 169 |
public IRecordsetIterator iterator() { |
167 | 170 |
try { |
168 | 171 |
return new FeatureSetIRecordsetIterator(featureStore.getFeatureSet(m_Table |
... | ... | |
172 | 175 |
} |
173 | 176 |
} |
174 | 177 |
|
178 |
@Override |
|
175 | 179 |
public String getFieldName(final int i) { |
176 | 180 |
return ((FeatureAttributeDescriptor) featureType.get(i)).getName(); |
177 | 181 |
} |
178 | 182 |
|
183 |
@Override |
|
179 | 184 |
public Class<?> getFieldType(final int i) { |
180 | 185 |
return featureType.getAttributeDescriptor(i).getDataType() |
181 | 186 |
.getDefaultClass(); |
182 | 187 |
} |
183 | 188 |
|
189 |
@Override |
|
184 | 190 |
public int getFieldCount() { |
185 | 191 |
return featureType.size(); |
186 | 192 |
} |
187 | 193 |
|
194 |
@Override |
|
188 | 195 |
public long getRecordCount() { |
189 | 196 |
try { |
190 | 197 |
return featureStore.getFeatureSet(m_Table.getQuery()).getSize(); |
... | ... | |
194 | 201 |
return 0; |
195 | 202 |
} |
196 | 203 |
|
204 |
@Override |
|
197 | 205 |
public void postProcess() { |
198 | 206 |
if(featureStore.isAppending() || featureStore.isEditing()) { |
199 | 207 |
try { |
... | ... | |
215 | 223 |
create(table); |
216 | 224 |
} |
217 | 225 |
|
226 |
@Override |
|
218 | 227 |
public void open() { |
219 | 228 |
|
220 | 229 |
} |
221 | 230 |
|
231 |
@Override |
|
222 | 232 |
public void close() { |
223 | 233 |
// Nothing to do |
224 | 234 |
} |
... | ... | |
229 | 239 |
|
230 | 240 |
} |
231 | 241 |
|
242 |
@Override |
|
232 | 243 |
public void setName(final String name) { |
233 | 244 |
|
234 | 245 |
if (m_Table != null) { |
... | ... | |
239 | 250 |
|
240 | 251 |
} |
241 | 252 |
|
253 |
@Override |
|
242 | 254 |
public Object getBaseDataObject() { |
243 | 255 |
|
244 | 256 |
return m_Table; |
245 | 257 |
|
246 | 258 |
} |
247 | 259 |
|
260 |
@Override |
|
248 | 261 |
public void free() { |
249 | 262 |
|
250 | 263 |
m_Table = null; |
251 | 264 |
|
252 | 265 |
} |
253 | 266 |
|
267 |
@Override |
|
254 | 268 |
public IOutputChannel getOutputChannel() { |
255 | 269 |
|
256 | 270 |
return new FileOutputChannel(m_sFilename); |
org.gvsig.geoprocess/branches/refactor-2018/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/dataObjects/RasterDriver.java | ||
---|---|---|
23 | 23 |
*/ |
24 | 24 |
package org.gvsig.geoprocess.lib.sextante.dataObjects; |
25 | 25 |
|
26 |
import java.awt.geom.AffineTransform; |
|
27 | 26 |
import java.awt.image.DataBuffer; |
28 | 27 |
import java.io.File; |
29 | 28 |
|
... | ... | |
33 | 32 |
import org.cresques.cts.IProjection; |
34 | 33 |
|
35 | 34 |
import org.gvsig.andami.Utilities; |
36 |
import org.gvsig.fmap.dal.coverage.RasterLocator; |
|
37 |
import org.gvsig.fmap.dal.coverage.RasterManager; |
|
38 |
import org.gvsig.fmap.dal.coverage.dataset.Buffer; |
|
39 |
import org.gvsig.fmap.dal.coverage.datastruct.NoData; |
|
40 |
import org.gvsig.fmap.dal.coverage.datastruct.Params; |
|
41 |
import org.gvsig.fmap.dal.coverage.store.DataServerWriter; |
|
42 |
import org.gvsig.fmap.dal.coverage.store.RasterWriter; |
|
35 |
import org.gvsig.fmap.dal.DALLocator; |
|
36 |
import org.gvsig.fmap.dal.DataManager; |
|
37 |
import org.gvsig.fmap.dal.DataServerExplorerParameters; |
|
38 |
import org.gvsig.fmap.dal.raster.api.NewRasterStoreParameters; |
|
39 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorer; |
|
40 |
import org.gvsig.raster.lib.buffer.api.Buffer; |
|
41 |
import org.gvsig.raster.lib.buffer.api.BufferLocator; |
|
42 |
import org.gvsig.raster.lib.buffer.api.BufferManager; |
|
43 |
import org.gvsig.raster.lib.buffer.api.NoData; |
|
44 |
import org.gvsig.raster.lib.buffer.api.exceptions.BufferException; |
|
43 | 45 |
|
46 |
|
|
44 | 47 |
public class RasterDriver { |
45 | 48 |
|
46 | 49 |
public static final int RASTER_DATA_TYPE_FLOAT = DataBuffer.TYPE_FLOAT; |
... | ... | |
54 | 57 |
private String name = null; |
55 | 58 |
|
56 | 59 |
public RasterDriver(final AnalysisExtent ae, final int iDataType, |
57 |
final int iNumBands) { |
|
60 |
final int iNumBands) throws BufferException {
|
|
58 | 61 |
|
59 | 62 |
super(); |
60 |
|
|
61 |
buf = |
|
62 |
RasterLocator.getManager().createBuffer(iDataType, |
|
63 |
ae.getNX(), |
|
64 |
ae.getNY(), |
|
65 |
iNumBands, true); |
|
63 |
IProjection projection = null; //TODO check create bufefr without projection |
|
64 |
int[] listDataType; //TODO check how listDataType is made. |
|
65 |
listDataType = new int[1]; |
|
66 |
listDataType[0] = (iDataType); |
|
67 |
buf = BufferLocator.getBufferManager().createBuffer(ae.getNX(), ae.getNY(), listDataType, projection); |
|
66 | 68 |
m_GridExtent = ae; |
67 | 69 |
|
68 | 70 |
} |
69 | 71 |
|
70 |
public RasterDriver(final AnalysisExtent ae, final int iDataType) { |
|
72 |
public RasterDriver(final AnalysisExtent ae, final int iDataType) throws BufferException {
|
|
71 | 73 |
this(ae, iDataType, 1); |
72 | 74 |
} |
73 | 75 |
|
... | ... | |
99 | 101 |
final double dValue) { |
100 | 102 |
|
101 | 103 |
if (isInGrid(x, y) && (iBand < buf.getBandCount())) { |
102 |
switch (buf.getDataType()) { |
|
103 |
case Buffer.TYPE_BYTE: |
|
104 |
buf.setElem(y, x, iBand, (byte) dValue);
|
|
104 |
switch (buf.getBand(iBand).getDataType()) {
|
|
105 |
case BufferManager.TYPE_BYTE:
|
|
106 |
buf.getBand(iBand).set(y,x, (byte) dValue);
|
|
105 | 107 |
break; |
106 |
case Buffer.TYPE_SHORT: |
|
107 |
buf.setElem(y, x, iBand, (short) dValue);
|
|
108 |
case BufferManager.TYPE_SHORT:
|
|
109 |
buf.getBand(iBand).set(y, x,(short) dValue);
|
|
108 | 110 |
break; |
109 |
case Buffer.TYPE_INT: |
|
110 |
buf.setElem(y, x, iBand, (int) dValue);
|
|
111 |
case BufferManager.TYPE_INT:
|
|
112 |
buf.getBand(iBand).set(y, x, (int) dValue);
|
|
111 | 113 |
break; |
112 |
case Buffer.TYPE_FLOAT: |
|
113 |
buf.setElem(y, x, iBand, (float) dValue);
|
|
114 |
case BufferManager.TYPE_FLOAT:
|
|
115 |
buf.getBand(iBand).set(y, x,(float) dValue);
|
|
114 | 116 |
break; |
115 |
case Buffer.TYPE_DOUBLE: |
|
117 |
case BufferManager.TYPE_DOUBLE:
|
|
116 | 118 |
default: |
117 |
buf.setElem(y, x, iBand, dValue);
|
|
119 |
buf.getBand(iBand).set(y, x, dValue);
|
|
118 | 120 |
break; |
119 | 121 |
} |
120 | 122 |
} |
121 | 123 |
} |
122 | 124 |
|
123 | 125 |
public double getNoDataValue() { |
124 |
NoData nodata = buf.getNoDataValue(); |
|
126 |
NoData nodata; |
|
127 |
nodata = buf.getBandNoData()[0]; |
|
125 | 128 |
return nodata != null ? (nodata.getValue() != null ? nodata.getValue() |
126 | 129 |
.doubleValue() : 0.0d) : 0.0d; |
127 | 130 |
} |
128 | 131 |
|
129 | 132 |
public void setNoDataValue(final double dNoDataValue) { |
130 | 133 |
// TODO: hablar con NACHO |
131 |
if (buf.getNoDataValue() == null) {
|
|
132 |
NoData nodata =
|
|
133 |
RasterLocator.getManager().getDataStructFactory()
|
|
134 |
.createNoData(dNoDataValue, null, null);
|
|
135 |
buf.setNoDataValue(nodata);
|
|
136 |
} else {
|
|
137 |
buf.getNoDataValue().setValue(dNoDataValue);
|
|
134 |
for (int i = 0; i < buf.getBandCount(); i++) {
|
|
135 |
if (buf.getBand(i).getNoData()== null) {
|
|
136 |
NoData nodata = BufferLocator.getBufferManager().createNoData(dNoDataValue, null);
|
|
137 |
buf.getBand(i).getNoData().setValue(nodata.getValue());
|
|
138 |
} else {
|
|
139 |
buf.getBand(i).getNoData().setValue(dNoDataValue);
|
|
140 |
}
|
|
138 | 141 |
} |
139 | 142 |
} |
140 | 143 |
|
... | ... | |
145 | 148 |
public double getCellValue(final int x, final int y, final int iBand) { |
146 | 149 |
|
147 | 150 |
if (isInGrid(x, y) && (iBand < buf.getBandCount())) { |
148 |
switch (buf.getDataType()) { |
|
149 |
case Buffer.TYPE_BYTE: |
|
150 |
return buf.getElemByte(y, x, iBand);
|
|
151 |
case Buffer.TYPE_SHORT: |
|
152 |
return buf.getElemShort(y, x, iBand);
|
|
153 |
case Buffer.TYPE_INT: |
|
154 |
return buf.getElemInt(y, x, iBand);
|
|
155 |
case Buffer.TYPE_FLOAT: |
|
156 |
return buf.getElemFloat(y, x, iBand);
|
|
157 |
case Buffer.TYPE_DOUBLE: |
|
158 |
return buf.getElemDouble(y, x, iBand);
|
|
151 |
switch (buf.getBand(iBand).getDataType()) {
|
|
152 |
case BufferManager.TYPE_BYTE:
|
|
153 |
return buf.getBandByte(iBand).getValue(y, x);
|
|
154 |
case BufferManager.TYPE_SHORT:
|
|
155 |
return buf.getBandShort(iBand).getValue(y, x);
|
|
156 |
case BufferManager.TYPE_INT:
|
|
157 |
return buf.getBandInt(iBand).getValue(y,x);
|
|
158 |
case BufferManager.TYPE_FLOAT:
|
|
159 |
return buf.getBandFloat(iBand).getValue(y,x);
|
|
160 |
case BufferManager.TYPE_DOUBLE:
|
|
161 |
return buf.getBandDouble(iBand).getValue(y,x);
|
|
159 | 162 |
default: |
160 | 163 |
return getNoDataValue(); |
161 | 164 |
} |
... | ... | |
174 | 177 |
if ((x < 0) || (y < 0)) { |
175 | 178 |
return false; |
176 | 179 |
} |
177 |
|
|
180 |
|
|
178 | 181 |
if ((x >= m_GridExtent.getNX()) || (y >= m_GridExtent.getNY())) { |
179 | 182 |
return false; |
180 | 183 |
} |
... | ... | |
220 | 223 |
|
221 | 224 |
public boolean export(final String sFilename, final IProjection projection) { |
222 | 225 |
|
223 |
try { |
|
224 |
RasterManager manager = RasterLocator.getManager(); |
|
225 |
final DataServerWriter writerBufferServer = |
|
226 |
manager.createDataServerWriter(); |
|
227 |
writerBufferServer.setBuffer(buf, -1); |
|
228 |
final Params params = manager.createWriterParams(sFilename); |
|
229 |
final AffineTransform affineTransform = |
|
230 |
new AffineTransform(m_GridExtent.getCellSize(), 0, 0, |
|
231 |
-m_GridExtent.getCellSize(), m_GridExtent.getXMin(), |
|
232 |
m_GridExtent.getYMax()); |
|
233 | 226 |
|
234 |
final RasterWriter writer = |
|
235 |
manager.createWriter(writerBufferServer, sFilename, |
|
236 |
buf.getBandCount(), affineTransform, buf.getWidth(), |
|
237 |
buf.getHeight(), buf.getDataType(), params, projection); |
|
238 |
writer.dataWrite(); |
|
239 |
writer.writeClose(); |
|
240 |
|
|
241 |
} catch (final Exception e) { |
|
227 |
try { |
|
228 |
final DataManager dm = DALLocator.getDataManager(); |
|
229 |
DataServerExplorerParameters serverParameters = dm.createServerExplorerParameters(FilesystemServerExplorer.NAME); |
|
230 |
FilesystemServerExplorer server = (FilesystemServerExplorer) dm.openServerExplorer(FilesystemServerExplorer.NAME, serverParameters); |
|
231 |
File file = new File(sFilename); |
|
232 |
NewRasterStoreParameters parameters = (NewRasterStoreParameters) server.getAddParameters(file); |
|
233 |
parameters.setDynValue("crs", projection); |
|
234 |
parameters.setBuffer(buf); |
|
235 |
server.add(parameters.getDataStoreName(), parameters, true); |
|
236 |
|
|
237 |
return true; |
|
238 |
} catch (Exception e) { |
|
242 | 239 |
Sextante.addErrorToLog(e); |
243 |
return false; |
|
244 | 240 |
} |
245 |
|
|
246 |
return true; |
|
247 |
|
|
241 |
return false; |
|
248 | 242 |
} |
249 | 243 |
|
250 | 244 |
public void setName(final String name) { |
Also available in: Unified diff