Skip to content

Commit 6cfa5c2

Browse files
committed
added integration tests
1 parent 1177347 commit 6cfa5c2

File tree

4 files changed

+160
-2
lines changed

4 files changed

+160
-2
lines changed

core/src/main/resources/META-INF/services/com.bc.fiduceo.reader.ReaderPlugin

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,5 @@ com.bc.fiduceo.reader.insitu.sirds_sst.SirdsXbtInsituReaderPlugin
3737
com.bc.fiduceo.reader.smos.SmosL1CDailyGriddedReaderPlugin
3838
com.bc.fiduceo.reader.insitu.sic_cci.ANTXXXISicInsituReaderPlugin
3939
com.bc.fiduceo.reader.insitu.sic_cci.DMISIC0SicInsituReaderPlugin
40-
com.bc.fiduceo.reader.insitu.sic_cci.DTUSIC1SicInsituReaderPlugin
40+
com.bc.fiduceo.reader.insitu.sic_cci.DTUSIC1SicInsituReaderPlugin
41+
com.bc.fiduceo.reader.windsat.WindsatReaderPlugin

ingestion-tool/src/test/java/com/bc/fiduceo/ingest/IngestionToolIntegrationTest.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1219,6 +1219,37 @@ public void testIngest_DTUSIC1_sic_cci() throws SQLException, ParseException {
12191219
}
12201220
}
12211221

1222+
@Test
1223+
public void testIngest_windsat_coriolis() throws SQLException, ParseException {
1224+
final String[] args = new String[]{"-c", configDir.getAbsolutePath(), "-s", "windsat-coriolis", "-start", "2018-119", "-end", "2018-119", "-v", "v1.0"};
1225+
1226+
try {
1227+
IngestionToolMain.main(args);
1228+
1229+
final List<SatelliteObservation> observations = storage.get();
1230+
assertEquals(1, observations.size());
1231+
1232+
final SatelliteObservation observation = getSatelliteObservation("RSS_WindSat_TB_L1C_r79285_20180429T174238_2018119_V08.0.nc", observations);
1233+
TestUtil.assertCorrectUTCDate(2018, 4, 29, 17, 42, 38, observation.getStartTime());
1234+
TestUtil.assertCorrectUTCDate(2018, 4, 29, 19, 30, 45, observation.getStopTime());
1235+
1236+
assertEquals("windsat-coriolis", observation.getSensor().getName());
1237+
assertEquals("v1.0", observation.getVersion());
1238+
assertEquals(NodeType.UNDEFINED, observation.getNodeType());
1239+
1240+
final Geometry geoBounds = observation.getGeoBounds();
1241+
assertEquals("POLYGON((-179.93750000000003 -89.9375,179.93750000000003 -89.9375,179.93750000000003 89.9375,-179.93750000000003 89.9375,-179.93750000000003 -89.9375))",
1242+
geometryFactory.format(geoBounds));
1243+
final TimeAxis timeAxis = observation.getTimeAxes()[0];
1244+
assertTrue(timeAxis instanceof L3TimeAxis);
1245+
assertEquals("MULTILINESTRING((-179.93750000000003 0.0,179.93750000000003 0.0),(0.0 89.9375,0.0 -89.9375))", geometryFactory.format(timeAxis.getGeometry()));
1246+
1247+
} finally {
1248+
storage.clear();
1249+
storage.close();
1250+
}
1251+
}
1252+
12221253
private void callMainAndValidateSystemOutput(String[] args, boolean errorOutputExpected) throws ParseException {
12231254
final ByteArrayOutputStream expected = new ByteArrayOutputStream();
12241255
new IngestionTool().printUsageTo(expected);

matchup-tool/src/test/java/com/bc/fiduceo/matchup/MatchupToolIntegrationTest_SMOSL1_sic_cci.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public void testMatchup() throws IOException, SQLException, ParseException, Inva
8181

8282
private void insert_SIC_CCI() throws IOException, SQLException {
8383
final String sensorKey = "DTUSIC1-sic-cci";
84-
final String relativeArchivePath = TestUtil.assembleFileSystemPath(new String[]{"insitu", "sic-cci", "DTUSIC1-sic-cci", "v3", "QSCAT-vs-SMAP-vs-SMOS-vs-ASCAT-vs-AMSR2-vs-ERA-vs-DTUSIC1-2016-N.text"}, true);
84+
final String relativeArchivePath = TestUtil.assembleFileSystemPath(new String[]{"insitu", "sic-cci", sensorKey, "v3", "QSCAT-vs-SMAP-vs-SMOS-vs-ASCAT-vs-AMSR2-vs-ERA-vs-DTUSIC1-2016-N.text"}, true);
8585

8686
final SatelliteObservation satelliteObservation = readSatelliteObservation(sensorKey, relativeArchivePath, "v3");
8787
storage.insert(satelliteObservation);
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
package com.bc.fiduceo.matchup;
2+
3+
import com.bc.fiduceo.FiduceoConstants;
4+
import com.bc.fiduceo.NCTestUtils;
5+
import com.bc.fiduceo.TestUtil;
6+
import com.bc.fiduceo.core.SatelliteObservation;
7+
import com.bc.fiduceo.core.Sensor;
8+
import com.bc.fiduceo.core.UseCaseConfig;
9+
import com.bc.fiduceo.db.DbAndIOTestRunner;
10+
import com.bc.fiduceo.util.NetCDFUtils;
11+
import org.apache.commons.cli.ParseException;
12+
import org.junit.Test;
13+
import org.junit.runner.RunWith;
14+
import ucar.ma2.InvalidRangeException;
15+
import ucar.nc2.NetcdfFile;
16+
17+
import java.io.File;
18+
import java.io.IOException;
19+
import java.sql.SQLException;
20+
import java.util.ArrayList;
21+
import java.util.List;
22+
23+
import static org.junit.Assert.assertEquals;
24+
import static org.junit.Assert.assertTrue;
25+
26+
@RunWith(DbAndIOTestRunner.class)
27+
public class MatchupToolIntegrationTest_Windsat_sic_cci extends AbstractUsecaseIntegrationTest {
28+
29+
@Test
30+
public void testMatchup() throws IOException, SQLException, ParseException, InvalidRangeException {
31+
final UseCaseConfig useCaseConfig = createUseCaseConfigBuilder()
32+
.withTimeDeltaSeconds(28800, null)
33+
.withMaxPixelDistanceKm(8, null)
34+
.createConfig();
35+
final File useCaseConfigFile = storeUseCaseConfig(useCaseConfig, "usecase-45.xml");
36+
37+
insert_SIC_CCI();
38+
insert_windsat();
39+
40+
41+
final String[] args = new String[]{"-c", configDir.getAbsolutePath(), "-u", useCaseConfigFile.getName(), "-start", "2018-119", "-end", "2018-119"};
42+
MatchupToolMain.main(args);
43+
44+
45+
final File mmdFile = getMmdFilePath(useCaseConfig, "2018-119", "2018-119");
46+
assertTrue(mmdFile.isFile());
47+
try (NetcdfFile mmd = NetcdfFile.open(mmdFile.getAbsolutePath())) {
48+
final int matchupCount = NetCDFUtils.getDimensionLength(FiduceoConstants.MATCHUP_COUNT, mmd);
49+
assertEquals(1, matchupCount);
50+
51+
NCTestUtils.assert3DVariable("DMISIC0-sic-cci_AMSR2_10.7GHzH", 0, 0, 0, 88.99f, mmd);
52+
NCTestUtils.assert3DVariable("DMISIC0-sic-cci_AMSR2_23.8GHzV", 0, 0, 0, 195.95f, mmd);
53+
NCTestUtils.assert3DVariable("DMISIC0-sic-cci_AMSR2_7.3GHzH", 0, 0, 0, 83.66f, mmd);
54+
NCTestUtils.assert3DVariable("DMISIC0-sic-cci_AMSR2_Earth-Incidence", 0, 0, 0, 55.18f, mmd);
55+
NCTestUtils.assert3DVariable("DMISIC0-sic-cci_AMSR2_time", 0, 0, 0, 1525011246, mmd);
56+
NCTestUtils.assert3DVariable("DMISIC0-sic-cci_ASCAT_nb_samples", 0, 0, 0, 6, mmd);
57+
NCTestUtils.assert3DVariable("DMISIC0-sic-cci_ASCAT_time", 0, 0, 0, 1525003200, mmd);
58+
NCTestUtils.assert3DVariable("DMISIC0-sic-cci_ERA5_e", 0, 0, 0, -0.197f, mmd);
59+
NCTestUtils.assert3DVariable("DMISIC0-sic-cci_ERA5_istl4", 0, 0, 0, 271.46f, mmd);
60+
NCTestUtils.assert3DVariable("DMISIC0-sic-cci_ERA5_sf", 0, 0, 0, 0.f, mmd);
61+
NCTestUtils.assert3DVariable("DMISIC0-sic-cci_ERA5_t2m", 0, 0, 0, 274.53f, mmd);
62+
NCTestUtils.assert3DVariable("DMISIC0-sic-cci_ERA5_tp", 0, 0, 0, 0.f, mmd);
63+
NCTestUtils.assert3DVariable("DMISIC0-sic-cci_SIC", 0, 0, 0, 0.f, mmd);
64+
65+
NCTestUtils.assert3DVariable("windsat-coriolis_acquisition_time", 0, 0, 0, 1525026541, mmd);
66+
NCTestUtils.assert3DVariable("windsat-coriolis_earth_azimuth_angle_187_aft", 1, 0, 0, 183.69f, mmd);
67+
NCTestUtils.assert3DVariable("windsat-coriolis_earth_azimuth_angle_370_fore", 2, 0, 0, 288.6f, mmd);
68+
NCTestUtils.assert3DVariable("windsat-coriolis_earth_incidence_angle_187_aft", 0, 1, 0, 54.984f, mmd);
69+
NCTestUtils.assert3DVariable("windsat-coriolis_earth_incidence_angle_370_fore", 1, 1, 0, 53.432f, mmd);
70+
NCTestUtils.assert3DVariable("windsat-coriolis_fra_107_fore", 2, 1, 0, -9999.f, mmd);
71+
NCTestUtils.assert3DVariable("windsat-coriolis_fra_370_aft", 0, 2, 0, 359.97f, mmd);
72+
NCTestUtils.assert3DVariable("windsat-coriolis_latitude", 1, 2, 0, 63.6875f, mmd);
73+
NCTestUtils.assert3DVariable("windsat-coriolis_pra_068_fore", 2, 2, 0, -9999.f, mmd);
74+
NCTestUtils.assert3DVariable("windsat-coriolis_pra_238_aft", 0, 0, 0, -9999.f, mmd);
75+
NCTestUtils.assert3DVariable("windsat-coriolis_quality_flag_068_aft", 1, 0, 0, 32, mmd);
76+
NCTestUtils.assert3DVariable("windsat-coriolis_quality_flag_187_fore", 2, 0, 0, 32, mmd);
77+
NCTestUtils.assert3DVariable("windsat-coriolis_scan_angle_068_aft", 0, 1, 0, 144.f, mmd);
78+
NCTestUtils.assert3DVariable("windsat-coriolis_scan_angle_187_fore", 1, 1, 0, 36.10000228881836f, mmd);
79+
NCTestUtils.assert3DVariable("windsat-coriolis_tb_06_H_aft", 2, 1, 0, 3713, mmd);
80+
NCTestUtils.assert3DVariable("windsat-coriolis_tb_10_H_fore", 0, 2, 0, -32768, mmd);
81+
NCTestUtils.assert3DVariable("windsat-coriolis_tb_10_P_aft", 1, 2, 0, 7762, mmd);
82+
NCTestUtils.assert3DVariable("windsat-coriolis_tb_10_V_fore", 2, 2, 0, -32768, mmd);
83+
NCTestUtils.assert3DVariable("windsat-coriolis_tb_18_M_aft", 0, 0, 0, 9130, mmd);
84+
NCTestUtils.assert3DVariable("windsat-coriolis_tb_18_R_fore", 1, 0, 0, 9261, mmd);
85+
NCTestUtils.assert3DVariable("windsat-coriolis_tb_23_V_aft", 2, 0, 0, -32768, mmd);
86+
NCTestUtils.assert3DVariable("windsat-coriolis_tb_37_L_fore", 0, 1, 0, 12114, mmd);
87+
NCTestUtils.assert3DVariable("windsat-coriolis_tb_37_R_aft", 1, 1, 0, 12072, mmd);
88+
NCTestUtils.assert3DVariable("windsat-coriolis_tb_37_R_aft", 1, 1, 0, 12072, mmd);
89+
NCTestUtils.assert3DVariable("windsat-coriolis_time_068_fore", 2, 1, 0, -9999.f, mmd);
90+
NCTestUtils.assert3DVariable("windsat-coriolis_time_238_aft", 0, 2, 0, -9999.f, mmd);
91+
}
92+
}
93+
94+
private void insert_SIC_CCI() throws IOException, SQLException {
95+
final String sensorKey = "DMISIC0-sic-cci";
96+
final String relativeArchivePath = TestUtil.assembleFileSystemPath(new String[]{"insitu", "sic-cci", sensorKey, "v3", "ASCAT-vs-AMSR2-vs-ERA5-vs-DMISIC0-2018-N.text"}, true);
97+
98+
final SatelliteObservation satelliteObservation = readSatelliteObservation(sensorKey, relativeArchivePath, "v3");
99+
storage.insert(satelliteObservation);
100+
}
101+
102+
private void insert_windsat() throws IOException, SQLException {
103+
final String sensorKey = "windsat-coriolis";
104+
final String relativeArchivePath = TestUtil.assembleFileSystemPath(new String[]{sensorKey, "v1.0", "2018", "04", "29", "RSS_WindSat_TB_L1C_r79285_20180429T174238_2018119_V08.0.nc"}, true);
105+
106+
final SatelliteObservation satelliteObservation = readSatelliteObservation(sensorKey, relativeArchivePath, "v1.0");
107+
storage.insert(satelliteObservation);
108+
}
109+
110+
private MatchupToolTestUseCaseConfigBuilder createUseCaseConfigBuilder() {
111+
final List<Sensor> sensorList = new ArrayList<>();
112+
final Sensor primary = new Sensor("DMISIC0-sic-cci");
113+
primary.setPrimary(true);
114+
sensorList.add(primary);
115+
sensorList.add(new Sensor("windsat-coriolis"));
116+
117+
final List<com.bc.fiduceo.core.Dimension> dimensions = new ArrayList<>();
118+
dimensions.add(new com.bc.fiduceo.core.Dimension("DMISIC0-sic-cci", 1, 1));
119+
dimensions.add(new com.bc.fiduceo.core.Dimension("windsat-coriolis", 3, 3));
120+
121+
return (MatchupToolTestUseCaseConfigBuilder) new MatchupToolTestUseCaseConfigBuilder("mmd45")
122+
.withSensors(sensorList)
123+
.withOutputPath(new File(TestUtil.getTestDir().getPath(), "usecase-45").getPath())
124+
.withDimensions(dimensions);
125+
}
126+
}

0 commit comments

Comments
 (0)