Skip to content
Snippets Groups Projects
Commit 75e76d61 authored by Jason Altekruse's avatar Jason Altekruse
Browse files

Merge branch 'master' of code.usgs.gov:ghsc/users/jaltekruse/nshmp-netcdf into BoundingHazardsTests

parents 9ef2f901 e9af1249
No related branches found
No related tags found
1 merge request!29Bounding hazards tests
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() {
......
......@@ -101,19 +101,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();
......@@ -188,11 +188,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