Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java @ 5076:cc50e1b9fc60 mapgenfix
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Wed, 20 Feb 2013 21:00:33 +0100 |
parents | 1da61095040c |
children | 2b24073e80d9 |
rev | line source |
---|---|
927
53a2be494765
Enhanced the transition model to continue the parameterization in the waterlevel state to compute flood maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.artifacts.states; |
53a2be494765
Enhanced the transition model to continue the parameterization in the waterlevel state to compute flood maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
1123
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
3 import com.vividsolutions.jts.geom.Coordinate; |
1107
005c2964f9af
Use the correct SRID while reading GeoJSON barriers and writing line/polygon shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1106
diff
changeset
|
4 import com.vividsolutions.jts.geom.Geometry; |
1106
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
5 import com.vividsolutions.jts.geom.LineString; |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
6 import com.vividsolutions.jts.geom.Polygon; |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
7 |
3302
453d2d0c4258
Organized and added missing imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3070
diff
changeset
|
8 import de.intevation.artifactdatabase.state.Facet; |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
9 import de.intevation.artifacts.Artifact; |
935
353ddfa231a7
Introduced a new output 'floodmap' for the FloodMapState.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
927
diff
changeset
|
10 import de.intevation.artifacts.CallContext; |
2093
ebc2aa64c1be
Call State.initialize() for each State of an Artifact in FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2078
diff
changeset
|
11 import de.intevation.artifacts.CallMeta; |
1970
368040e5c400
Improved the Scheduler to be able to cancel running WSPLGEN jobs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1955
diff
changeset
|
12 import de.intevation.artifacts.GlobalContext; |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
13 import de.intevation.artifacts.common.utils.FileTools; |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
4994
diff
changeset
|
14 import de.intevation.flys.artifacts.FLYSArtifact; |
4854
c53b3fdc9821
FloodMapState: Updated to use RangeAccess instead of FLYSUtils.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4656
diff
changeset
|
15 import de.intevation.flys.artifacts.access.RangeAccess; |
1970
368040e5c400
Improved the Scheduler to be able to cancel running WSPLGEN jobs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1955
diff
changeset
|
16 import de.intevation.flys.artifacts.context.FLYSContext; |
1165
3b034bb5fce7
Add status message for queued WSPLGEN jobs to notify users.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1164
diff
changeset
|
17 import de.intevation.flys.artifacts.model.CalculationMessage; |
1118
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
18 import de.intevation.flys.artifacts.model.CalculationResult; |
927
53a2be494765
Enhanced the transition model to continue the parameterization in the waterlevel state to compute flood maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 import de.intevation.flys.artifacts.model.FacetTypes; |
1118
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
20 import de.intevation.flys.artifacts.model.WQKms; |
3302
453d2d0c4258
Organized and added missing imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3070
diff
changeset
|
21 import de.intevation.flys.artifacts.model.map.WMSLayerFacet; |
453d2d0c4258
Organized and added missing imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3070
diff
changeset
|
22 import de.intevation.flys.artifacts.model.map.WSPLGENCalculation; |
453d2d0c4258
Organized and added missing imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3070
diff
changeset
|
23 import de.intevation.flys.artifacts.model.map.WSPLGENJob; |
453d2d0c4258
Organized and added missing imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3070
diff
changeset
|
24 import de.intevation.flys.artifacts.model.map.WSPLGENReportFacet; |
1165
3b034bb5fce7
Add status message for queued WSPLGEN jobs to notify users.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1164
diff
changeset
|
25 import de.intevation.flys.artifacts.resources.Resources; |
1118
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
26 import de.intevation.flys.exports.WstWriter; |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
4994
diff
changeset
|
27 import de.intevation.flys.mapserver.ArtifactMapfileGenerator; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
4994
diff
changeset
|
28 import de.intevation.flys.mapserver.MapfileGenerator; |
3302
453d2d0c4258
Organized and added missing imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3070
diff
changeset
|
29 import de.intevation.flys.model.CrossSectionTrack; |
453d2d0c4258
Organized and added missing imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3070
diff
changeset
|
30 import de.intevation.flys.model.DGM; |
453d2d0c4258
Organized and added missing imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3070
diff
changeset
|
31 import de.intevation.flys.model.Floodplain; |
453d2d0c4258
Organized and added missing imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3070
diff
changeset
|
32 import de.intevation.flys.model.RiverAxis; |
1096
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
33 import de.intevation.flys.utils.FLYSUtils; |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
4994
diff
changeset
|
34 import de.intevation.flys.utils.FileUtils; |
3302
453d2d0c4258
Organized and added missing imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3070
diff
changeset
|
35 import de.intevation.flys.utils.GeometryUtils; |
1650
aaf8d32f85bd
Improved Facet creation for floodmaps - WSPLGEN and barriers Facets are only created if the calculation was successful.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1649
diff
changeset
|
36 import de.intevation.flys.wsplgen.FacetCreator; |
1165
3b034bb5fce7
Add status message for queued WSPLGEN jobs to notify users.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1164
diff
changeset
|
37 import de.intevation.flys.wsplgen.JobObserver; |
1127
6b9877a9f6c1
Added infrastructure to start WSPLGEN calculations - the FloodMapState already start such calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1124
diff
changeset
|
38 import de.intevation.flys.wsplgen.Scheduler; |
927
53a2be494765
Enhanced the transition model to continue the parameterization in the waterlevel state to compute flood maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 |
4569
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
40 import java.io.File; |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
41 import java.io.FileNotFoundException; |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
42 import java.io.FileOutputStream; |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
43 import java.io.IOException; |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
44 import java.util.ArrayList; |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
45 import java.util.List; |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
46 |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
47 import org.apache.log4j.Logger; |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
48 import org.geotools.feature.FeatureCollection; |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
49 import org.geotools.feature.FeatureCollections; |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
50 import org.geotools.feature.simple.SimpleFeatureBuilder; |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
51 import org.opengis.feature.simple.SimpleFeature; |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
52 import org.opengis.feature.simple.SimpleFeatureType; |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
53 |
927
53a2be494765
Enhanced the transition model to continue the parameterization in the waterlevel state to compute flood maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
54 |
53a2be494765
Enhanced the transition model to continue the parameterization in the waterlevel state to compute flood maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
55 public class FloodMapState |
53a2be494765
Enhanced the transition model to continue the parameterization in the waterlevel state to compute flood maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
56 extends DefaultState |
53a2be494765
Enhanced the transition model to continue the parameterization in the waterlevel state to compute flood maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
57 implements FacetTypes |
53a2be494765
Enhanced the transition model to continue the parameterization in the waterlevel state to compute flood maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
58 { |
1160
efe1b8545f5c
Cosmetics
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1149
diff
changeset
|
59 /** The logger that is used in this state. */ |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
4994
diff
changeset
|
60 public static Logger logger = Logger.getLogger(FloodMapState.class); |
927
53a2be494765
Enhanced the transition model to continue the parameterization in the waterlevel state to compute flood maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
61 |
935
353ddfa231a7
Introduced a new output 'floodmap' for the FloodMapState.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
927
diff
changeset
|
62 |
1107
005c2964f9af
Use the correct SRID while reading GeoJSON barriers and writing line/polygon shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1106
diff
changeset
|
63 public static final String KEEP_ARTIFACT_DIR = |
005c2964f9af
Use the correct SRID while reading GeoJSON barriers and writing line/polygon shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1106
diff
changeset
|
64 System.getProperty("flys.uesk.keep.artifactsdir", "false"); |
005c2964f9af
Use the correct SRID while reading GeoJSON barriers and writing line/polygon shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1106
diff
changeset
|
65 |
005c2964f9af
Use the correct SRID while reading GeoJSON barriers and writing line/polygon shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1106
diff
changeset
|
66 |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
67 public static final String OUTPUT_NAME = "floodmap"; |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
68 |
1178
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
69 public static final String WSP_ARTIFACT = "wsp"; |
1118
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
70 |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
71 public static final String WINFO_WSP_STATE_ID = "state.winfo.waterlevel"; |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
72 |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
73 public static final String WSPLGEN_PARAMETER_FILE = "wsplgen.par"; |
1106
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
74 public static final String WSPLGEN_BARRIERS_LINES = "barrier_lines.shp"; |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
75 public static final String WSPLGEN_BARRIERS_POLY = "barrier_polygons.shp"; |
1108
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
76 public static final String WSPLGEN_AXIS = "axis.shp"; |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
77 public static final String WSPLGEN_QPS = "qps.shp"; |
1110
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
78 public static final String WSPLGEN_FLOODPLAIN = "talaue.shp"; |
1120
fb3947027e92
Renamed WSPLGEN required waterlevels file to 'waterlevel.wst'.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1119
diff
changeset
|
79 public static final String WSPLGEN_WSP_FILE = "waterlevel.wst"; |
1118
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
80 public static final String WSPLGEN_OUTPUT_FILE = "wsplgen.shp"; |
2639
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
81 public static final String WSPLGEN_USER_SHAPE = "user-rgd.shp"; |
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
82 public static final String WSPLGEN_USER_ZIP = "user-rgd.zip"; |
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
83 public static final String WSPLGEN_USER_FILENAME = "user-rgd"; |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
84 |
3070
6875120af2a2
Fetch only 'qps' cross section tracks for WSPLGEN calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2639
diff
changeset
|
85 public static final String WSPLGEN_QPS_NAME = "qps"; |
6875120af2a2
Fetch only 'qps' cross section tracks for WSPLGEN calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2639
diff
changeset
|
86 |
1096
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
87 public static final int WSPLGEN_DEFAULT_OUTPUT = 0; |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
88 |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
89 |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
90 /** |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
91 * @param orig |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
92 * @param owner |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
93 * @param context |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
94 * @param callMeta |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
95 */ |
2093
ebc2aa64c1be
Call State.initialize() for each State of an Artifact in FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2078
diff
changeset
|
96 @Override |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
97 public void initialize( |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
98 Artifact orig, |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
99 Artifact owner, |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
100 Object context, |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
101 CallMeta callMeta |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
102 ) { |
2093
ebc2aa64c1be
Call State.initialize() for each State of an Artifact in FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2078
diff
changeset
|
103 logger.info("Initialize State with Artifact: " + orig.identifier()); |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
104 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
105 copyShapeDir(orig, owner); |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
106 modifyFacets(orig, owner, context, callMeta); |
4864
dc0d37715e16
Floodmap uses the static River-WMS instead of User-WMS via RiverAxisArtifact.
Christian Lins <christian.lins@intevation.de>
parents:
4854
diff
changeset
|
107 |
dc0d37715e16
Floodmap uses the static River-WMS instead of User-WMS via RiverAxisArtifact.
Christian Lins <christian.lins@intevation.de>
parents:
4854
diff
changeset
|
108 ArtifactMapfileGenerator amfg = new ArtifactMapfileGenerator(); |
dc0d37715e16
Floodmap uses the static River-WMS instead of User-WMS via RiverAxisArtifact.
Christian Lins <christian.lins@intevation.de>
parents:
4854
diff
changeset
|
109 try { |
dc0d37715e16
Floodmap uses the static River-WMS instead of User-WMS via RiverAxisArtifact.
Christian Lins <christian.lins@intevation.de>
parents:
4854
diff
changeset
|
110 amfg.generate(); |
dc0d37715e16
Floodmap uses the static River-WMS instead of User-WMS via RiverAxisArtifact.
Christian Lins <christian.lins@intevation.de>
parents:
4854
diff
changeset
|
111 } |
dc0d37715e16
Floodmap uses the static River-WMS instead of User-WMS via RiverAxisArtifact.
Christian Lins <christian.lins@intevation.de>
parents:
4854
diff
changeset
|
112 catch (IOException e) { |
dc0d37715e16
Floodmap uses the static River-WMS instead of User-WMS via RiverAxisArtifact.
Christian Lins <christian.lins@intevation.de>
parents:
4854
diff
changeset
|
113 logger.error(e.getMessage(), e); |
dc0d37715e16
Floodmap uses the static River-WMS instead of User-WMS via RiverAxisArtifact.
Christian Lins <christian.lins@intevation.de>
parents:
4854
diff
changeset
|
114 } |
2093
ebc2aa64c1be
Call State.initialize() for each State of an Artifact in FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2078
diff
changeset
|
115 } |
ebc2aa64c1be
Call State.initialize() for each State of an Artifact in FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2078
diff
changeset
|
116 |
ebc2aa64c1be
Call State.initialize() for each State of an Artifact in FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2078
diff
changeset
|
117 |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
118 protected void copyShapeDir(Artifact orig, Artifact owner) { |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
119 File origDir = getDirectory((FLYSArtifact) orig); |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
120 File thisDir = getDirectory((FLYSArtifact) owner); |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
121 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
122 FileTools.copyDirectory(origDir, thisDir); |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
123 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
124 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
125 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
126 protected void modifyFacets( |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
127 Artifact orig, |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
128 Artifact owner, |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
129 Object context, |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
130 CallMeta callMeta |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
131 ) { |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
132 FLYSArtifact flys = (FLYSArtifact) owner; |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
133 List<Facet> facets = flys.getFacets(); |
3555
b1912514e0f5
s/container.size() == 0/container.isEmpty()/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3302
diff
changeset
|
134 if (facets == null || facets.isEmpty()) { |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
135 logger.warn("No facets for '" + OUTPUT_NAME + "' given!"); |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
136 return; |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
137 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
138 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
139 for (Facet facet: facets) { |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
140 if (facet instanceof WMSLayerFacet) { |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
141 WMSLayerFacet wms = (WMSLayerFacet) facet; |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
142 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
143 List<String> layers = wms.getLayers(); |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
144 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
145 for (String layer: layers) { |
5023
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
146 if (layer.startsWith(MapfileGenerator.MS_PREFIX_WSPLGEN)) { |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
147 wms.removeLayer(layer); |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
148 |
5023
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
149 String newLayer = MapfileGenerator.MS_PREFIX_WSPLGEN + |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
150 owner.identifier(); |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
151 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
152 wms.addLayer(newLayer); |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
153 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
154 logger.debug( |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
155 "Replaced layer: " + layer + " with " + newLayer); |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
156 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
157 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
158 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
159 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
160 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
161 |
1053
bfc2ed20b87c
Prepared the FloodMapState to save geometries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
935
diff
changeset
|
162 |
bfc2ed20b87c
Prepared the FloodMapState to save geometries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
935
diff
changeset
|
163 @Override |
935
353ddfa231a7
Introduced a new output 'floodmap' for the FloodMapState.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
927
diff
changeset
|
164 public Object computeAdvance( |
353ddfa231a7
Introduced a new output 'floodmap' for the FloodMapState.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
927
diff
changeset
|
165 FLYSArtifact artifact, |
353ddfa231a7
Introduced a new output 'floodmap' for the FloodMapState.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
927
diff
changeset
|
166 String hash, |
353ddfa231a7
Introduced a new output 'floodmap' for the FloodMapState.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
927
diff
changeset
|
167 CallContext context, |
353ddfa231a7
Introduced a new output 'floodmap' for the FloodMapState.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
927
diff
changeset
|
168 List<Facet> facets, |
353ddfa231a7
Introduced a new output 'floodmap' for the FloodMapState.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
927
diff
changeset
|
169 Object old |
353ddfa231a7
Introduced a new output 'floodmap' for the FloodMapState.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
927
diff
changeset
|
170 ) { |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
171 logger.debug("FloodMapState.computeAdvance"); |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
172 |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
173 File artifactDir = getDirectory(artifact); |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
174 |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
175 if (artifactDir == null) { |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
176 logger.error("Could not create directory for WSPLGEN results!"); |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
177 return null; |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
178 } |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
179 |
1149
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
180 WSPLGENCalculation calculation = new WSPLGENCalculation(); |
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
181 |
1638
f45bbc80bd3d
Bugfix: #296 Set i18n titles for WSPLGEN and barriers WMS layers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1186
diff
changeset
|
182 FacetCreator facetCreator = new FacetCreator( |
1650
aaf8d32f85bd
Improved Facet creation for floodmaps - WSPLGEN and barriers Facets are only created if the calculation was successful.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1649
diff
changeset
|
183 artifact, context, hash, getID(), facets); |
1164
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
184 |
1149
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
185 WSPLGENJob job = prepareWSPLGENJob( |
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
186 artifact, |
1164
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
187 facetCreator, |
1149
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
188 artifactDir, |
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
189 context, |
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
190 calculation); |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
191 |
1168
ace192d3283d
Add an error message to the calculation report if an error occured while WSPLGENJob creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1165
diff
changeset
|
192 CalculationResult res = new CalculationResult(null, calculation); |
ace192d3283d
Add an error message to the calculation report if an error occured while WSPLGENJob creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1165
diff
changeset
|
193 WSPLGENReportFacet report= new WSPLGENReportFacet( |
ace192d3283d
Add an error message to the calculation report if an error occured while WSPLGENJob creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1165
diff
changeset
|
194 ComputeType.ADVANCE, hash, getID(), res); |
ace192d3283d
Add an error message to the calculation report if an error occured while WSPLGENJob creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1165
diff
changeset
|
195 |
ace192d3283d
Add an error message to the calculation report if an error occured while WSPLGENJob creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1165
diff
changeset
|
196 facets.add(report); |
ace192d3283d
Add an error message to the calculation report if an error occured while WSPLGENJob creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1165
diff
changeset
|
197 |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
198 if (job == null) { |
1107
005c2964f9af
Use the correct SRID while reading GeoJSON barriers and writing line/polygon shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1106
diff
changeset
|
199 if (KEEP_ARTIFACT_DIR.equals("false")) { |
005c2964f9af
Use the correct SRID while reading GeoJSON barriers and writing line/polygon shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1106
diff
changeset
|
200 removeDirectory(artifact); |
005c2964f9af
Use the correct SRID while reading GeoJSON barriers and writing line/polygon shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1106
diff
changeset
|
201 } |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
202 |
1168
ace192d3283d
Add an error message to the calculation report if an error occured while WSPLGENJob creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1165
diff
changeset
|
203 calculation.addError(-1, Resources.getMsg( |
ace192d3283d
Add an error message to the calculation report if an error occured while WSPLGENJob creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1165
diff
changeset
|
204 context.getMeta(), |
ace192d3283d
Add an error message to the calculation report if an error occured while WSPLGENJob creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1165
diff
changeset
|
205 "wsplgen.job.error", |
ace192d3283d
Add an error message to the calculation report if an error occured while WSPLGENJob creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1165
diff
changeset
|
206 "wsplgen.job.error")); |
ace192d3283d
Add an error message to the calculation report if an error occured while WSPLGENJob creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1165
diff
changeset
|
207 |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
208 logger.error("No WSPLGEN processing has been started!"); |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
209 |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
210 return null; |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
211 } |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
212 |
1128
727c53fd0dc7
Some bugfixes when starting/finishing WSPLGEN jobs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1127
diff
changeset
|
213 context.afterCall(CallContext.BACKGROUND); |
1165
3b034bb5fce7
Add status message for queued WSPLGEN jobs to notify users.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1164
diff
changeset
|
214 context.addBackgroundMessage(new CalculationMessage( |
3b034bb5fce7
Add status message for queued WSPLGEN jobs to notify users.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1164
diff
changeset
|
215 JobObserver.STEPS.length, |
3b034bb5fce7
Add status message for queued WSPLGEN jobs to notify users.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1164
diff
changeset
|
216 0, |
3b034bb5fce7
Add status message for queued WSPLGEN jobs to notify users.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1164
diff
changeset
|
217 Resources.getMsg( |
3b034bb5fce7
Add status message for queued WSPLGEN jobs to notify users.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1164
diff
changeset
|
218 context.getMeta(), |
3b034bb5fce7
Add status message for queued WSPLGEN jobs to notify users.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1164
diff
changeset
|
219 "wsplgen.job.queued", |
3b034bb5fce7
Add status message for queued WSPLGEN jobs to notify users.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1164
diff
changeset
|
220 "wsplgen.job.queued") |
3b034bb5fce7
Add status message for queued WSPLGEN jobs to notify users.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1164
diff
changeset
|
221 )); |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
222 |
1970
368040e5c400
Improved the Scheduler to be able to cancel running WSPLGEN jobs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1955
diff
changeset
|
223 GlobalContext gc = (GlobalContext) context.globalContext(); |
368040e5c400
Improved the Scheduler to be able to cancel running WSPLGEN jobs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1955
diff
changeset
|
224 Scheduler scheduler = (Scheduler) gc.get(FLYSContext.SCHEDULER); |
1649
74142aa5d938
Improved WSPLGEN start to suppress inconsistent Artifact states.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1641
diff
changeset
|
225 scheduler.addJob(job); |
74142aa5d938
Improved WSPLGEN start to suppress inconsistent Artifact states.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1641
diff
changeset
|
226 |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
227 return null; |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
228 } |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
229 |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
230 |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
231 /** |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
232 * Returns (and creates if not existing) the directory for storing WSPLEN |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
233 * data for the owner artifact. |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
234 * |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
235 * @param artifact The owner Artifact. |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
236 * |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
237 * @return the directory for WSPLEN data. |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
238 */ |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
239 protected File getDirectory(FLYSArtifact artifact) { |
1129
da3c3e286c88
Introduced a MapfileGenerator that creates Mapserver specific mapfiles based on WSPLGEN results read from filesystem.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1128
diff
changeset
|
240 String shapePath = FLYSUtils.getXPathString( |
4656
442fbb290fa8
Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents:
4654
diff
changeset
|
241 FLYSUtils.XPATH_FLOODMAP_SHAPEFILE_DIR); |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
242 |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
243 File artifactDir = FileTools.getDirectory( |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
244 shapePath, artifact.identifier()); |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
245 |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
246 return artifactDir; |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
247 } |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
248 |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
249 |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
250 /** |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
251 * Removes the directory and all its content where the required data and the |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
252 * results of WSPLGEN are stored. Should be called in endOfLife(). |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
253 */ |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
254 protected void removeDirectory(FLYSArtifact artifact) { |
1129
da3c3e286c88
Introduced a MapfileGenerator that creates Mapserver specific mapfiles based on WSPLGEN results read from filesystem.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1128
diff
changeset
|
255 String shapePath = FLYSUtils.getXPathString( |
4656
442fbb290fa8
Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents:
4654
diff
changeset
|
256 FLYSUtils.XPATH_FLOODMAP_SHAPEFILE_DIR); |
1129
da3c3e286c88
Introduced a MapfileGenerator that creates Mapserver specific mapfiles based on WSPLGEN results read from filesystem.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1128
diff
changeset
|
257 |
da3c3e286c88
Introduced a MapfileGenerator that creates Mapserver specific mapfiles based on WSPLGEN results read from filesystem.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1128
diff
changeset
|
258 File artifactDir = new File(shapePath, artifact.identifier()); |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
259 |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
260 if (artifactDir.exists()) { |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
261 logger.info("Delete directory: " + artifactDir.getAbsolutePath()); |
4656
442fbb290fa8
Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents:
4654
diff
changeset
|
262 if (!FileTools.deleteRecursive(artifactDir)) { |
442fbb290fa8
Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents:
4654
diff
changeset
|
263 logger.warn("Could not delete directory: " |
442fbb290fa8
Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents:
4654
diff
changeset
|
264 + artifactDir.getAbsolutePath()); |
442fbb290fa8
Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents:
4654
diff
changeset
|
265 } |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
266 } |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
267 else { |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
268 logger.debug("There is no directory to remove."); |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
269 } |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
270 } |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
271 |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
272 |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
273 @Override |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
274 public void endOfLife(Artifact artifact, Object callContext) { |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
275 logger.info("FloodMapState.endOfLife: " + artifact.identifier()); |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
276 |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
277 FLYSArtifact flys = (FLYSArtifact) artifact; |
1782
93fe7debd687
Re-create FLYS mapfile when FloodMapState.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1707
diff
changeset
|
278 |
1970
368040e5c400
Improved the Scheduler to be able to cancel running WSPLGEN jobs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1955
diff
changeset
|
279 Scheduler scheduler = Scheduler.getInstance(); |
368040e5c400
Improved the Scheduler to be able to cancel running WSPLGEN jobs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1955
diff
changeset
|
280 scheduler.cancelJob(flys.identifier()); |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
281 } |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
282 |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
283 |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
284 protected WSPLGENJob prepareWSPLGENJob( |
1149
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
285 FLYSArtifact artifact, |
1164
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
286 FacetCreator facetCreator, |
1149
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
287 File artifactDir, |
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
288 CallContext context, |
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
289 WSPLGENCalculation calculation |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
290 ) { |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
291 logger.debug("FloodMapState.prepareWSPLGENJob"); |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
292 |
1149
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
293 WSPLGENJob job = new WSPLGENJob( |
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
294 artifact, |
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
295 artifactDir, |
1650
aaf8d32f85bd
Improved Facet creation for floodmaps - WSPLGEN and barriers Facets are only created if the calculation was successful.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1649
diff
changeset
|
296 facetCreator, |
1149
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
297 context, |
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
298 calculation); |
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
299 |
64b465699a24
Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1144
diff
changeset
|
300 File paraFile = new File(artifactDir, WSPLGEN_PARAMETER_FILE); |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
301 |
1096
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
302 setOut(artifact, job); |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
303 setRange(artifact, job); |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
304 setDelta(artifact, job); |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
305 setGel(artifact, job); |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
306 setDist(artifact, job); |
1164
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
307 setLine(artifact, facetCreator, artifactDir, job); |
2639
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
308 setUserShape(artifact, facetCreator, artifactDir, job); |
1108
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
309 setAxis(artifact, artifactDir, job); |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
310 setPro(artifact, artifactDir, job); |
1109
ba9fa72dd6f5
Write file path of DMGs into the WSPLGEN job while preparing WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1108
diff
changeset
|
311 setDgm(artifact, job); |
1110
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
312 setArea(artifact, artifactDir, job); |
1118
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
313 setOutFile(artifact, job); |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
314 setWsp(artifact, context, artifactDir, job); // WSP |
1096
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
315 |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
316 // TODO |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
317 // setWspTag(artifact, job); |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
318 |
1091
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
319 try { |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
320 job.toFile(paraFile); |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
321 |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
322 return job; |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
323 } |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
324 catch (IOException ioe) { |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
325 logger.warn("Cannot write PAR file: " + ioe.getMessage()); |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
326 } |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
327 catch (IllegalArgumentException iae) { |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
328 logger.warn("Cannot write PAR file: " + iae.getMessage()); |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
329 } |
7230e087ef8b
Prepare directories for WSPLGEN specific data in FloodMap state and remove those directories when State.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1064
diff
changeset
|
330 |
935
353ddfa231a7
Introduced a new output 'floodmap' for the FloodMapState.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
927
diff
changeset
|
331 return null; |
353ddfa231a7
Introduced a new output 'floodmap' for the FloodMapState.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
927
diff
changeset
|
332 } |
1096
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
333 |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
334 |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
335 protected void setOut(FLYSArtifact artifact, WSPLGENJob job) { |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
336 job.setOut(WSPLGEN_DEFAULT_OUTPUT); |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
337 } |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
338 |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
339 |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
340 protected void setRange(FLYSArtifact artifact, WSPLGENJob job) { |
4854
c53b3fdc9821
FloodMapState: Updated to use RangeAccess instead of FLYSUtils.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4656
diff
changeset
|
341 RangeAccess rangeAccess = new RangeAccess(artifact, null); |
c53b3fdc9821
FloodMapState: Updated to use RangeAccess instead of FLYSUtils.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4656
diff
changeset
|
342 double[] range = rangeAccess.getKmRange(); |
1096
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
343 |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
344 job.setStart(range[0]); |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
345 job.setEnd(range[1]); |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
346 } |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
347 |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
348 |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
349 protected void setDelta(FLYSArtifact artifact, WSPLGENJob job) { |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
350 String from = artifact.getDataAsString("diff_from"); |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
351 String to = artifact.getDataAsString("diff_to"); |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
352 String diff = artifact.getDataAsString("diff_diff"); |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
353 |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
354 try { |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
355 job.setFrom(Double.parseDouble(from)); |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
356 } |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
357 catch (NumberFormatException nfe) { |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
358 } |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
359 |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
360 try { |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
361 job.setTo(Double.parseDouble(to)); |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
362 } |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
363 catch (NumberFormatException nfe) { |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
364 } |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
365 |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
366 try { |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
367 job.setDiff(Double.parseDouble(diff)); |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
368 } |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
369 catch (NumberFormatException nfe) { |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
370 } |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
371 } |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
372 |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
373 |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
374 protected void setGel(FLYSArtifact artifact, WSPLGENJob job) { |
1955
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
375 String gel = artifact.getDataAsString("scenario"); |
1096
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
376 |
1955
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
377 logger.debug("Selected gel = '" + gel + "'"); |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
378 |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
379 if (gel == null || gel.length() == 0) { |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
380 job.setGel(WSPLGENJob.GEL_NOSPERRE); |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
381 } |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
382 else if (gel.equals("scenario.current")) { |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
383 job.setGel(WSPLGENJob.GEL_SPERRE); |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
384 } |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
385 else if (gel.equals("scenario.scenario")) { |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
386 job.setGel(WSPLGENJob.GEL_SPERRE); |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
387 } |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
388 else { |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
389 job.setGel(WSPLGENJob.GEL_NOSPERRE); |
1096
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
390 } |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
391 } |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
392 |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
393 |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
394 protected void setDist(FLYSArtifact artifact, WSPLGENJob job) { |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
395 String dist = artifact.getDataAsString("profile_distance"); |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
396 |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
397 try { |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
398 job.setDist(Double.parseDouble(dist)); |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
399 } |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
400 catch (NumberFormatException nfe) { |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
401 // nothing to do here |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
402 } |
9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1091
diff
changeset
|
403 } |
1106
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
404 |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
405 |
1164
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
406 protected void setLine( |
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
407 FLYSArtifact artifact, |
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
408 FacetCreator facetCreator, |
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
409 File dir, |
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
410 WSPLGENJob job |
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
411 ) { |
1106
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
412 String geoJSON = artifact.getDataAsString("uesk.barriers"); |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
413 String srid = FLYSUtils.getRiverSrid(artifact); |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
414 String srs = "EPSG:" + srid; |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
415 |
1164
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
416 if (geoJSON == null || geoJSON.length() == 0) { |
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
417 logger.debug("No barrier features in parameterization existing."); |
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
418 return; |
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
419 } |
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
420 |
1123
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
421 SimpleFeatureType ft = getBarriersFeatureType( |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
422 "barriers", srs, Geometry.class); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
423 |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
424 List<SimpleFeature> features = GeometryUtils.parseGeoJSON(geoJSON, ft); |
3555
b1912514e0f5
s/container.size() == 0/container.isEmpty()/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3302
diff
changeset
|
425 if (features == null || features.isEmpty()) { |
1107
005c2964f9af
Use the correct SRID while reading GeoJSON barriers and writing line/polygon shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1106
diff
changeset
|
426 logger.debug("No barrier features extracted."); |
005c2964f9af
Use the correct SRID while reading GeoJSON barriers and writing line/polygon shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1106
diff
changeset
|
427 return; |
005c2964f9af
Use the correct SRID while reading GeoJSON barriers and writing line/polygon shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1106
diff
changeset
|
428 } |
1106
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
429 |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
430 FeatureCollection[] fcs = splitLinesAndPolygons(features); |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
431 |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
432 File shapeLines = new File(dir, WSPLGEN_BARRIERS_LINES); |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
433 File shapePolys = new File(dir, WSPLGEN_BARRIERS_POLY); |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
434 |
1124
28a595b32980
Set the 'typ' attribute of lines and polygons in barrier shapefiles while shapefile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1123
diff
changeset
|
435 Object[][] obj = new Object[][] { |
28a595b32980
Set the 'typ' attribute of lines and polygons in barrier shapefiles while shapefile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1123
diff
changeset
|
436 new Object[] { "typ", String.class } |
28a595b32980
Set the 'typ' attribute of lines and polygons in barrier shapefiles while shapefile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1123
diff
changeset
|
437 }; |
28a595b32980
Set the 'typ' attribute of lines and polygons in barrier shapefiles while shapefile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1123
diff
changeset
|
438 |
1955
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
439 String scenario = job.getGel(); |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
440 |
1121
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
441 boolean l = GeometryUtils.writeShapefile( |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
442 shapeLines, |
1124
28a595b32980
Set the 'typ' attribute of lines and polygons in barrier shapefiles while shapefile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1123
diff
changeset
|
443 GeometryUtils.buildFeatureType("lines", srs, LineString.class, obj), |
1121
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
444 fcs[0]); |
1106
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
445 |
1121
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
446 if (l) { |
1123
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
447 logger.debug( |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
448 "Successfully created barrier line shapefile. " + |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
449 "Write shapefile path into WSPLGEN job."); |
1955
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
450 |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
451 if (scenario.equals(WSPLGENJob.GEL_NOSPERRE)) { |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
452 logger.debug("WSPLGEN will not use barrier features."); |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
453 } |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
454 else { |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
455 job.addLin(shapeLines.getAbsolutePath()); |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
456 } |
1121
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
457 } |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
458 |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
459 boolean p = GeometryUtils.writeShapefile( |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
460 shapePolys, |
1124
28a595b32980
Set the 'typ' attribute of lines and polygons in barrier shapefiles while shapefile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1123
diff
changeset
|
461 GeometryUtils.buildFeatureType("polygons", srs, Polygon.class, obj), |
1121
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
462 fcs[1]); |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
463 |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
464 if (p) { |
1123
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
465 logger.debug( |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
466 "Successfully created barrier polygon shapefile. " + |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
467 "Write shapefile path into WSPLGEN job."); |
1955
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
468 |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
469 if (scenario.equals(WSPLGENJob.GEL_NOSPERRE)) { |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
470 logger.debug("WSPLGEN will not use barrier features."); |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
471 } |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
472 else { |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
473 job.addLin(shapePolys.getAbsolutePath()); |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
474 } |
1106
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
475 } |
1164
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
476 |
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
477 if (p || l) { |
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
478 facetCreator.createBarrierFacet(); |
0398c2b8dbaf
Do only create WSPLGEN and barrier facets if the WSPLGEN job has been added to the Scheduler and if there are digitized geometries existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1160
diff
changeset
|
479 } |
1107
005c2964f9af
Use the correct SRID while reading GeoJSON barriers and writing line/polygon shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1106
diff
changeset
|
480 } |
005c2964f9af
Use the correct SRID while reading GeoJSON barriers and writing line/polygon shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1106
diff
changeset
|
481 |
005c2964f9af
Use the correct SRID while reading GeoJSON barriers and writing line/polygon shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1106
diff
changeset
|
482 |
2639
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
483 protected void setUserShape( |
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
484 FLYSArtifact artifact, |
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
485 FacetCreator facetCreator, |
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
486 File dir, |
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
487 WSPLGENJob job |
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
488 ) { |
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
489 File archive = new File(dir, WSPLGEN_USER_ZIP); |
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
490 boolean exists = archive.exists(); |
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
491 logger.debug("Zip file exists: " + exists); |
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
492 if (exists) { |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
4994
diff
changeset
|
493 FileUtils.extractZipfile(archive, dir); |
2639
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
494 |
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
495 job.addLin(dir + "/" + WSPLGEN_USER_SHAPE); |
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
496 facetCreator.createUserShapeFacet(); |
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
497 } |
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
498 } |
a78dafdd8590
Issue 657.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2095
diff
changeset
|
499 |
1123
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
500 protected SimpleFeatureType getBarriersFeatureType( |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
501 String name, |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
502 String srs, |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
503 Class type |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
504 ) { |
1707
3bf464ec436f
Added a further attribute to the feature type description for barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1650
diff
changeset
|
505 Object[][] attrs = new Object[3][]; |
1123
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
506 attrs[0] = new Object[] { "typ", String.class }; |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
507 attrs[1] = new Object[] { "elevation", Double.class }; |
1707
3bf464ec436f
Added a further attribute to the feature type description for barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1650
diff
changeset
|
508 attrs[2] = new Object[] { "mark.selected", Integer.class }; |
1107
005c2964f9af
Use the correct SRID while reading GeoJSON barriers and writing line/polygon shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1106
diff
changeset
|
509 |
1123
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
510 return GeometryUtils.buildFeatureType(name, srs, type, attrs); |
1106
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
511 } |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
512 |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
513 |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
514 protected FeatureCollection[] splitLinesAndPolygons(List<SimpleFeature> f) { |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
515 FeatureCollection lines = FeatureCollections.newCollection(); |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
516 FeatureCollection polygons = FeatureCollections.newCollection(); |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
517 |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
518 for (SimpleFeature feature: f) { |
1119
faca1825818e
Write additional attributes ELEVATION and KILOMETER into crosssection track shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1118
diff
changeset
|
519 Geometry geom = (Geometry) feature.getDefaultGeometry(); |
1106
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
520 |
1123
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
521 |
1106
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
522 if (geom instanceof LineString) { |
4569
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
523 geom = applyElevationAttribute(feature, geom); |
1106
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
524 lines.add(feature); |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
525 } |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
526 else if (geom instanceof Polygon) { |
4569
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
527 geom = applyElevationAttribute(feature, geom); |
1106
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
528 polygons.add(feature); |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
529 } |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
530 else { |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
531 logger.warn("Feature not supported: " + geom.getClass()); |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
532 } |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
533 } |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
534 |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
535 logger.debug("Found " + lines.size() + " barrier lines."); |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
536 logger.debug("Found " + polygons.size() + " barrier polygons."); |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
537 |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
538 return new FeatureCollection[] { lines, polygons }; |
e9f66d63bdd0
Write user defined barriers into a shapefile that is placed in the Artifact's directory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1096
diff
changeset
|
539 } |
1108
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
540 |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
541 |
1123
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
542 protected static Geometry applyElevationAttribute( |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
543 SimpleFeature feature, |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
544 Geometry geom |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
545 ) { |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
546 logger.debug("Apply elevations for: " + geom.getClass()); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
547 |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
548 List<Double> elevations = extractElevations(feature); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
549 int numPoints = geom.getNumPoints(); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
550 int numElevation = elevations.size(); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
551 |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
552 String typ = (String) feature.getAttribute("typ"); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
553 |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
554 if (numPoints > numElevation) { |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
555 logger.warn("More vertices in Geometry than elevations given."); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
556 } |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
557 |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
558 Coordinate[] c = geom.getCoordinates(); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
559 for (int i = 0; i < numPoints; i++) { |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
560 if (i < numElevation) { |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
561 c[i].z = elevations.get(i); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
562 } |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
563 else if (typ != null && typ.equals("Graben")) { |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
564 c[i].z = -9999d; |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
565 } |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
566 else { |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
567 c[i].z = 9999d; |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
568 } |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
569 } |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
570 |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
571 return geom; |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
572 } |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
573 |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
574 |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
575 protected static List<Double> extractElevations(SimpleFeature feature) { |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
576 String tmp = (String) feature.getAttribute("elevation"); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
577 String typ = (String) feature.getAttribute("typ"); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
578 |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
579 String[] elevations = tmp == null ? null : tmp.split(" "); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
580 |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
581 int num = elevations != null ? elevations.length : 0; |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
582 |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
583 List<Double> list = new ArrayList<Double>(num); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
584 |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
585 for (int i = 0; i < num; i++) { |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
586 try { |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
587 list.add(Double.parseDouble(elevations[i])); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
588 } |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
589 catch (NumberFormatException nfe) { |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
590 logger.warn("Error while parsing elevation at pos: " + i); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
591 if (typ != null && typ.equals("Graben")) { |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
592 list.add(new Double(-9999.0)); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
593 } |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
594 else { |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
595 list.add(new Double(9999.0)); |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
596 } |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
597 } |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
598 } |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
599 |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
600 return list; |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
601 } |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
602 |
be9bb260b835
Set the Z values of line and polygon barrier geometries used for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1121
diff
changeset
|
603 |
1108
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
604 protected void setAxis(FLYSArtifact artifact, File dir, WSPLGENJob job) { |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
605 String river = artifact.getDataAsString("river"); |
4994
63617e142dfe
Quick-fix for floodmaps. Use the correct projection for DGM.
Raimund Renkert <rrenkert@intevation.de>
parents:
4864
diff
changeset
|
606 String srid = FLYSUtils.getRiverDGMSrid(river); |
1108
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
607 String srs = "EPSG:" + srid; |
4994
63617e142dfe
Quick-fix for floodmaps. Use the correct projection for DGM.
Raimund Renkert <rrenkert@intevation.de>
parents:
4864
diff
changeset
|
608 logger.debug("srs: " + srs); |
2078
cbeeaaad1056
#440 Support river axes that consist of more than a single geometry.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1970
diff
changeset
|
609 List<RiverAxis> axes = RiverAxis.getRiverAxis(river); |
3555
b1912514e0f5
s/container.size() == 0/container.isEmpty()/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3302
diff
changeset
|
610 if (axes == null || axes.isEmpty()) { |
1108
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
611 logger.warn("Could not find river axis for: '" + river + "'"); |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
612 return; |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
613 } |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
614 |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
615 SimpleFeatureType ft = GeometryUtils.buildFeatureType( |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
616 "axis", srs, LineString.class); |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
617 |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
618 SimpleFeatureBuilder builder = new SimpleFeatureBuilder(ft); |
2078
cbeeaaad1056
#440 Support river axes that consist of more than a single geometry.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1970
diff
changeset
|
619 FeatureCollection collection = FeatureCollections.newCollection(); |
1108
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
620 |
2078
cbeeaaad1056
#440 Support river axes that consist of more than a single geometry.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1970
diff
changeset
|
621 for (int i = 0, n = axes.size(); i < n; i++) { |
cbeeaaad1056
#440 Support river axes that consist of more than a single geometry.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1970
diff
changeset
|
622 RiverAxis axis = axes.get(i); |
cbeeaaad1056
#440 Support river axes that consist of more than a single geometry.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1970
diff
changeset
|
623 |
cbeeaaad1056
#440 Support river axes that consist of more than a single geometry.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1970
diff
changeset
|
624 builder.add(axis.getGeom()); |
cbeeaaad1056
#440 Support river axes that consist of more than a single geometry.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1970
diff
changeset
|
625 collection.add(builder.buildFeature(String.valueOf(i))); |
cbeeaaad1056
#440 Support river axes that consist of more than a single geometry.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1970
diff
changeset
|
626 |
cbeeaaad1056
#440 Support river axes that consist of more than a single geometry.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1970
diff
changeset
|
627 builder.reset(); |
cbeeaaad1056
#440 Support river axes that consist of more than a single geometry.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1970
diff
changeset
|
628 } |
1108
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
629 |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
630 File axisShape = new File(dir, WSPLGEN_AXIS); |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
631 |
1121
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
632 boolean a = GeometryUtils.writeShapefile( |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
633 axisShape, |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
634 GeometryUtils.buildFeatureType("axis", srs, LineString.class), |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
635 collection); |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
636 |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
637 if (a) { |
1108
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
638 job.setAxis(axisShape.getAbsolutePath()); |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
639 } |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
640 } |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
641 |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
642 |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
643 protected void setPro(FLYSArtifact artifact, File dir, WSPLGENJob job) { |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
644 String river = artifact.getDataAsString("river"); |
4994
63617e142dfe
Quick-fix for floodmaps. Use the correct projection for DGM.
Raimund Renkert <rrenkert@intevation.de>
parents:
4864
diff
changeset
|
645 String srid = FLYSUtils.getRiverDGMSrid(river); |
1108
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
646 String srs = "EPSG:" + srid; |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
647 |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
648 List<CrossSectionTrack> cst = |
3070
6875120af2a2
Fetch only 'qps' cross section tracks for WSPLGEN calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2639
diff
changeset
|
649 CrossSectionTrack.getCrossSectionTrack(river, WSPLGEN_QPS_NAME); |
1108
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
650 |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
651 logger.debug("Found " + cst.size() + " CrossSectionTracks."); |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
652 |
1119
faca1825818e
Write additional attributes ELEVATION and KILOMETER into crosssection track shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1118
diff
changeset
|
653 Object[][] attrs = new Object[2][]; |
faca1825818e
Write additional attributes ELEVATION and KILOMETER into crosssection track shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1118
diff
changeset
|
654 attrs[0] = new Object[] { "ELEVATION", Double.class }; |
faca1825818e
Write additional attributes ELEVATION and KILOMETER into crosssection track shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1118
diff
changeset
|
655 attrs[1] = new Object[] { "KILOMETER", Double.class }; |
faca1825818e
Write additional attributes ELEVATION and KILOMETER into crosssection track shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1118
diff
changeset
|
656 |
1108
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
657 SimpleFeatureType ft = GeometryUtils.buildFeatureType( |
1119
faca1825818e
Write additional attributes ELEVATION and KILOMETER into crosssection track shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1118
diff
changeset
|
658 "qps", srs, LineString.class, attrs); |
1108
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
659 |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
660 SimpleFeatureBuilder builder = new SimpleFeatureBuilder(ft); |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
661 FeatureCollection collection = FeatureCollections.newCollection(); |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
662 |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
663 int i = 0; |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
664 for (CrossSectionTrack track: cst) { |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
665 builder.reset(); |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
666 builder.add(track.getGeom()); |
1119
faca1825818e
Write additional attributes ELEVATION and KILOMETER into crosssection track shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1118
diff
changeset
|
667 builder.add(track.getZ().doubleValue()); |
faca1825818e
Write additional attributes ELEVATION and KILOMETER into crosssection track shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1118
diff
changeset
|
668 builder.add(track.getKm().doubleValue()); |
1108
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
669 |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
670 collection.add(builder.buildFeature(String.valueOf(i++))); |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
671 } |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
672 |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
673 File qpsShape = new File(dir, WSPLGEN_QPS); |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
674 |
1121
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
675 boolean q = GeometryUtils.writeShapefile( |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
676 qpsShape, |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
677 GeometryUtils.buildFeatureType("qps", srs, LineString.class, attrs), |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
678 collection); |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
679 |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
680 if (q) { |
1108
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
681 job.setPro(qpsShape.getAbsolutePath()); |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
682 } |
5b1198c27d43
Export riveraxis and crosssections to shapefiles for WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1107
diff
changeset
|
683 } |
1109
ba9fa72dd6f5
Write file path of DMGs into the WSPLGEN job while preparing WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1108
diff
changeset
|
684 |
ba9fa72dd6f5
Write file path of DMGs into the WSPLGEN job while preparing WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1108
diff
changeset
|
685 |
ba9fa72dd6f5
Write file path of DMGs into the WSPLGEN job while preparing WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1108
diff
changeset
|
686 protected void setDgm(FLYSArtifact artifact, WSPLGENJob job) { |
1186
be8b5c06a1f8
Use DGM Id in FLYSArtifact's data pool to query DGMs for floodmaps instead of querying DGMs by given range values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1178
diff
changeset
|
687 String dgm_id = artifact.getDataAsString("dgm"); |
1109
ba9fa72dd6f5
Write file path of DMGs into the WSPLGEN job while preparing WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1108
diff
changeset
|
688 |
1186
be8b5c06a1f8
Use DGM Id in FLYSArtifact's data pool to query DGMs for floodmaps instead of querying DGMs by given range values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1178
diff
changeset
|
689 int id = -1; |
be8b5c06a1f8
Use DGM Id in FLYSArtifact's data pool to query DGMs for floodmaps instead of querying DGMs by given range values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1178
diff
changeset
|
690 try { |
be8b5c06a1f8
Use DGM Id in FLYSArtifact's data pool to query DGMs for floodmaps instead of querying DGMs by given range values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1178
diff
changeset
|
691 id = Integer.parseInt(dgm_id); |
be8b5c06a1f8
Use DGM Id in FLYSArtifact's data pool to query DGMs for floodmaps instead of querying DGMs by given range values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1178
diff
changeset
|
692 } |
be8b5c06a1f8
Use DGM Id in FLYSArtifact's data pool to query DGMs for floodmaps instead of querying DGMs by given range values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1178
diff
changeset
|
693 catch (NumberFormatException nfe) { /* do nothing */ } |
be8b5c06a1f8
Use DGM Id in FLYSArtifact's data pool to query DGMs for floodmaps instead of querying DGMs by given range values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1178
diff
changeset
|
694 |
be8b5c06a1f8
Use DGM Id in FLYSArtifact's data pool to query DGMs for floodmaps instead of querying DGMs by given range values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1178
diff
changeset
|
695 DGM dgm = DGM.getDGM(id); |
1109
ba9fa72dd6f5
Write file path of DMGs into the WSPLGEN job while preparing WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1108
diff
changeset
|
696 |
ba9fa72dd6f5
Write file path of DMGs into the WSPLGEN job while preparing WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1108
diff
changeset
|
697 if (dgm == null) { |
1186
be8b5c06a1f8
Use DGM Id in FLYSArtifact's data pool to query DGMs for floodmaps instead of querying DGMs by given range values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1178
diff
changeset
|
698 logger.warn("Could not find specified DGM."); |
1109
ba9fa72dd6f5
Write file path of DMGs into the WSPLGEN job while preparing WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1108
diff
changeset
|
699 |
ba9fa72dd6f5
Write file path of DMGs into the WSPLGEN job while preparing WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1108
diff
changeset
|
700 return; |
ba9fa72dd6f5
Write file path of DMGs into the WSPLGEN job while preparing WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1108
diff
changeset
|
701 } |
ba9fa72dd6f5
Write file path of DMGs into the WSPLGEN job while preparing WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1108
diff
changeset
|
702 |
ba9fa72dd6f5
Write file path of DMGs into the WSPLGEN job while preparing WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1108
diff
changeset
|
703 job.setDgm(dgm.getPath()); |
ba9fa72dd6f5
Write file path of DMGs into the WSPLGEN job while preparing WSPLGEN.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1108
diff
changeset
|
704 } |
1110
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
705 |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
706 |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
707 protected void setArea(FLYSArtifact artifact, File dir, WSPLGENJob job) { |
1955
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
708 String useFloodplain = artifact.getDataAsString("use_floodplain"); |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
709 if (!Boolean.valueOf(useFloodplain)) { |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
710 logger.debug("WSPLGEN will not use floodplain."); |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
711 return; |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
712 } |
ccf2235035d6
Various bugfixes in WSPLGEN parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1845
diff
changeset
|
713 |
1110
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
714 String river = artifact.getDataAsString("river"); |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
715 String srid = FLYSUtils.getRiverSrid(artifact); |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
716 String srs = "EPSG:" + srid; |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
717 |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
718 Floodplain plain = Floodplain.getFloodplain(river); |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
719 |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
720 SimpleFeatureType ft = GeometryUtils.buildFeatureType( |
1845
06c157848c8f
Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1782
diff
changeset
|
721 "talaue", srs, Polygon.class); |
1110
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
722 |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
723 SimpleFeatureBuilder builder = new SimpleFeatureBuilder(ft); |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
724 builder.add(plain.getGeom()); |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
725 |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
726 FeatureCollection collection = FeatureCollections.newCollection(); |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
727 collection.add(builder.buildFeature("0")); |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
728 |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
729 File talaueShape = new File(dir, WSPLGEN_FLOODPLAIN); |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
730 |
1121
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
731 boolean t = GeometryUtils.writeShapefile( |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
732 talaueShape, |
1845
06c157848c8f
Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1782
diff
changeset
|
733 GeometryUtils.buildFeatureType("talaue", srs, Polygon.class), |
1121
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
734 collection); |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
735 |
66783d957201
Close open shapefile transactions properly.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1120
diff
changeset
|
736 if (t) { |
1110
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
737 job.setArea(talaueShape.getAbsolutePath()); |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
738 } |
563e015f0f22
Export floodplain to shapefile and add its file path to WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1109
diff
changeset
|
739 } |
1118
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
740 |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
741 |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
742 protected void setOutFile(FLYSArtifact artifact, WSPLGENJob job) { |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
743 job.setOutFile(WSPLGEN_OUTPUT_FILE); |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
744 } |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
745 |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
746 |
1178
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
747 protected WQKms getWQKms(FLYSArtifact flys, CallContext cc) { |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
748 String wspString = flys.getDataAsString(WSP_ARTIFACT); |
4569
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
749 if (wspString == null) { |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
750 logger.debug("getWQKms(): wspString == null"); |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
751 return null; |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
752 } |
276d9bd3c77d
Workaround for NPE in FloodMapState.
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
753 String[] parts = wspString.split(";"); |
1178
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
754 String otherArtifact = parts[0]; |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
755 |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
756 int idx = -1; |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
757 try { |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
758 idx = Integer.parseInt(parts[2]); |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
759 } |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
760 catch (NumberFormatException nfe) { /* do nothing */ } |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
761 |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
762 FLYSArtifact src = otherArtifact != null |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
763 ? FLYSUtils.getArtifact(otherArtifact, cc) |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
764 : flys; |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
765 |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
766 logger.debug("Use waterlevel provided by Artifact: " + src.identifier()); |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
767 |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
768 CalculationResult rawData = (CalculationResult) src.compute( |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
769 cc, |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
770 null, |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
771 WINFO_WSP_STATE_ID, |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
772 ComputeType.ADVANCE, |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
773 false); |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
774 |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
775 WQKms[] wqkms = (WQKms[]) rawData.getData(); |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
776 |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
777 return wqkms == null || idx == -1 || idx >= wqkms.length |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
778 ? null |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
779 : wqkms[idx]; |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
780 } |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
781 |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
782 |
1118
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
783 protected void setWsp( |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
784 FLYSArtifact artifact, |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
785 CallContext context, |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
786 File dir, |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
787 WSPLGENJob job) |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
788 { |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
789 logger.debug("FloodMapState.setWsp"); |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
790 |
1178
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
791 WQKms data = getWQKms(artifact, context); |
1118
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
792 |
1178
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
793 if (data == null) { |
1118
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
794 logger.warn("No WST data found!"); |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
795 return; |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
796 } |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
797 |
1178
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
798 WstWriter writer = new WstWriter(1); |
1118
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
799 |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
800 // TODO REMOVE job.setWspTag(...) This is only used until the user is |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
801 // able to select the WSP column himself! |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
802 boolean writeWspTag = true; |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
803 |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
804 double[] buf = new double[4]; |
1178
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
805 logger.debug("Add WST column: " + data.getName()); |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
806 writer.addColumn(data.getName()); |
1118
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
807 |
1178
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
808 if (writeWspTag) { |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
809 job.setWspTag(data.getName()); |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
810 writeWspTag = false; |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
811 } |
1118
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
812 |
1178
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
813 for (int i = 0, num = data.size(); i < num; i++) { |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
814 data.get(i, buf); |
1b432c260e97
Enabled the FloodMapState to fetch waterlevel data from external Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1168
diff
changeset
|
815 writer.add(buf); |
1118
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
816 } |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
817 |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
818 FileOutputStream fout = null; |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
819 |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
820 try { |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
821 File wspFile = new File(dir, WSPLGEN_WSP_FILE); |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
822 fout = new FileOutputStream(wspFile); |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
823 |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
824 writer.write(fout); |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
825 |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
826 job.setWsp(wspFile.getAbsolutePath()); |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
827 } |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
828 catch (FileNotFoundException fnfe) { |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
829 logger.warn("Error while writing wsp file: " + fnfe.getMessage()); |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
830 } |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
831 finally { |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
832 if (fout != null) { |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
833 try { |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
834 fout.close(); |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
835 } |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
836 catch (IOException ioe) { /* do nothing */ } |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
837 } |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
838 } |
7398280b11a0
Write WSP file for WSPLGEN and add its filepath to the WSPLGEN job.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1110
diff
changeset
|
839 } |
927
53a2be494765
Enhanced the transition model to continue the parameterization in the waterlevel state to compute flood maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
840 } |
53a2be494765
Enhanced the transition model to continue the parameterization in the waterlevel state to compute flood maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
841 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |