comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java @ 1110:563e015f0f22

Export floodplain to shapefile and add its file path to WSPLGEN job. flys-artifacts/trunk@2616 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 31 Aug 2011 08:53:30 +0000
parents ba9fa72dd6f5
children 7398280b11a0
comparison
equal deleted inserted replaced
1109:ba9fa72dd6f5 1110:563e015f0f22
7 7
8 import javax.xml.xpath.XPathConstants; 8 import javax.xml.xpath.XPathConstants;
9 9
10 import com.vividsolutions.jts.geom.Geometry; 10 import com.vividsolutions.jts.geom.Geometry;
11 import com.vividsolutions.jts.geom.LineString; 11 import com.vividsolutions.jts.geom.LineString;
12 import com.vividsolutions.jts.geom.MultiPolygon;
12 import com.vividsolutions.jts.geom.Polygon; 13 import com.vividsolutions.jts.geom.Polygon;
13 14
14 import org.apache.log4j.Logger; 15 import org.apache.log4j.Logger;
15 16
16 import org.opengis.feature.simple.SimpleFeature; 17 import org.opengis.feature.simple.SimpleFeature;
28 29
29 import de.intevation.artifactdatabase.state.Facet; 30 import de.intevation.artifactdatabase.state.Facet;
30 31
31 import de.intevation.flys.model.CrossSectionTrack; 32 import de.intevation.flys.model.CrossSectionTrack;
32 import de.intevation.flys.model.DGM; 33 import de.intevation.flys.model.DGM;
34 import de.intevation.flys.model.Floodplain;
33 import de.intevation.flys.model.RiverAxis; 35 import de.intevation.flys.model.RiverAxis;
34 36
35 import de.intevation.flys.artifacts.FLYSArtifact; 37 import de.intevation.flys.artifacts.FLYSArtifact;
36 import de.intevation.flys.artifacts.model.FacetTypes; 38 import de.intevation.flys.artifacts.model.FacetTypes;
37 import de.intevation.flys.artifacts.model.WSPLGENFacet; 39 import de.intevation.flys.artifacts.model.WSPLGENFacet;
58 public static final String WSPLGEN_PARAMETER_FILE = "wsplgen.par"; 60 public static final String WSPLGEN_PARAMETER_FILE = "wsplgen.par";
59 public static final String WSPLGEN_BARRIERS_LINES = "barrier_lines.shp"; 61 public static final String WSPLGEN_BARRIERS_LINES = "barrier_lines.shp";
60 public static final String WSPLGEN_BARRIERS_POLY = "barrier_polygons.shp"; 62 public static final String WSPLGEN_BARRIERS_POLY = "barrier_polygons.shp";
61 public static final String WSPLGEN_AXIS = "axis.shp"; 63 public static final String WSPLGEN_AXIS = "axis.shp";
62 public static final String WSPLGEN_QPS = "qps.shp"; 64 public static final String WSPLGEN_QPS = "qps.shp";
65 public static final String WSPLGEN_FLOODPLAIN = "talaue.shp";
63 66
64 public static final int WSPLGEN_DEFAULT_OUTPUT = 0; 67 public static final int WSPLGEN_DEFAULT_OUTPUT = 0;
65 68
66 69
67 70
177 setDist(artifact, job); 180 setDist(artifact, job);
178 setLine(artifact, artifactDir, job); 181 setLine(artifact, artifactDir, job);
179 setAxis(artifact, artifactDir, job); 182 setAxis(artifact, artifactDir, job);
180 setPro(artifact, artifactDir, job); 183 setPro(artifact, artifactDir, job);
181 setDgm(artifact, job); 184 setDgm(artifact, job);
185 setArea(artifact, artifactDir, job);
182 186
183 // TODO 187 // TODO
184 // setWsp(artifact, job); // WSP 188 // setWsp(artifact, job); // WSP
185 // setWspTag(artifact, job); 189 // setWspTag(artifact, job);
186 // setArea(artifact, job); // SHP
187 // setOutFile(artifact, job); 190 // setOutFile(artifact, job);
188 191
189 try { 192 try {
190 job.toFile(paraFile); 193 job.toFile(paraFile);
191 194
435 return; 438 return;
436 } 439 }
437 440
438 job.setDgm(dgm.getPath()); 441 job.setDgm(dgm.getPath());
439 } 442 }
443
444
445 protected void setArea(FLYSArtifact artifact, File dir, WSPLGENJob job) {
446 String river = artifact.getDataAsString("river");
447 String srid = FLYSUtils.getRiverSrid(artifact);
448 String srs = "EPSG:" + srid;
449
450 Floodplain plain = Floodplain.getFloodplain(river);
451
452 SimpleFeatureType ft = GeometryUtils.buildFeatureType(
453 "talaue", srs, MultiPolygon.class);
454
455 SimpleFeatureBuilder builder = new SimpleFeatureBuilder(ft);
456 builder.add(plain.getGeom());
457
458 FeatureCollection collection = FeatureCollections.newCollection();
459 collection.add(builder.buildFeature("0"));
460
461 File talaueShape = new File(dir, WSPLGEN_FLOODPLAIN);
462
463 try {
464 GeometryUtils.writeShapefile(
465 talaueShape,
466 GeometryUtils.buildFeatureType(
467 "talaue", srs, MultiPolygon.class),
468 collection);
469 job.setArea(talaueShape.getAbsolutePath());
470 }
471 catch (MalformedURLException mue) {
472 logger.error("Error while writing shapefile: " + mue.getMessage());
473 }
474 catch (IOException ioe) {
475 logger.error("Error while writing shapefile: " + ioe.getMessage());
476 }
477 }
440 } 478 }
441 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : 479 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org