Mercurial > dive4elements > river
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 : |