Skip to content

Commit b14c854

Browse files
committed
updated layer extension naming, refactoring
1 parent 19d2be8 commit b14c854

12 files changed

+108
-50
lines changed

core/src/main/java/com/bc/fiduceo/reader/modis/ModisL1EmissiveExtension.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ public String getExtension(int index) {
1515
final int chIndex = index + CHANNEL_OFFSET;
1616

1717
if (chIndex < 26) {
18-
return CHANNEL_INDEX_FORMAT.format(chIndex);
18+
return "_ch" + CHANNEL_INDEX_FORMAT.format(chIndex);
1919
} else if (chIndex <= 35) {
20-
return CHANNEL_INDEX_FORMAT.format(chIndex + 1);
20+
return "_ch" + CHANNEL_INDEX_FORMAT.format(chIndex + 1);
2121
}
2222

2323
throw new IllegalArgumentException("unsupportes channel index");

core/src/main/java/com/bc/fiduceo/reader/modis/ModisL1ReflectiveExtension.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,19 @@ class ModisL1ReflectiveExtension implements LayerExtension {
1414
public String getExtension(int index) {
1515
final int chIndex = index + CHANNEL_OFFSET;
1616
if (chIndex <= 12) {
17-
return CHANNEL_INDEX_FORMAT.format(chIndex);
17+
return "_ch" + CHANNEL_INDEX_FORMAT.format(chIndex);
1818
} else if (chIndex == 13) {
19-
return CHANNEL_INDEX_FORMAT.format(chIndex) + "L";
19+
return "_ch" + CHANNEL_INDEX_FORMAT.format(chIndex) + "L";
2020
} else if (chIndex == 14) {
21-
return CHANNEL_INDEX_FORMAT.format(chIndex - 1) + "H";
21+
return "_ch" + CHANNEL_INDEX_FORMAT.format(chIndex - 1) + "H";
2222
} else if (chIndex == 15) {
23-
return CHANNEL_INDEX_FORMAT.format(chIndex - 1) + "L";
23+
return "_ch" + CHANNEL_INDEX_FORMAT.format(chIndex - 1) + "L";
2424
} else if (chIndex == 16) {
25-
return CHANNEL_INDEX_FORMAT.format(chIndex - 2) + "H";
25+
return "_ch" + CHANNEL_INDEX_FORMAT.format(chIndex - 2) + "H";
2626
} else if (chIndex <= 21) {
27-
return CHANNEL_INDEX_FORMAT.format(chIndex - 2);
28-
} else if (chIndex == 22 ){
29-
return "26";
27+
return "_ch" + CHANNEL_INDEX_FORMAT.format(chIndex - 2);
28+
} else if (chIndex == 22) {
29+
return "_ch26";
3030
}
3131

3232
throw new IllegalStateException("unsupported index");

core/src/main/java/com/bc/fiduceo/reader/modis/ThermalNoiseVariable.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.bc.fiduceo.util.NetCDFUtils;
44
import com.bc.fiduceo.util.VariablePrototype;
5-
import org.esa.snap.core.util.SystemUtils;
65
import ucar.ma2.Array;
76
import ucar.ma2.DataType;
87
import ucar.ma2.InvalidRangeException;
@@ -32,7 +31,7 @@ class ThermalNoiseVariable extends VariablePrototype {
3231
@Override
3332
public String getShortName() {
3433
final String variableName = originalVariable.getShortName();
35-
return variableName + "_ch" + nameExtension.getExtension(layerIndex);
34+
return variableName + nameExtension.getExtension(layerIndex);
3635
}
3736

3837
@Override
@@ -44,7 +43,7 @@ public Array read() throws IOException {
4443
final Array originalData = originalVariable.read();
4544
final int[] shape = originalData.getShape();
4645
shape[0] = 1;
47-
final int[] origin = new int[] {layerIndex, 0};
46+
final int[] origin = new int[]{layerIndex, 0};
4847

4948
final Array section;
5049
try {
@@ -57,7 +56,7 @@ public Array read() throws IOException {
5756
final int numScans = productHeight / 10;
5857
final byte[] targetData = new byte[productHeight];
5958
for (int i = 0; i < numScans; i++) {
60-
System.arraycopy(sensorData, 0, targetData, 10 *i, 10);
59+
System.arraycopy(sensorData, 0, targetData, 10 * i, 10);
6160
}
6261

6362
return NetCDFUtils.create(targetData);

core/src/main/java/com/bc/fiduceo/reader/netcdf/NetCDFReader.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,15 +140,14 @@ private void addChannelVariables(List<Variable> result, Variable variable, int n
140140
addChannelVariables(result, variable, numChannels, channel_dimension_index, origin, variableName, layerExtension);
141141
}
142142

143-
private void addChannelVariables(List<Variable> result, Variable variable, int numChannels, int channel_dimension_index, int[] origin, String variableName, LayerExtension layerExtension) throws InvalidRangeException {
143+
protected void addChannelVariables(List<Variable> result, Variable variable, int numChannels, int channel_dimension_index, int[] origin, String variableName, LayerExtension layerExtension) throws InvalidRangeException {
144144
final int[] shape = variable.getShape();
145145
shape[channel_dimension_index] = 1;
146146

147-
final String variableBaseName = variableName + "_ch";
148147
for (int channel = 0; channel < numChannels; channel++) {
149148
final Section section = new Section(origin, shape);
150149
final Variable channelVariable = variable.section(section);
151-
final String channelVariableName = variableBaseName + layerExtension.getExtension(channel);
150+
final String channelVariableName = variableName + layerExtension.getExtension(channel);
152151
channelVariable.setName(channelVariableName);
153152
splitAttributes(channelVariable, channel, numChannels);
154153
result.add(channelVariable);

core/src/main/java/com/bc/fiduceo/reader/netcdf/StandardLayerExtension.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@ public StandardLayerExtension(int offset) {
1919

2020
@Override
2121
public String getExtension(int index) {
22-
return CHANNEL_INDEX_FORMAT.format(index + offset + 1);
22+
return "_ch" + CHANNEL_INDEX_FORMAT.format(index + offset + 1);
2323
}
2424
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.bc.fiduceo.reader.smos;
2+
3+
import com.bc.fiduceo.reader.netcdf.LayerExtension;
4+
5+
class SmosAngleExtension implements LayerExtension {
6+
7+
private static final String[] EXTENSIONS = new String[]{"_025", "_075", "_125", "_175", "_225", "_275", "_325", "_375", "_400", "_425", "_475", "_525", "_575", "_625"};
8+
9+
@Override
10+
public String getExtension(int index) {
11+
if (index >= 0 && index < EXTENSIONS.length) {
12+
return EXTENSIONS[index];
13+
} else {
14+
throw new RuntimeException("invalid layer index");
15+
}
16+
}
17+
}

core/src/main/java/com/bc/fiduceo/reader/smos/SmosL1CDailyGriddedReader.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,8 @@ public List<Variable> getVariables() throws InvalidRangeException, IOException {
225225
final List<Variable> variablesInFile = netcdfFile.getVariables();
226226
final ArrayList<Variable> exportVariables = new ArrayList<>();
227227

228+
final SmosAngleExtension layerExtension = new SmosAngleExtension();
229+
228230
for (Variable variable : variablesInFile) {
229231
final String variableName = variable.getShortName();
230232
if (variablesToSkip.contains(variableName)) {
@@ -235,9 +237,10 @@ public List<Variable> getVariables() throws InvalidRangeException, IOException {
235237
continue;
236238
}
237239

238-
// the remainder is 3d with 15 angle layers tb 2022-10-12
240+
// the remainder is 3d with 14 angle layers tb 2022-10-12
239241
final ArrayList<Variable> bandVariables = new ArrayList<>();
240-
addLayered3DVariables(bandVariables, variable, 15, 0);
242+
final int[] origin = {0, 0, 0};
243+
addChannelVariables(bandVariables, variable, 14, 0, origin, variableName, layerExtension);
241244
exportVariables.addAll(bandVariables);
242245
}
243246

core/src/test/java/com/bc/fiduceo/reader/modis/ModisL1EmissiveExtensionTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ public class ModisL1EmissiveExtensionTest {
1111
public void testGetExtension_emissive() {
1212
final LayerExtension layerExtension = new ModisL1EmissiveExtension();
1313

14-
assertEquals("20", layerExtension.getExtension(0));
15-
assertEquals("25", layerExtension.getExtension(5));
16-
assertEquals("27", layerExtension.getExtension(6));
17-
assertEquals("36", layerExtension.getExtension(15));
14+
assertEquals("_ch20", layerExtension.getExtension(0));
15+
assertEquals("_ch25", layerExtension.getExtension(5));
16+
assertEquals("_ch27", layerExtension.getExtension(6));
17+
assertEquals("_ch36", layerExtension.getExtension(15));
1818
}
1919
}

core/src/test/java/com/bc/fiduceo/reader/modis/ModisL1ReflectiveExtensionTest.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ public class ModisL1ReflectiveExtensionTest {
1010
@Test
1111
public void testGetExtension_1km_reflective() {
1212
final LayerExtension layerExtension = new ModisL1ReflectiveExtension();
13-
assertEquals("08", layerExtension.getExtension(0));
14-
assertEquals("12", layerExtension.getExtension(4));
15-
assertEquals("13L", layerExtension.getExtension(5));
16-
assertEquals("13H", layerExtension.getExtension(6));
17-
assertEquals("14L", layerExtension.getExtension(7));
18-
assertEquals("14H", layerExtension.getExtension(8));
19-
assertEquals("15", layerExtension.getExtension(9));
20-
assertEquals("19", layerExtension.getExtension(13));
21-
assertEquals("26", layerExtension.getExtension(14));
13+
assertEquals("_ch08", layerExtension.getExtension(0));
14+
assertEquals("_ch12", layerExtension.getExtension(4));
15+
assertEquals("_ch13L", layerExtension.getExtension(5));
16+
assertEquals("_ch13H", layerExtension.getExtension(6));
17+
assertEquals("_ch14L", layerExtension.getExtension(7));
18+
assertEquals("_ch14H", layerExtension.getExtension(8));
19+
assertEquals("_ch15", layerExtension.getExtension(9));
20+
assertEquals("_ch19", layerExtension.getExtension(13));
21+
assertEquals("_ch26", layerExtension.getExtension(14));
2222
}
2323
}

core/src/test/java/com/bc/fiduceo/reader/netcdf/StandardLayerExtensionTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,17 @@ public class StandardLayerExtensionTest {
1010
public void testGetExtension_noOffset() {
1111
final LayerExtension layerExtension = new StandardLayerExtension();
1212

13-
assertEquals("01", layerExtension.getExtension(0));
14-
assertEquals("05", layerExtension.getExtension(4));
15-
assertEquals("11", layerExtension.getExtension(10));
13+
assertEquals("_ch01", layerExtension.getExtension(0));
14+
assertEquals("_ch05", layerExtension.getExtension(4));
15+
assertEquals("_ch11", layerExtension.getExtension(10));
1616
}
1717

1818
@Test
1919
public void testGetExtension_withOffset() {
2020
final LayerExtension layerExtension = new StandardLayerExtension(4);
2121

22-
assertEquals("05", layerExtension.getExtension(0));
23-
assertEquals("09", layerExtension.getExtension(4));
24-
assertEquals("15", layerExtension.getExtension(10));
22+
assertEquals("_ch05", layerExtension.getExtension(0));
23+
assertEquals("_ch09", layerExtension.getExtension(4));
24+
assertEquals("_ch15", layerExtension.getExtension(10));
2525
}
2626
}

0 commit comments

Comments
 (0)