diff --git a/enrich-citygml-with-greenarea/src/main/java/de/hft/stuttgart/citygml/green/alkis/AlkisGreenEnricher.java b/enrich-citygml-with-greenarea/src/main/java/de/hft/stuttgart/citygml/green/alkis/AlkisGreenEnricher.java index 7d8cff10d41eb92dad9f397e39799a539b74e0e6..e9aa72db984e0128ae3bb218248d8e62ef70df1a 100644 --- a/enrich-citygml-with-greenarea/src/main/java/de/hft/stuttgart/citygml/green/alkis/AlkisGreenEnricher.java +++ b/enrich-citygml-with-greenarea/src/main/java/de/hft/stuttgart/citygml/green/alkis/AlkisGreenEnricher.java @@ -58,6 +58,9 @@ public class AlkisGreenEnricher CityGMLWriteException { System.out.println("Reading CityGML file"); Path inFile = Paths.get(args[0]); + Path alkisDataPath = Paths.get(args[1]); + Path baumKatasterPath = Paths.get(args[2]); + String outputSuffix = args[3]; CityModel cityModel = GreenEnricher.readCityGml(inFile); GreenEnricher.createTransformers(cityModel); @@ -79,7 +82,7 @@ public class AlkisGreenEnricher // ignore green areas from osm osmData.getGreenAreas().clear(); - parseAlkisData(osmData); + parseAlkisData(osmData, alkisDataPath); System.out.println("Fit data in bounding box"); @@ -90,14 +93,14 @@ public class AlkisGreenEnricher GreenEnricher.convertRoadAreasToCityGML(cityModel, osmData); GreenEnricher.converLandUseAreasToCityGML(cityModel, osmData); - TreeUtils.insertTrees(cityModel, osmData); + TreeUtils.insertTrees(cityModel, osmData, baumKatasterPath); GreenEnricher.clampToGround(cityModel); String inputString = inFile.getFileName().toString(); String inputPathWithoutFileEnding = inputString.substring(0, inputString.lastIndexOf('.')); - Path outputPath = Paths.get("data", inputPathWithoutFileEnding + "_with_alkis_greens_realistic.gml"); + Path outputPath = Paths.get("data", inputPathWithoutFileEnding + "_" + outputSuffix + ".gml"); System.out.println("Writing output file."); GreenEnricher.writeCityGML(cityModel, outputPath); System.out.println("Done"); @@ -105,8 +108,7 @@ public class AlkisGreenEnricher } - private static void parseAlkisData(OsmData osmData) throws MalformedURLException, IOException { - Path alkisDataPath = Paths.get("data", "tn_09663", "Nutzung.shp"); + private static void parseAlkisData(OsmData osmData, Path alkisDataPath) throws MalformedURLException, IOException { Map<String, Object> readParameters = new HashMap<>(); readParameters.put("url", alkisDataPath.toUri().toURL()); diff --git a/enrich-citygml-with-greenarea/src/main/java/de/hft/stuttgart/citygml/green/osm/TreeUtils.java b/enrich-citygml-with-greenarea/src/main/java/de/hft/stuttgart/citygml/green/osm/TreeUtils.java index aefaeb6444a561c9b9c2265e6d1b68e4acf44c0c..b423f15f28034f5be08f5a9ea3ef4b2f5263c536 100644 --- a/enrich-citygml-with-greenarea/src/main/java/de/hft/stuttgart/citygml/green/osm/TreeUtils.java +++ b/enrich-citygml-with-greenarea/src/main/java/de/hft/stuttgart/citygml/green/osm/TreeUtils.java @@ -1,7 +1,7 @@ package de.hft.stuttgart.citygml.green.osm; import java.io.IOException; -import java.nio.file.Paths; +import java.nio.file.Path; import java.util.Iterator; import java.util.UUID; import org.citygml4j.core.model.core.AbstractCityObjectProperty; @@ -16,9 +16,8 @@ import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty; public class TreeUtils { - public static void insertTrees(CityModel cityModel, OsmData osmData) throws IOException { - TreeKatasterData katasterData = TreeKatasterData - .parseTreeKatasterData(Paths.get("data", "Trees", "Trees_realisticScenario_20240201.shp")); + public static void insertTrees(CityModel cityModel, OsmData osmData, Path baumKatasterPath) throws IOException { + TreeKatasterData katasterData = TreeKatasterData.parseTreeKatasterData(baumKatasterPath); generateTreesFromKataster(cityModel, katasterData); // TreeKatasterData katasterData2 = TreeKatasterData.parseTreeKatasterData(Paths.get("data", "Trees_realistic_20240201.shp")); diff --git a/enrich-citygml-with-greenarea/src/test/java/de/hft/stuttgart/citygml/green/alkis/AlkisGreenEnricherTest.java b/enrich-citygml-with-greenarea/src/test/java/de/hft/stuttgart/citygml/green/alkis/AlkisGreenEnricherTest.java index 61980c3ec73997f4288e4bdd2669524435be7092..2b59f93336468ee4f2175ae31782b71475c76f84 100644 --- a/enrich-citygml-with-greenarea/src/test/java/de/hft/stuttgart/citygml/green/alkis/AlkisGreenEnricherTest.java +++ b/enrich-citygml-with-greenarea/src/test/java/de/hft/stuttgart/citygml/green/alkis/AlkisGreenEnricherTest.java @@ -5,12 +5,13 @@ import org.junit.jupiter.api.Test; class AlkisGreenEnricherTest { - @Test void testAlkisGreen() throws Exception { - String[] args = new String[] { "data/Grombühl_v4_case_study.gml" }; - + String[] args = new String[] { "data/Grombühl_v4_case_study.gml", // Input GML + "data/tn_09663/Nutzung.shp", // ALKIS Data + "data/Trees/Trees_realisticScenario_20240201.shp", // Added trees, in Baumkatasterformat, + "with_alkis_greens_realistic" // Output GML suffix + }; AlkisGreenEnricher.main(args); } - }