diff --git a/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingReaderHazardCurves.java b/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingReaderHazardCurves.java index 91a58a36bb94092b8e75ad3125743131a643b77f..35e8ee44eeb6505225d6a72b23ec6ccea26ae80b 100644 --- a/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingReaderHazardCurves.java +++ b/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingReaderHazardCurves.java @@ -2,7 +2,9 @@ package gov.usgs.earthquake.nshmp.netcdf.reader; import java.io.IOException; import java.util.List; +import java.util.stream.Collectors; +import gov.usgs.earthquake.nshmp.Maths; import gov.usgs.earthquake.nshmp.data.XySequence; import gov.usgs.earthquake.nshmp.geo.Location; import gov.usgs.earthquake.nshmp.netcdf.Netcdf; @@ -26,6 +28,8 @@ import ucar.nc2.dataset.NetcdfDatasets; */ public class BoundingReaderHazardCurves extends BoundingReader<StaticDataHazardCurves> { + private static final double FILL_VALUE = 9999.9; + public BoundingReaderHazardCurves(NetcdfHazardCurves netcdf, Location site) { super(netcdf, site); } @@ -148,7 +152,14 @@ public class BoundingReaderHazardCurves extends BoundingReader<StaticDataHazardC netcdfData.imls().get(imt), (double[]) hazards.section(origin, shape).reduce().get1DJavaArray(DataType.DOUBLE)); - imtHazardMap.put(imt, xySequence); + var points = xySequence.stream() + .filter(xy -> Maths.round(xy.x(), 1) != FILL_VALUE) + .collect(Collectors.toList()); + + var xs = points.stream().map(xy -> xy.x()).collect(Collectors.toList()); + var ys = points.stream().map(xy -> xy.y()).collect(Collectors.toList()); + + imtHazardMap.put(imt, XySequence.create(xs, ys)); } catch (InvalidRangeException e) { throw new RuntimeException(e.getMessage()); }