Działający w wersji jednowątkowej.

This commit is contained in:
2026-01-23 21:39:05 +01:00
parent 8455b93b5b
commit 3e40017904
3 changed files with 37 additions and 19 deletions

View File

@@ -1,4 +1,5 @@
<configuration> <configuration>
<timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<!-- <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>--> <!-- <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>-->
@@ -6,7 +7,8 @@
</encoder> </encoder>
</appender> </appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender"> <appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>terrain.log</file> <file>logfile-${bySecond}.txt</file>
<!-- <file>terrain.log</file>-->
<append>true</append> <append>true</append>
<encoder> <encoder>
<!-- <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>--> <!-- <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>-->

View File

@@ -6,6 +6,9 @@ import pl.wat.ms4ds.terrain.*;
import java.io.*; import java.io.*;
import java.util.*; import java.util.*;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream; import java.util.zip.ZipInputStream;
@@ -20,13 +23,24 @@ public class NMTDataReader {
// Dzieli na podstringi biorąc jako znak podziału spację i jej wielokrotność // Dzieli na podstringi biorąc jako znak podziału spację i jej wielokrotność
String[] splitted2 = "b a e l.d u n g".split("[ ]+"); String[] splitted2 = "b a e l.d u n g".split("[ ]+");
String fn_list = "D:/work/nmt/m-33_files.txt"; // String fn_list = "D:/work/nmt/m-33_files.txt";
String inDir = "D:/work/nmt/m-33/"; String inDir = "D:/work/nmt/";
String workDir = "D:/work/temp/"; String workDir = "D:/work/temp/";
String outDir = "D:/work/kwadraty_nmt/withElevation/25m/"; String outDir = "D:/work/kwadraty_nmt/withElevation/25m/";
ArrayList<String> list = new ArrayList<>();
list.add("m-33");
list.add("m-34");
list.add("m-35");
list.add("n-33");
list.add("n-34");
ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor();
Thread t = new Thread(() -> { Thread t = new Thread(() -> {
generateNMTData(fn_list, 0, 24000, inDir, workDir, outDir); for (int i = 0; i < list.size(); i++) {
String fn_list = inDir + list.get(i) + "_files.txt";
generateNMTData(executor, fn_list, 0, 24000, inDir + list.get(i) + "/", workDir, outDir);
}
}); });
// HashMap<Coord.Grid, NMTData> nmtDataHashMap = new HashMap<>(); // HashMap<Coord.Grid, NMTData> nmtDataHashMap = new HashMap<>();
// try { // try {
@@ -139,7 +153,7 @@ public class NMTDataReader {
* @param workDir * @param workDir
* @param outDir * @param outDir
*/ */
static void generateNMTData(String fn_list, int startPos, int endPos, String inDir, String workDir, String outDir) { static void generateNMTData(ExecutorService executor, String fn_list, int startPos, int endPos, String inDir, String workDir, String outDir) {
File file = new File(fn_list); File file = new File(fn_list);
ArrayList<String> fileNames = new ArrayList<>(); ArrayList<String> fileNames = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)))) { try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)))) {
@@ -176,20 +190,22 @@ public class NMTDataReader {
for (String ufn : unzippedFileNames) { for (String ufn : unzippedFileNames) {
String fpath = workDir + ufn; String fpath = workDir + ufn;
try { try {
readFromFile(fpath, nmtDataHashMap);
f = new File(fpath); f = new File(fpath);
f.delete();
} catch (Exception e) {
if (f.length() < 10) { if (f.length() < 10) {
logger.warn("File: {} is empty.", ufn); logger.warn("File: {} is empty.", ufn);
continue;
}
readFromFile(fpath, nmtDataHashMap);
} catch (Exception e) {
logger.warn("Error while reading from file: {}.", ufn);
try (BufferedWriter writer = new BufferedWriter(new FileWriter("D:/Work/nmt/status.txt", true))) {
writer.write("Error while reading file: " + ufn + " at position: " + i + "\n");
} catch (IOException e1) {
logger.debug(e1.getMessage());
}
} finally {
if (f != null) {
f.delete(); f.delete();
} else {
logger.warn("Error while reading from file: {}.", ufn);
try (BufferedWriter writer = new BufferedWriter(new FileWriter("D:/Work/nmt/status.txt", true))) {
writer.write("Error while reading file: " + ufn + " at position: " + i + "\n");
} catch (IOException e1) {
logger.debug(e1.getMessage());
}
} }
} }
} }

View File

@@ -4,13 +4,13 @@ x_ref=14
y_ref=49 y_ref=49
dx_ref=11 dx_ref=11
dy_ref=7 dy_ref=7
#kwadraty_dir=D:/work/kwadraty_nmt/withElevation/ #kwadraty_dir=D:/work/terrain/
#kwadraty_dir=D:/Workspace/_data/new/ kwadraty_dir=D:/work/kwadraty_nmt/withElevation/
kwadraty_dir=C:/Workspace/_data/swdt/ms4ds/teren/kwadraty/ #kwadraty_dir=C:/Workspace/_data/swdt/ms4ds/teren/kwadraty/
drogi_dir=au2data/new_teren/Polska/drogi/ drogi_dir=au2data/new_teren/Polska/drogi/
# #
#Rozdzielczosc terenu dl_mk=200 | 100 | 50 | 25 | 20 #Rozdzielczosc terenu dl_mk=200 | 100 | 50 | 25 | 20
dl_mk=100 dl_mk=25
# #
#W celu wymuszenia (mimo jej braku) przejezdności terenu nalezy ustawić na: on #W celu wymuszenia (mimo jej braku) przejezdności terenu nalezy ustawić na: on
przejezdnosc_zawsze=off przejezdnosc_zawsze=off