Skip to content

Commit 9f2754b

Browse files
committed
updated to support PIRATA and RAMA SSS data
1 parent ba6bf34 commit 9f2754b

File tree

8 files changed

+39
-24
lines changed

8 files changed

+39
-24
lines changed

core/src/main/java/com/bc/fiduceo/reader/insitu/tao/preproc/AirtProvider.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.bc.fiduceo.reader.insitu.tao.preproc;
22

3-
import org.esa.snap.core.util.StringUtils;
4-
53
import java.io.BufferedReader;
64
import java.io.File;
75
import java.io.FileReader;
@@ -23,6 +21,7 @@ void open(File airtFile) {
2321
final BufferedReader bufferedReader = new BufferedReader(fileReader);
2422
String line;
2523
while ((line = bufferedReader.readLine()) != null) {
24+
line = line.trim();
2625
if (!Character.isDigit(line.charAt(0))) {
2726
continue;
2827
}

core/src/main/java/com/bc/fiduceo/reader/insitu/tao/preproc/BAROProvider.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ void open(File baroFile) {
2121
final BufferedReader bufferedReader = new BufferedReader(fileReader);
2222
String line;
2323
while ((line = bufferedReader.readLine()) != null) {
24+
line = line.trim();
2425
if (!Character.isDigit(line.charAt(0))) {
2526
continue;
2627
}

core/src/main/java/com/bc/fiduceo/reader/insitu/tao/preproc/POSProvider.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ void open(File posFile, float nominalLon, float nominalLat) {
2828
final BufferedReader bufferedReader = new BufferedReader(fileReader);
2929
String line;
3030
while ((line = bufferedReader.readLine()) != null) {
31+
line = line.trim();
3132
if (!Character.isDigit(line.charAt(0))) {
3233
continue;
3334
}

core/src/main/java/com/bc/fiduceo/reader/insitu/tao/preproc/RAINProvider.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,13 @@ void open(File rainFile) {
2121
final BufferedReader bufferedReader = new BufferedReader(fileReader);
2222
String line;
2323
while ((line = bufferedReader.readLine()) != null) {
24+
line = line.trim();
2425
if (!Character.isDigit(line.charAt(0))) {
2526
continue;
2627
}
2728

29+
System.out.println("line = " + line);
30+
2831
final RAINRecord rainRecord = new RAINRecord();
2932
final String[] tokens = TaoPreProcessor.tokenize(line);
3033
rainRecord.date = TaoPreProcessor.toUnixEpoch(tokens[0], tokens[1]);

core/src/main/java/com/bc/fiduceo/reader/insitu/tao/preproc/RHProvider.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.bc.fiduceo.reader.insitu.tao.preproc;
22

3-
import org.esa.snap.core.util.StringUtils;
4-
53
import java.io.BufferedReader;
64
import java.io.File;
75
import java.io.FileReader;
@@ -23,6 +21,7 @@ void open(File rhFile) {
2321
final BufferedReader bufferedReader = new BufferedReader(fileReader);
2422
String line;
2523
while ((line = bufferedReader.readLine()) != null) {
24+
line = line.trim();
2625
if (!Character.isDigit(line.charAt(0))) {
2726
continue;
2827
}

core/src/main/java/com/bc/fiduceo/reader/insitu/tao/preproc/SSTProvider.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ void open(File sstFile) {
2121
final BufferedReader bufferedReader = new BufferedReader(fileReader);
2222
String line;
2323
while ((line = bufferedReader.readLine()) != null) {
24+
line = line.trim();
2425
if (!Character.isDigit(line.charAt(0))) {
2526
continue;
2627
}

core/src/main/java/com/bc/fiduceo/reader/insitu/tao/preproc/TaoPreProcessor.java

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,19 @@ public class TaoPreProcessor {
1111

1212
public static void main(String[] args) throws IOException {
1313
final Configuration configuration = new Configuration();
14-
configuration.sourceDir = "C:\\Satellite\\CIMR\\TAO_buoy";
15-
configuration.targetDir = "C:\\Satellite\\CIMR\\TAO_merged";
16-
configuration.filePrefix = "TRITON_TR8N137E";
17-
configuration.sssFileName = "TRITON_TR8N137E_M_SALT_daily.ascii";
18-
configuration.sstFileName = "TRITON_TR8N137E_M_SST_daily.ascii";
19-
configuration.airtFileName = "TRITON_TR8N137E_M_AIRT_daily.ascii";
20-
configuration.rhFileName = "TRITON_TR8N137E_M_RH_daily.ascii";
21-
configuration.windFileName = "TRITON_TR8N137E_M_WIND_daily.ascii";
22-
configuration.baroFileName = "TRITON_TR8N137E_M_BARO_daily.ascii";
23-
configuration.rainFileName = "TRITON_TR8N137E_M_RAIN_daily.ascii";
14+
configuration.sourceDir = "C:\\Satellite\\CIMR\\rama\\15n90e";
15+
configuration.targetDir = "C:\\Satellite\\CIMR\\rama_merged";
16+
configuration.filePrefix = "RAMA_15N90E";
17+
configuration.sssFileName = "sss15n90e_hr.ascii";
18+
configuration.sstFileName = "sst15n90e_10m.ascii";
19+
configuration.airtFileName = "airt15n90e_10m.ascii";
20+
configuration.rhFileName = "rh15n90e_10m.ascii";
21+
configuration.windFileName = "w15n90e_10m.ascii";
22+
configuration.baroFileName = "bp15n90e_hr.ascii";
23+
configuration.rainFileName = "rain15n90e_10m.ascii";
2424
configuration.posFileName = null;
25-
configuration.nominalLon = 137.f;
26-
configuration.nominalLat = 8.f;
25+
configuration.nominalLon = 90.f;
26+
configuration.nominalLat = 15.f;
2727

2828
// --- read all we need ---
2929
final File sourceDir = new File(configuration.sourceDir);
@@ -193,16 +193,17 @@ private static HashMap<String, List<SSSRecord>> parseSSSFile(File sssFile) {
193193
try (final FileReader fileReader = new FileReader(sssFile)) {
194194
final BufferedReader bufferedReader = new BufferedReader(fileReader);
195195
String line;
196-
ArrayList<SSSRecord> records = null;
196+
ArrayList<SSSRecord> records = new ArrayList<>();
197197
while ((line = bufferedReader.readLine()) != null) {
198-
if (line.startsWith("Platform") || line.startsWith("Parameter") || line.startsWith("YYYY")) {
198+
line = line.trim();
199+
if (line.startsWith("Platform") || line.startsWith("Parameter") || line.startsWith("YYYY")
200+
|| line.startsWith("Location") || line.startsWith("Units") || line.startsWith("Time")) {
199201
continue; // skip these tb 2023-03-30
200202
}
201203

202204
if (line.startsWith("Deployment")) {
203205
// parse deployment and start new record-container
204206
final String[] tokens = StringUtils.split(line, new char[]{' '}, true);
205-
records = new ArrayList<>();
206207
sssMap.put(tokens[1], records);
207208
continue;
208209
}
@@ -240,6 +241,9 @@ private static HashMap<String, List<SSSRecord>> parseSSSFile(File sssFile) {
240241

241242
records.add(sssRecord);
242243
}
244+
if (sssMap.isEmpty()) {
245+
sssMap.put("sss", records);
246+
}
243247
} catch (IOException e) {
244248
throw new RuntimeException(e);
245249
}
@@ -276,7 +280,10 @@ static int toUnixEpoch(String yyyymmdd, String hhmmss) {
276280

277281
int hour = Integer.parseInt(hhmmss.substring(0, 2));
278282
int minute = Integer.parseInt(hhmmss.substring(2, 4));
279-
int second = Integer.parseInt(hhmmss.substring(4, 6));
283+
int second = 0;
284+
if (hhmmss.length() > 4) {
285+
second = Integer.parseInt(hhmmss.substring(4, 6));
286+
}
280287

281288
final Calendar calendar = TimeUtils.getUTCCalendar();
282289
calendar.set(Calendar.YEAR, year);

core/src/main/java/com/bc/fiduceo/reader/insitu/tao/preproc/WINDProvider.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.bc.fiduceo.reader.insitu.tao.preproc;
22

3-
import org.esa.snap.core.util.StringUtils;
4-
53
import java.io.BufferedReader;
64
import java.io.File;
75
import java.io.FileReader;
@@ -23,6 +21,7 @@ void open(File windFile) {
2321
final BufferedReader bufferedReader = new BufferedReader(fileReader);
2422
String line;
2523
while ((line = bufferedReader.readLine()) != null) {
24+
line = line.trim();
2625
if (!Character.isDigit(line.charAt(0))) {
2726
continue;
2827
}
@@ -32,8 +31,13 @@ void open(File windFile) {
3231
windRecord.date = TaoPreProcessor.toUnixEpoch(tokens[0], tokens[1]);
3332
windRecord.WSPD = tokens[4];
3433
windRecord.WDIR = tokens[5];
35-
windRecord.Q = tokens[6].substring(2, 4);
36-
windRecord.M = tokens[7].substring(2, 4);
34+
if (tokens[6].length() > 2) {
35+
windRecord.Q = tokens[6].substring(2, 4);
36+
windRecord.M = tokens[7].substring(2, 4);
37+
} else {
38+
windRecord.Q = tokens[6];
39+
windRecord.M = tokens[7];
40+
}
3741

3842
windMap.put(windRecord.date, windRecord);
3943
}

0 commit comments

Comments
 (0)