Skip to content

Commit 2397d6f

Browse files
committed
corrected string variable handling
1 parent 0c4dc19 commit 2397d6f

20 files changed

+108
-31
lines changed

core/src/main/java/com/bc/fiduceo/reader/insitu/sic_cci/AMSR2SectionParser.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.bc.fiduceo.reader.insitu.sic_cci;
22

3+
import com.bc.fiduceo.reader.netcdf.StringVariable;
34
import com.bc.fiduceo.util.NetCDFUtils;
45
import com.bc.fiduceo.util.VariableProxy;
56
import ucar.ma2.DataType;
@@ -52,7 +53,7 @@ List<Variable> getVariables() {
5253
variables.add(new VariableProxy("AMSR2_scanpos", DataType.SHORT, attributes));
5354

5455
attributes = new ArrayList<>();
55-
variables.add(new VariableProxy("AMSR2_upstreamfile", DataType.CHAR, attributes));
56+
variables.add(new StringVariable(new VariableProxy("AMSR2_upstreamfile", DataType.STRING, attributes), 48));
5657

5758
attributes = new ArrayList<>();
5859
attributes.add(new Attribute(CF_FILL_VALUE_NAME, NetCDFUtils.getDefaultFillValue(short.class)));

core/src/main/java/com/bc/fiduceo/reader/insitu/sic_cci/ASCATSectionParser.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.bc.fiduceo.reader.insitu.sic_cci;
22

3+
import com.bc.fiduceo.reader.netcdf.StringVariable;
34
import com.bc.fiduceo.util.NetCDFUtils;
45
import com.bc.fiduceo.util.VariableProxy;
56
import ucar.ma2.DataType;
@@ -21,7 +22,7 @@ List<Variable> getVariables() {
2122
createCommonVariables(variables, "ASCAT_");
2223

2324
ArrayList<Attribute> attributes = new ArrayList<>();
24-
variables.add(new VariableProxy("ASCAT_upstreamfile", DataType.CHAR, attributes));
25+
variables.add(new StringVariable(new VariableProxy("ASCAT_upstreamfile", DataType.STRING, attributes), 32));
2526

2627
attributes = new ArrayList<>();
2728
attributes.add(new Attribute(CF_FILL_VALUE_NAME, NetCDFUtils.getDefaultFillValue(float.class)));

core/src/main/java/com/bc/fiduceo/reader/insitu/sic_cci/AbstractSectionParser.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.bc.fiduceo.reader.insitu.sic_cci;
22

3+
import com.bc.fiduceo.reader.netcdf.StringVariable;
34
import com.bc.fiduceo.util.NetCDFUtils;
45
import com.bc.fiduceo.util.VariableProxy;
56
import org.esa.snap.core.datamodel.ProductData;
@@ -51,7 +52,7 @@ static void createCommonVariables(List<Variable> variables, String prefix) {
5152
variables.add(new VariableProxy(prefix + "time", DataType.INT, attributes));
5253

5354
attributes = new ArrayList<>();
54-
variables.add(new VariableProxy(prefix + "reference-id", DataType.CHAR, attributes));
55+
variables.add(new StringVariable(new VariableProxy(prefix + "reference-id", DataType.STRING, attributes), 32));
5556
}
5657

5758
static Array parseFloat(String token) {

core/src/main/java/com/bc/fiduceo/reader/insitu/sic_cci/ERASectionParser.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.bc.fiduceo.reader.insitu.sic_cci;
22

3+
import com.bc.fiduceo.reader.netcdf.StringVariable;
34
import com.bc.fiduceo.util.NetCDFUtils;
45
import com.bc.fiduceo.util.VariableProxy;
56
import ucar.ma2.Array;
@@ -29,7 +30,7 @@ List<Variable> getVariables() {
2930
createCommonVariables(variables, prefix);
3031

3132
ArrayList<Attribute> attributes = new ArrayList<>();
32-
variables.add(new VariableProxy(prefix + "upstreamfile", DataType.CHAR, attributes));
33+
variables.add(new StringVariable(new VariableProxy(prefix + "upstreamfile", DataType.STRING, attributes), 16));
3334

3435
attributes = new ArrayList<>();
3536
attributes.add(new Attribute(CF_FILL_VALUE_NAME, NetCDFUtils.getDefaultFillValue(float.class)));

core/src/main/java/com/bc/fiduceo/reader/insitu/sic_cci/QSCATSectionParser.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.bc.fiduceo.reader.insitu.sic_cci;
22

3+
import com.bc.fiduceo.reader.netcdf.StringVariable;
34
import com.bc.fiduceo.util.NetCDFUtils;
45
import com.bc.fiduceo.util.VariableProxy;
56
import ucar.ma2.DataType;
@@ -21,7 +22,7 @@ List<Variable> getVariables() {
2122
createCommonVariables(variables, "QSCAT_");
2223

2324
ArrayList<Attribute> attributes = new ArrayList<>();
24-
variables.add(new VariableProxy("QSCAT_upstreamfile", DataType.CHAR, attributes));
25+
variables.add(new StringVariable(new VariableProxy("QSCAT_upstreamfile", DataType.STRING, attributes), 32));
2526

2627
attributes = new ArrayList<>();
2728
attributes.add(new Attribute(CF_FILL_VALUE_NAME, NetCDFUtils.getDefaultFillValue(float.class)));

core/src/main/java/com/bc/fiduceo/reader/insitu/sic_cci/SMAPSectionParser.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.bc.fiduceo.reader.insitu.sic_cci;
22

3+
import com.bc.fiduceo.reader.netcdf.StringVariable;
34
import com.bc.fiduceo.util.NetCDFUtils;
45
import com.bc.fiduceo.util.VariableProxy;
56
import ucar.ma2.DataType;
@@ -21,7 +22,7 @@ List<Variable> getVariables() {
2122
createCommonVariables(variables, "SMAP_");
2223

2324
ArrayList<Attribute> attributes = new ArrayList<>();
24-
variables.add(new VariableProxy("SMAP_upstreamfile", DataType.CHAR, attributes));
25+
variables.add(new StringVariable(new VariableProxy("SMAP_upstreamfile", DataType.STRING, attributes), 32));
2526

2627
attributes = new ArrayList<>();
2728
attributes.add(new Attribute(CF_FILL_VALUE_NAME, NetCDFUtils.getDefaultFillValue(float.class)));

core/src/main/java/com/bc/fiduceo/reader/insitu/sic_cci/SMOSSectionParser.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.bc.fiduceo.reader.insitu.sic_cci;
22

3+
import com.bc.fiduceo.reader.netcdf.StringVariable;
34
import com.bc.fiduceo.util.NetCDFUtils;
45
import com.bc.fiduceo.util.VariableProxy;
56
import ucar.ma2.DataType;
@@ -21,7 +22,7 @@ List<Variable> getVariables() {
2122
createCommonVariables(variables, "SMOS_");
2223

2324
ArrayList<Attribute> attributes = new ArrayList<>();
24-
variables.add(new VariableProxy("SMOS_upstreamfile", DataType.CHAR, attributes));
25+
variables.add(new StringVariable(new VariableProxy("SMOS_upstreamfile", DataType.STRING, attributes), 32));
2526

2627
attributes = new ArrayList<>();
2728
attributes.add(new Attribute(CF_FILL_VALUE_NAME, NetCDFUtils.getDefaultFillValue(float.class)));

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,4 +242,10 @@ public static void assert3DValueLong(int x, int y, int z, long expected, Variabl
242242
public static void assertDimensions(String dimensions, Variable variable) {
243243
assertEquals(dimensions, variable.getDimensionsString());
244244
}
245+
246+
public static void assertStringValue(Array array, String expected) {
247+
final char[] valueAsArray = (char[]) array.get1DJavaArray(char.class);
248+
assertEquals(expected, new String(valueAsArray).trim());
249+
250+
}
245251
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ public static void writeMmdWriterConfig(File configDir) throws IOException {
187187
public static void writeMmdWriterConfig(File configDir, String additionalTags) throws IOException {
188188
final String config = "<mmd-writer-config>" +
189189
" <overwrite>false</overwrite>" +
190-
" <cache-size>2048</cache-size>" +
190+
" <cache-size>64</cache-size>" +
191191
" <netcdf-format>N4</netcdf-format>" +
192192
additionalTags +
193193
"</mmd-writer-config>";

core/src/test/java/com/bc/fiduceo/reader/insitu/sic_cci/AMSR2SectionParserTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public void testGetVariables() {
7676

7777
variable = variables.get(21);
7878
assertEquals("AMSR2_upstreamfile", variable.getShortName());
79-
assertEquals(DataType.CHAR, variable.getDataType());
79+
assertEquals(DataType.STRING, variable.getDataType());
8080

8181
variable = variables.get(22);
8282
assertEquals("AMSR2_timediff", variable.getShortName());

0 commit comments

Comments
 (0)