Skip to content

Commit 0656b78

Browse files
committed
added integration test for GBOV
1 parent 3480585 commit 0656b78

File tree

2 files changed

+172
-1
lines changed

2 files changed

+172
-1
lines changed

core/src/test/java/com/bc/fiduceo/TestUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ public static void writeSystemConfig(File configDir, File archiveRoot) throws IO
161161
" <rule sensors=\"ndbc-sm-cb, ndbc-sm-cs\">\n" +
162162
" insitu/ndbc/SENSOR/VERSION/YEAR\n" +
163163
" </rule>" +
164-
" <rule sensors=\"tao-sss, pirata-sss\">\n" +
164+
" <rule sensors=\"tao-sss, pirata-sss, gbov\">\n" +
165165
" insitu/SENSOR/VERSION/YEAR/MONTH\n" +
166166
" </rule>" +
167167
" </archive>" +
Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
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_GBOV extends AbstractUsecaseIntegrationTest {
28+
29+
@Test
30+
public void testMatchup_gbov() throws IOException, SQLException, ParseException, InvalidRangeException {
31+
final UseCaseConfig useCaseConfig = createUseCaseConfigBuilder("gbov")
32+
.withTimeDeltaSeconds(900, null)
33+
.withMaxPixelDistanceKm(50, null)
34+
.createConfig();
35+
final File useCaseConfigFile = storeUseCaseConfig(useCaseConfig, "usecase-123.xml");
36+
37+
insert_gbov();
38+
insert_miras_CDF3TA_June();
39+
40+
final String[] args = new String[]{"-c", configDir.getAbsolutePath(), "-u", useCaseConfigFile.getName(), "-start", "2016-156", "-end", "2016-156"};
41+
MatchupToolMain.main(args);
42+
43+
final File mmdFile = getMmdFilePath(useCaseConfig, "2016-156", "2016-156");
44+
assertTrue(mmdFile.isFile());
45+
46+
try (NetcdfFile mmd = NetcdfFile.open(mmdFile.getAbsolutePath())) {
47+
48+
final int matchupCount = NetCDFUtils.getDimensionLength(FiduceoConstants.MATCHUP_COUNT, mmd);
49+
assertEquals(30, matchupCount);
50+
51+
NCTestUtils.assertStringVariable("gbov_site", null, 50, 0, "Barrow", mmd);
52+
NCTestUtils.assertStringVariable("gbov_station", null, 50, 0, "Barrow", mmd);
53+
NCTestUtils.assertStringVariable("gbov_IGBP_class", null, 50, 0, "Snow and Ice", mmd);
54+
NCTestUtils.assert3DVariable("gbov_elevation", 0, 0, 0, 11.f, mmd);
55+
NCTestUtils.assert3DVariable("gbov_Lat_IS", 0, 0, 0, 71.3231f, mmd);
56+
NCTestUtils.assert3DVariable("gbov_Lon_IS", 0, 0, 0, -156.61052f, mmd);
57+
58+
NCTestUtils.assert3DVariable("gbov_TIME_IS", 0, 0, 0, 1.46504898E9, mmd);
59+
NCTestUtils.assert3DVariable("gbov_FIPAR_down", 0, 0, 12, -999.f, mmd);
60+
NCTestUtils.assert3DVariable("gbov_FIPAR_down_err", 0, 0, 12, -999.f, mmd);
61+
NCTestUtils.assert3DVariable("gbov_FIPAR_total", 0, 0, 12, -999.f, mmd);
62+
NCTestUtils.assert3DVariable("gbov_FIPAR_total_err", 0, 0, 12, -999.f, mmd);
63+
NCTestUtils.assert3DVariable("gbov_FIPAR_up", 0, 0, 12, -999.f, mmd);
64+
NCTestUtils.assert3DVariable("gbov_FIPAR_up_err", 0, 0, 12, -999.f, mmd);
65+
NCTestUtils.assert3DVariable("gbov_RM6_down_flag", 0, 0, 12, -999.f, mmd);
66+
NCTestUtils.assert3DVariable("gbov_RM6_up_flag", 0, 0, 12, -999.f, mmd);
67+
NCTestUtils.assert3DVariable("gbov_Clumping_Miller", 0, 0, 12, -999.f, mmd);
68+
NCTestUtils.assert3DVariable("gbov_Clumping_Miller_err", 0, 0, 12, -999.f, mmd);
69+
NCTestUtils.assert3DVariable("gbov_Clumping_Warren", 0, 0, 12, -999.f, mmd);
70+
NCTestUtils.assert3DVariable("gbov_Clumping_Warren_err", 0, 0, 12, -999.f, mmd);
71+
NCTestUtils.assert3DVariable("gbov_LAI_Miller_down", 0, 0, 12, -999.f, mmd);
72+
NCTestUtils.assert3DVariable("gbov_LAI_Miller_down_err", 0, 0, 12, -999.f, mmd);
73+
NCTestUtils.assert3DVariable("gbov_LAI_Miller_up", 0, 0, 12, -999.f, mmd);
74+
NCTestUtils.assert3DVariable("gbov_LAI_Miller_up_err", 0, 0, 12, -999.f, mmd);
75+
NCTestUtils.assert3DVariable("gbov_LAI_Warren_down", 0, 0, 12, -999.f, mmd);
76+
NCTestUtils.assert3DVariable("gbov_LAI_Warren_down_err", 0, 0, 12, -999.f, mmd);
77+
NCTestUtils.assert3DVariable("gbov_LAI_Warren_up", 0, 0, 12, -999.f, mmd);
78+
NCTestUtils.assert3DVariable("gbov_LAI_Warren_up_err", 0, 0, 12, -999.f, mmd);
79+
NCTestUtils.assert3DVariable("gbov_LAI_down", 0, 0, 12, -999.f, mmd);
80+
NCTestUtils.assert3DVariable("gbov_LAI_total_Miller", 0, 0, 12, -999.f, mmd);
81+
NCTestUtils.assert3DVariable("gbov_LAI_total_Warren", 0, 0, 12, -999.f, mmd);
82+
NCTestUtils.assert3DVariable("gbov_LAIe_Miller_down", 0, 0, 12, -999.f, mmd);
83+
NCTestUtils.assert3DVariable("gbov_LAIe_Miller_down_err", 0, 0, 12, -999.f, mmd);
84+
NCTestUtils.assert3DVariable("gbov_LAIe_Miller_up", 0, 0, 12, -999.f, mmd);
85+
NCTestUtils.assert3DVariable("gbov_LAIe_Miller_up_err", 0, 0, 12, -999.f, mmd);
86+
NCTestUtils.assert3DVariable("gbov_LAIe_Warren_down", 0, 0, 12, -999.f, mmd);
87+
NCTestUtils.assert3DVariable("gbov_LAIe_Warren_down_err", 0, 0, 12, -999.f, mmd);
88+
NCTestUtils.assert3DVariable("gbov_LAIe_Warren_up", 0, 0, 12, -999.f, mmd);
89+
NCTestUtils.assert3DVariable("gbov_LAIe_Warren_up_err", 0, 0, 12, -999.f, mmd);
90+
NCTestUtils.assert3DVariable("gbov_PAI_Miller", 0, 0, 12, -999.f, mmd);
91+
NCTestUtils.assert3DVariable("gbov_PAI_Miller_err", 0, 0, 12, -999.f, mmd);
92+
NCTestUtils.assert3DVariable("gbov_PAI_Warren", 0, 0, 12, -999.f, mmd);
93+
NCTestUtils.assert3DVariable("gbov_PAI_Warren_err", 0, 0, 12, -999.f, mmd);
94+
NCTestUtils.assert3DVariable("gbov_PAIe_Miller", 0, 0, 12, -999.f, mmd);
95+
NCTestUtils.assert3DVariable("gbov_PAIe_Miller_err", 0, 0, 12, -999.f, mmd);
96+
NCTestUtils.assert3DVariable("gbov_PAIe_Warren", 0, 0, 12, -999.f, mmd);
97+
NCTestUtils.assert3DVariable("gbov_PAIe_Warren_err", 0, 0, 12, -999.f, mmd);
98+
NCTestUtils.assert3DVariable("gbov_clumping_Miller_down", 0, 0, 12, -999.f, mmd);
99+
NCTestUtils.assert3DVariable("gbov_clumping_Miller_down_err", 0, 0, 12, -999.f, mmd);
100+
NCTestUtils.assert3DVariable("gbov_clumping_Miller_up", 0, 0, 12, -999.f, mmd);
101+
NCTestUtils.assert3DVariable("gbov_clumping_Miller_up_err", 0, 0, 12, -999.f, mmd);
102+
NCTestUtils.assert3DVariable("gbov_clumping_Warren_down", 0, 0, 12, -999.f, mmd);
103+
NCTestUtils.assert3DVariable("gbov_clumping_Warren_down_err", 0, 0, 12, -999.f, mmd);
104+
NCTestUtils.assert3DVariable("gbov_clumping_Warren_up", 0, 0, 12, -999.f, mmd);
105+
NCTestUtils.assert3DVariable("gbov_clumping_Warren_up_err", 0, 0, 12, -999.f, mmd);
106+
NCTestUtils.assert3DVariable("gbov_RM7_down_flag", 0, 0, 12, -999.f, mmd);
107+
NCTestUtils.assert3DVariable("gbov_RM7_up_flag", 0, 0, 12, -999.f, mmd);
108+
NCTestUtils.assert3DVariable("gbov_LSE", 0, 0, 12, -999.f, mmd);
109+
NCTestUtils.assert3DVariable("gbov_LSE_STD", 0, 0, 12, -999.f, mmd);
110+
NCTestUtils.assert3DVariable("gbov_LSR", 0, 0, 12, -999.f, mmd);
111+
NCTestUtils.assert3DVariable("gbov_LSR_STD", 0, 0, 12, -999.f, mmd);
112+
NCTestUtils.assert3DVariable("gbov_QC_LSE", 0, 0, 12, -999.f, mmd);
113+
NCTestUtils.assert3DVariable("gbov_QC_LSR", 0, 0, 12, -999.f, mmd);
114+
NCTestUtils.assert3DVariable("gbov_LST", 0, 0, 12, 272.80047607421875f, mmd);
115+
NCTestUtils.assert3DVariable("gbov_LST_STD", 0, 0, 12, 0.038089923560619354f, mmd);
116+
NCTestUtils.assert3DVariable("gbov_QC_LST", 0, 0, 12, 0, mmd);
117+
NCTestUtils.assert3DVariable("gbov_QC_SM_5", 0, 0, 12, -999.f, mmd);
118+
NCTestUtils.assert3DVariable("gbov_SM_5", 0, 0, 12, -999.f, mmd);
119+
120+
NCTestUtils.assert3DVariable("miras-smos-CDF3TA_Azimuth_Angle_175", 0, 0, 12, -22550.0, mmd);
121+
NCTestUtils.assert3DVariable("miras-smos-CDF3TA_BT_3_125", 1, 0, 13, -32768.0, mmd);
122+
NCTestUtils.assert3DVariable("miras-smos-CDF3TA_BT_4_175", 2, 0, 14, -996.0, mmd);
123+
NCTestUtils.assert3DVariable("miras-smos-CDF3TA_BT_H_425", 0, 1, 15, -6808.0, mmd);
124+
NCTestUtils.assert3DVariable("miras-smos-CDF3TA_Days_175", 1, 1, 16, 5999.0, mmd);
125+
NCTestUtils.assert3DVariable("miras-smos-CDF3TA_Eta_325", 2, 1, 17, -3650.0, mmd);
126+
NCTestUtils.assert3DVariable("miras-smos-CDF3TA_Footprint_Axis2_125", 0, 2, 18, -21876.0, mmd);
127+
NCTestUtils.assert3DVariable("miras-smos-CDF3TA_Incidence_Angle_400", 1, 2, 0, -3615.0, mmd);
128+
NCTestUtils.assert3DVariable("miras-smos-CDF3TA_Nb_RFI_Flags_425", 2, 2, 1, 0, mmd);
129+
NCTestUtils.assert3DVariable("miras-smos-CDF3TA_Nviews_575", 0, 0, 2, 20.0, mmd);
130+
NCTestUtils.assert3DVariable("miras-smos-CDF3TA_Pixel_BT_Standard_Deviation_H_075", 1, 0, 3, -32768.0, mmd);
131+
NCTestUtils.assert3DVariable("miras-smos-CDF3TA_Pixel_BT_Standard_Deviation_V_525", 2, 0, 4, -26642.0, mmd);
132+
NCTestUtils.assert3DVariable("miras-smos-CDF3TA_Pixel_Radiometric_Accuracy_H_025", 0, 1, 5, -32768.0, mmd);
133+
NCTestUtils.assert3DVariable("miras-smos-CDF3TA_UTC_Microseconds_400", 1, 1, 6, 842685.0, mmd);
134+
NCTestUtils.assert3DVariable("miras-smos-CDF3TA_Xi_400", 2, 1, 7, -6608.0, mmd);
135+
NCTestUtils.assert3DVariable("miras-smos-CDF3TA_lat", 0, 2, 8, 71.7425537109375, mmd);
136+
}
137+
}
138+
139+
private void insert_gbov() throws IOException, SQLException {
140+
final String sensorKey = "gbov";
141+
final String relativeArchivePath = TestUtil.assembleFileSystemPath(new String[]{"insitu", sensorKey, "v1", "2016", "06", "GBOV__Barrow__Barrow__20160601T000000Z__20160630T235900Z.csv"}, true);
142+
143+
final SatelliteObservation satelliteObservation = readSatelliteObservation(sensorKey, relativeArchivePath, "v1");
144+
storage.insert(satelliteObservation);
145+
}
146+
147+
private void insert_miras_CDF3TA_June() throws IOException, SQLException {
148+
final String sensorKey = "miras-smos-CDF3TA";
149+
final String relativeArchivePath = TestUtil.assembleFileSystemPath(new String[]{sensorKey, "re07", "2016", "156", "SM_RE07_MIR_CDF3TA_20160604T000000_20160604T235959_330_001_7.tgz"}, true);
150+
151+
final SatelliteObservation satelliteObservation = readSatelliteObservation(sensorKey, relativeArchivePath, "re07");
152+
storage.insert(satelliteObservation);
153+
}
154+
155+
private MatchupToolTestUseCaseConfigBuilder createUseCaseConfigBuilder(String sicSensor) {
156+
final List<Sensor> sensorList = new ArrayList<>();
157+
final Sensor primary = new Sensor(sicSensor);
158+
primary.setPrimary(true);
159+
sensorList.add(primary);
160+
sensorList.add(new Sensor("miras-smos-CDF3TA"));
161+
162+
final List<com.bc.fiduceo.core.Dimension> dimensions = new ArrayList<>();
163+
dimensions.add(new com.bc.fiduceo.core.Dimension(sicSensor, 1, 1));
164+
dimensions.add(new com.bc.fiduceo.core.Dimension("miras-smos-CDF3TA", 3, 3));
165+
166+
return (MatchupToolTestUseCaseConfigBuilder) new MatchupToolTestUseCaseConfigBuilder("mmd123")
167+
.withSensors(sensorList)
168+
.withOutputPath(new File(TestUtil.getTestDir().getPath(), "usecase-123").getPath())
169+
.withDimensions(dimensions);
170+
}
171+
}

0 commit comments

Comments
 (0)