Skip to content
Snippets Groups Projects
Commit e9af1249 authored by Altekruse, Jason Morgan's avatar Altekruse, Jason Morgan
Browse files

Merge branch 'wrappers' into 'master'

clean up wrapper classes

See merge request ghsc/nshmp/nshmp-netcdf!26
parents bf9bfbc4 348f812c
No related branches found
No related tags found
1 merge request!26clean up wrapper classes
Pipeline #10661 passed
package gov.usgs.earthquake.nshmp.netcdf.reader;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import gov.usgs.earthquake.nshmp.geo.Location;
public class BoundingHazards implements Iterable<Entry<Location, StaticHazards>> {
@SuppressWarnings("serial")
public class BoundingHazards extends LinkedHashMap<Location, StaticHazards> {
private final Map<Location, StaticHazards> boundingHazards;
public BoundingHazards() {}
BoundingHazards(Map<Location, StaticHazards> boundingHazards) {
this.boundingHazards = boundingHazards;
}
public Map<Location, StaticHazards> boundingHazards() {
return Map.copyOf(boundingHazards);
}
public boolean containsKey(Location location) {
return boundingHazards.containsKey(location);
}
public Set<Entry<Location, StaticHazards>> entrySet() {
return boundingHazards.entrySet();
}
public StaticHazards get(Location location) {
checkArgument(boundingHazards.containsKey(location), "Location [" + location + "] not found");
return boundingHazards.get(location);
}
public Set<Location> keySet() {
return boundingHazards.keySet();
}
public int size() {
return boundingHazards.size();
}
@Override
public Iterator<Entry<Location, StaticHazards>> iterator() {
return entrySet().iterator();
private BoundingHazards(Map<Location, StaticHazards> boundingHazards) {
putAll(boundingHazards);
}
public static Builder builder() {
......
......@@ -93,7 +93,7 @@ public class BoundingHazardsReader {
var fracLat = NetcdfUtils.calcGridFrac(latitudes, idxLatLL, site.latitude);
var builder = BoundingHazards.builder();
hazards.forEach(entry -> builder.put(entry.getKey(), entry.getValue()));
hazards.forEach((key, value) -> builder.put(key, value));
builder.put(
site,
calcTargetHazards(hazards, fracLon, fracLat))
......
package gov.usgs.earthquake.nshmp.netcdf.reader;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import gov.usgs.earthquake.nshmp.data.XySequence;
import gov.usgs.earthquake.nshmp.gmm.Imt;
public class StaticHazard implements Iterable<Entry<Imt, XySequence>> {
@SuppressWarnings("serial")
public class StaticHazard extends HashMap<Imt, XySequence> {
private final Map<Imt, XySequence> staticHazard;
public StaticHazard() {}
StaticHazard(Map<Imt, XySequence> staticHazard) {
this.staticHazard = staticHazard;
}
public Set<Entry<Imt, XySequence>> entrySet() {
return staticHazard.entrySet();
}
public boolean containsKey(Imt imt) {
return staticHazard.containsKey(imt);
}
public XySequence get(Imt imt) {
checkArgument(staticHazard.containsKey(imt), "Imt [" + imt + "] not found");
return staticHazard.get(imt);
}
public Set<Imt> keySet() {
return staticHazard.keySet();
}
public int size() {
return staticHazard.size();
private StaticHazard(Map<Imt, XySequence> staticHazard) {
putAll(staticHazard);
}
public Map<Imt, XySequence> staticHazard() {
return Map.copyOf(staticHazard);
}
@Override
public Iterator<Entry<Imt, XySequence>> iterator() {
return entrySet().iterator();
return Map.copyOf(this);
}
public static Builder builder() {
......
package gov.usgs.earthquake.nshmp.netcdf.reader;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import gov.usgs.earthquake.nshmp.netcdf.SiteClass;
public class StaticHazards implements Iterable<Entry<SiteClass, StaticHazard>> {
@SuppressWarnings("serial")
public class StaticHazards extends HashMap<SiteClass, StaticHazard> {
private final Map<SiteClass, StaticHazard> staticHazards;
public StaticHazards() {}
StaticHazards(Map<SiteClass, StaticHazard> staticHazards) {
this.staticHazards = staticHazards;
}
public boolean containsKey(SiteClass siteClass) {
return staticHazards.containsKey(siteClass);
}
public Set<Entry<SiteClass, StaticHazard>> entrySet() {
return staticHazards.entrySet();
}
public StaticHazard get(SiteClass siteClass) {
checkArgument(staticHazards.containsKey(siteClass), "Site class [" + siteClass + "] not found");
return staticHazards.get(siteClass);
}
public Set<SiteClass> keySet() {
return staticHazards.keySet();
}
public int size() {
return staticHazards.size();
}
public Map<SiteClass, StaticHazard> staticHazards() {
return Map.copyOf(staticHazards);
}
@Override
public Iterator<Entry<SiteClass, StaticHazard>> iterator() {
return entrySet().iterator();
private StaticHazards(Map<SiteClass, StaticHazard> staticHazards) {
this.putAll(staticHazards);
}
public static Builder builder() {
......
......@@ -87,19 +87,19 @@ class NetcdfUtilsTests {
// Add extra site class
var mapDiffScSizeBuilder = StaticHazards.builder();
mapHaz0.forEach(entry -> mapDiffScSizeBuilder.put(entry.getKey(), entry.getValue()));
mapHaz0.forEach((key, value) -> mapDiffScSizeBuilder.put(key, value));
mapDiffScSizeBuilder.put(SiteClass.A, mapHaz0.get(siteClasses.get(0)));
mapDiffScSize = mapDiffScSizeBuilder.build();
// Add extra IMT
var mapDiffImtSizeBuilder = StaticHazards.builder();
mapHaz0.forEach(entry -> {
mapHaz0.forEach((siteClass, staticHazard) -> {
var builder = StaticHazard.builder();
entry.getValue().forEach(imtEntry -> {
builder.put(imtEntry.getKey(), imtEntry.getValue());
staticHazard.forEach((imt, xy) -> {
builder.put(imt, xy);
});
builder.put(Imt.SA10P0, XySequence.create(imlValues, new double[N_IML]));
mapDiffImtSizeBuilder.put(entry.getKey(), builder.build());
mapDiffImtSizeBuilder.put(siteClass, builder.build());
});
mapDiffImtSize = mapDiffImtSizeBuilder.build();
......@@ -151,11 +151,11 @@ class NetcdfUtilsTests {
var actual = NetcdfUtils.linearInterpolate(mapHaz0, mapHaz1, FRAC);
assertTrue(mapHazTarget.keySet().containsAll(actual.keySet()));
mapHazTarget.forEach(entry -> {
assertTrue(entry.getValue().keySet().containsAll(actual.get(entry.getKey()).keySet()));
entry.getValue().forEach(imtEntry -> {
var actualXy = actual.get(entry.getKey()).get(imtEntry.getKey());
assertArrayEquals(imtEntry.getValue().xValues().toArray(), actualXy.xValues().toArray(), 0);
mapHazTarget.forEach((siteClass, staticHazard) -> {
assertTrue(staticHazard.keySet().containsAll(actual.get(siteClass).keySet()));
staticHazard.forEach((imt, xy) -> {
var actualXy = actual.get(siteClass).get(imt);
assertArrayEquals(xy.xValues().toArray(), actualXy.xValues().toArray(), 0);
});
});
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment