diff --git a/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/io/write/VdypOutputWriter.java b/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/io/write/VdypOutputWriter.java index b4c81c8bb..81641ae3a 100644 --- a/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/io/write/VdypOutputWriter.java +++ b/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/io/write/VdypOutputWriter.java @@ -21,6 +21,7 @@ import ca.bc.gov.nrs.vdyp.model.UtilizationClass; import ca.bc.gov.nrs.vdyp.model.VdypLayer; import ca.bc.gov.nrs.vdyp.model.VdypPolygon; +import ca.bc.gov.nrs.vdyp.model.VdypSite; import ca.bc.gov.nrs.vdyp.model.VdypSpecies; import ca.bc.gov.nrs.vdyp.model.VdypUtilizationHolder; @@ -29,9 +30,9 @@ */ public class VdypOutputWriter implements Closeable { - private OutputStream polygonFile; - private OutputStream speciesFile; - private OutputStream utilizationFile; + protected final OutputStream polygonFile; + protected final OutputStream speciesFile; + protected final OutputStream utilizationFile; @SuppressWarnings("unused") private Optional compatibilityVariablesFile; @@ -175,7 +176,6 @@ void writeSpecies(VdypLayer layer, VdypSpecies spec) throws IOException { Stream.generate(() -> new Sp64Distribution(0, "", 0f)) ).limit(4).toList(); // 082E004 615 1988 P 9 L LW 100.0 0.0 0.0 0.0 -9.00 -9.00 -9.0 -9.0 -9.0 0 -9 - boolean isSiteSpec = layer.getSiteGenus().map(spec.getGenus()::equals).orElse(false); writeFormat( speciesFile, // SPEC_FORMAT, // @@ -195,15 +195,13 @@ void writeSpecies(VdypLayer layer, VdypSpecies spec) throws IOException { specDistributionEntries.get(3).getGenusAlias(), // specDistributionEntries.get(3).getPercentage(), // - layer.getSiteIndex().filter(x -> isSiteSpec).orElse(EMPTY_FLOAT), // - layer.getHeight().filter(x -> isSiteSpec).orElse(EMPTY_FLOAT), // - layer.getAgeTotal().filter(x -> isSiteSpec).orElse(EMPTY_FLOAT), // - layer.getBreastHeightAge().filter(x -> isSiteSpec).orElse(EMPTY_FLOAT), // - layer.getYearsToBreastHeight().filter(x -> isSiteSpec).orElse(EMPTY_FLOAT), // - layer.getSiteGenus().filter(x -> isSiteSpec).map(id -> id.equals(spec.getGenus())).orElse(false) ? 1 - : 0, // - layer.getSiteCurveNumber().filter(x -> isSiteSpec).orElse(EMPTY_INT) - + spec.getSite().flatMap(VdypSite::getSiteIndex).orElse(EMPTY_FLOAT), // + spec.getSite().flatMap(VdypSite::getHeight).orElse(EMPTY_FLOAT), // + spec.getSite().flatMap(VdypSite::getAgeTotal).orElse(EMPTY_FLOAT), // + spec.getSite().flatMap(VdypSite::getYearsAtBreastHeight).orElse(EMPTY_FLOAT), // + spec.getSite().flatMap(VdypSite::getYearsToBreastHeight).orElse(EMPTY_FLOAT), // + layer.getPrimaryGenus().map(spec.getGenus()::equals).orElse(false) ? 1 : 0, // + spec.getSite().flatMap(VdypSite::getSiteCurveNumber).orElse(EMPTY_INT) // ); } diff --git a/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/io/write/VriAdjustInputWriter.java b/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/io/write/VriAdjustInputWriter.java index ed18c6f8b..d558f6b28 100644 --- a/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/io/write/VriAdjustInputWriter.java +++ b/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/io/write/VriAdjustInputWriter.java @@ -2,9 +2,15 @@ import java.io.IOException; import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; import java.util.Map; +import java.util.Optional; +import java.util.stream.Stream; import ca.bc.gov.nrs.vdyp.common.ControlKey; +import ca.bc.gov.nrs.vdyp.common.Utils; +import ca.bc.gov.nrs.vdyp.common_calculators.BaseAreaTreeDensityDiameter; import ca.bc.gov.nrs.vdyp.io.FileResolver; import ca.bc.gov.nrs.vdyp.model.BaseVdypSpecies; import ca.bc.gov.nrs.vdyp.model.LayerType; @@ -68,6 +74,7 @@ static OutputStream getOutputStream(Map controlMap, FileResolver * @param polygon * @throws IOException */ + @Override void writePolygon(VdypPolygon polygon) throws IOException { writeFormat( polygonFile, // @@ -91,12 +98,13 @@ void writePolygon(VdypPolygon polygon) throws IOException { * @param spec * @throws IOException */ + @Override void writeSpecies(VdypLayer layer, VdypSpecies spec) throws IOException { // Ensure we have a list of 4 distribution entries var specDistributionEntries = Stream.concat( - spec.getSp64DistributionSet().getSp64DistributionList().stream(), Stream - .generate(() -> new Sp64Distribution(0, "", 0f)) + spec.getSp64DistributionSet().getSp64DistributionList().stream(), + Stream.generate(() -> new Sp64Distribution(0, "", 0f)) ).limit(4).toList(); // 082E004 615 1988 P 9 L LW 100.0 0.0 0.0 0.0 -9.00 -9.00 -9.0 -9.0 -9.0 0 -9 writeFormat( @@ -137,6 +145,7 @@ void writeSpecies(VdypLayer layer, VdypSpecies spec) throws IOException { * @param utils * @throws IOException */ + @Override // V7W_AIU Internalized loop over utilization classes void writeUtilization(VdypLayer layer, VdypUtilizationHolder utils) throws IOException { Optional specId = Optional.empty(); @@ -155,8 +164,8 @@ void writeUtilization(VdypLayer layer, VdypUtilizationHolder utils) throws IOExc if (utils.getBaseAreaByUtilization().getCoe(uc.index) > 0) { quadMeanDiameter = Optional.of( BaseAreaTreeDensityDiameter.quadMeanDiameter( - utils.getBaseAreaByUtilization().getCoe(uc.index), utils - .getTreesPerHectareByUtilization().getCoe(uc.index) + utils.getBaseAreaByUtilization().getCoe(uc.index), + utils.getTreesPerHectareByUtilization().getCoe(uc.index) ) ); } @@ -197,6 +206,7 @@ void writeUtilization(VdypLayer layer, VdypUtilizationHolder utils) throws IOExc * @throws IOException */ // VDYP_OUT when JPROGRAM = 1 (FIPSTART) or 3 (VRISTART) + @Override public void writePolygonWithSpeciesAndUtilization(VdypPolygon polygon) throws IOException { writePolygon(polygon); @@ -226,6 +236,7 @@ private void writeSpeciesEndRecord(VdypPolygon polygon) throws IOException { writeEndRecord(speciesFile, polygon); } + @Override void writeFormat(OutputStream os, String format, Object... params) throws IOException { os.write(String.format(format, params).getBytes()); } diff --git a/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/model/BaseVdypLayer.java b/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/model/BaseVdypLayer.java index b992aabf7..a1268fc37 100644 --- a/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/model/BaseVdypLayer.java +++ b/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/model/BaseVdypLayer.java @@ -47,9 +47,7 @@ public LinkedHashMap getSpecies() { } public void setSpecies(Map species) { - this.speciesBySp0.clear(); - this.speciesByIndex.clear(); - this.speciesBySp0.putAll(species); + setSpecies(species.values()); } public void setSpecies(Collection species) { @@ -93,6 +91,7 @@ public Optional getPrimarySpeciesRecord() { @Computed public Optional getPrimarySite() { return getPrimaryGenus().map(this.getSites()::get); + } @Override public String toString() { diff --git a/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/model/InputLayer.java b/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/model/InputLayer.java index a1886a8bd..0db97341b 100644 --- a/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/model/InputLayer.java +++ b/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/model/InputLayer.java @@ -1,6 +1,5 @@ package ca.bc.gov.nrs.vdyp.model; - public interface InputLayer { public float getCrownClosure(); diff --git a/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/model/VdypLayer.java b/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/model/VdypLayer.java index f46cec8c1..518df5568 100644 --- a/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/model/VdypLayer.java +++ b/vdyp-lib/vdyp-common/src/main/java/ca/bc/gov/nrs/vdyp/model/VdypLayer.java @@ -29,15 +29,15 @@ public class VdypLayer extends BaseVdypLayer implements V private UtilizationVector closeUtilizationVolumeNetOfDecayWasteAndBreakageByUtilization = // VdypUtilizationHolder.emptyUtilization(); // LVCOM/VOL_DWB species 0 - private Optional empericalRelationshipParameterIndex = Optional.empty(); // INXL1/GRPBA1 + private Optional empiricalRelationshipParameterIndex = Optional.empty(); // INXL1/GRPBA1 private Optional primarySp0; public VdypLayer( PolygonIdentifier polygonIdentifier, LayerType layer, Optional inventoryTypeGroup, - Optional empericalRelationshipParameterIndex, Optional primarySp0 + Optional empiricalRelationshipParameterIndex, Optional primarySp0 ) { super(polygonIdentifier, layer, inventoryTypeGroup); - this.empericalRelationshipParameterIndex = empericalRelationshipParameterIndex; + this.empiricalRelationshipParameterIndex = empiricalRelationshipParameterIndex; this.primarySp0 = primarySp0; } @@ -161,8 +161,8 @@ public Optional getEmpiricalRelationshipParameterIndex() { return empiricalRelationshipParameterIndex; } - public void setEmpericalRelationshipParameterIndex(Optional empericalRelationshipParameterIndex) { - this.empiricalRelationshipParameterIndex = empericalRelationshipParameterIndex; + public void setEmpiricalRelationshipParameterIndex(Optional empiricalRelationshipParameterIndex) { + this.empiricalRelationshipParameterIndex = empiricalRelationshipParameterIndex; } @Override @@ -233,7 +233,7 @@ public VdypLayer.Builder primaryGenus(String primarySp0) { return primaryGenus(Optional.of(primarySp0)); } - UtilizationVector loreyHeight = VdypUtilizationHolder.emptyLoreyHeightUtilization(); + UtilizationVector loreyHeightByUtilization = VdypUtilizationHolder.emptyLoreyHeightUtilization(); public void loreyHeightByUtilization(float height) { this.loreyHeightByUtilization = Utils.heightVector(0, height); @@ -382,7 +382,7 @@ protected VdypLayer doBuild() { polygonIdentifier.get(), // layerType.get(), // inventoryTypeGroup, // - empericalRelationshipParameterIndex, // + empiricalRelationshipParameterIndex, // primarySp0 ); } @@ -396,29 +396,19 @@ protected VdypSpecies buildSpecies(Consumer config) { }); } - public void baseAreaByUtilization(UtilizationVector utilizationVector) { - // TODO Auto-generated method stub - - } - @Override public , I2 extends BaseVdypSite> BaseVdypLayer.Builder - adaptSpecies( - BaseVdypLayer toCopy, BiConsumer config - ) { + adaptSpecies(BaseVdypLayer toCopy, BiConsumer config) { this.primaryGenus(toCopy.getPrimaryGenus()); return super.adaptSpecies(toCopy, config); } @Override public BaseVdypLayer.Builder - copySpecies( - VdypLayer toCopy, BiConsumer config - ) { + copySpecies(VdypLayer toCopy, BiConsumer config) { this.primaryGenus(toCopy.getPrimaryGenus()); return super.copySpecies(toCopy, config); } - } } diff --git a/vdyp-lib/vdyp-common/src/test/java/ca/bc/gov/nrs/vdyp/io/write/VriAdjustInputWriterTest.java b/vdyp-lib/vdyp-common/src/test/java/ca/bc/gov/nrs/vdyp/io/write/VriAdjustInputWriterTest.java index a68ff6786..ce1475275 100644 --- a/vdyp-lib/vdyp-common/src/test/java/ca/bc/gov/nrs/vdyp/io/write/VriAdjustInputWriterTest.java +++ b/vdyp-lib/vdyp-common/src/test/java/ca/bc/gov/nrs/vdyp/io/write/VriAdjustInputWriterTest.java @@ -120,7 +120,7 @@ void testWritePolygon() throws IOException { }); // FIXME Add to builder - layer.setEmpericalRelationshipParameterIndex(Optional.of(119)); + layer.setEmpiricalRelationshipParameterIndex(Optional.of(119)); layer.setInventoryTypeGroup(Optional.of(28)); unit.writePolygon(polygon); @@ -369,7 +369,7 @@ void testWritePolygonWithChildren() throws IOException { var species = layer.getSpecies().get("PL"); // fixme add to builder - layer.setEmpericalRelationshipParameterIndex(Optional.of(119)); + layer.setEmpiricalRelationshipParameterIndex(Optional.of(119)); layer.setInventoryTypeGroup(Optional.of(28)); layer.setBaseAreaByUtilization( diff --git a/vdyp-lib/vdyp-common/src/test/java/ca/bc/gov/nrs/vdyp/model/VdypUtilizationTest.java b/vdyp-lib/vdyp-common/src/test/java/ca/bc/gov/nrs/vdyp/model/VdypUtilizationTest.java index 2f7d728a1..8a1bbe855 100644 --- a/vdyp-lib/vdyp-common/src/test/java/ca/bc/gov/nrs/vdyp/model/VdypUtilizationTest.java +++ b/vdyp-lib/vdyp-common/src/test/java/ca/bc/gov/nrs/vdyp/model/VdypUtilizationTest.java @@ -1,10 +1,10 @@ package ca.bc.gov.nrs.vdyp.model; -import java.util.Optional; - import static org.hamcrest.MatcherAssert.assertThat; -import org.hamcrest.Matchers; import static org.hamcrest.Matchers.is; + +import java.util.Optional; + import org.junit.jupiter.api.Test; class VdypUtilizationTest { diff --git a/vdyp-lib/vdyp-vri/src/main/java/ca/bc/gov/nrs/vdyp/vri/VriStart.java b/vdyp-lib/vdyp-vri/src/main/java/ca/bc/gov/nrs/vdyp/vri/VriStart.java index e7007eff1..e881b59e8 100644 --- a/vdyp-lib/vdyp-vri/src/main/java/ca/bc/gov/nrs/vdyp/vri/VriStart.java +++ b/vdyp-lib/vdyp-vri/src/main/java/ca/bc/gov/nrs/vdyp/vri/VriStart.java @@ -1,6 +1,7 @@ package ca.bc.gov.nrs.vdyp.vri; -import static ca.bc.gov.nrs.vdyp.common_calculators.BaseAreaTreeDensityDiameter.*; +import static ca.bc.gov.nrs.vdyp.common_calculators.BaseAreaTreeDensityDiameter.quadMeanDiameter; +import static ca.bc.gov.nrs.vdyp.common_calculators.BaseAreaTreeDensityDiameter.treesPerHectare; import static ca.bc.gov.nrs.vdyp.math.FloatMath.pow; import static java.lang.Math.max; @@ -46,7 +47,6 @@ import ca.bc.gov.nrs.vdyp.io.parse.control.BaseControlParser; import ca.bc.gov.nrs.vdyp.io.parse.streaming.StreamingParser; import ca.bc.gov.nrs.vdyp.math.FloatMath; -import ca.bc.gov.nrs.vdyp.model.UtilizationClass; import ca.bc.gov.nrs.vdyp.model.BaseVdypSite; import ca.bc.gov.nrs.vdyp.model.BaseVdypSpecies; import ca.bc.gov.nrs.vdyp.model.BaseVdypSpecies.Builder; @@ -54,13 +54,13 @@ import ca.bc.gov.nrs.vdyp.model.Coefficients; import ca.bc.gov.nrs.vdyp.model.CompatibilityVariableMode; import ca.bc.gov.nrs.vdyp.model.ComponentSizeLimits; -import ca.bc.gov.nrs.vdyp.model.InputLayer; import ca.bc.gov.nrs.vdyp.model.LayerType; import ca.bc.gov.nrs.vdyp.model.MatrixMap2; import ca.bc.gov.nrs.vdyp.model.ModelClassBuilder; import ca.bc.gov.nrs.vdyp.model.PolygonIdentifier; import ca.bc.gov.nrs.vdyp.model.PolygonMode; import ca.bc.gov.nrs.vdyp.model.Region; +import ca.bc.gov.nrs.vdyp.model.UtilizationClass; import ca.bc.gov.nrs.vdyp.model.VdypLayer; import ca.bc.gov.nrs.vdyp.model.VdypPolygon; import ca.bc.gov.nrs.vdyp.model.VdypSpecies; @@ -464,7 +464,7 @@ void processPrimaryLayer(VriPolygon polygon, VdypLayer.Builder lBuilder) throws lBuilder.quadraticMeanDiameterByUtilization(layerQuadMeanDiameter); lBuilder.baseAreaByUtilization(primaryBaseArea); lBuilder.treesPerHectareByUtilization(primaryLayerDensity); - lBuilder.empiricalRelationshipParameterIndex(primaryLayer.getEmpericalRelationshipParameterIndex()); + lBuilder.empiricalRelationshipParameterIndex(primaryLayer.getEmpiricalRelationshipParameterIndex()); lBuilder.adaptSpecies(primaryLayer, (sBuilder, vriSpec) -> { var vriSite = vriSpec.getSite(); @@ -478,43 +478,39 @@ void processPrimaryLayer(VriPolygon polygon, VdypLayer.Builder lBuilder) throws if (vriSite.map(site -> site == primarySiteIn).orElse(false)) { sBuilder.loreyHeight(primaryHeight); - sBuilder.adaptSite( - vriSite.get(), (iBuilder, vriSite2) -> { - vriSite2.getHeight().ifPresent(iBuilder::height); - } - ); + sBuilder.adaptSite(vriSite.get(), (iBuilder, vriSite2) -> { + vriSite2.getHeight().ifPresent(iBuilder::height); + }); } else { - var loreyHeight = vriSite.flatMap( - site -> site.getHeight().filter(x -> getDebugMode(2) != 1).map(height -> { - float speciesQuadMeanDiameter = Math.max(7.5f, height / leadHeight * layerQuadMeanDiameter); + var loreyHeight = vriSite + .flatMap(site -> site.getHeight().filter(x -> getDebugMode(2) != 1).map(height -> { + float speciesQuadMeanDiameter = Math.max( + UtilizationClass.U75TO125.lowBound, height / leadHeight * layerQuadMeanDiameter + ); float speciesDensity = treesPerHectare(specBaseArea, speciesQuadMeanDiameter); + // EMP050 return (float) estimationMethods.primaryHeightFromLeadHeight( site.getHeight().get(), site.getSiteGenus(), bec.getRegion(), speciesDensity ); - }) - ).orElseGet(() -> { - try { - // EMP053 - return estimationMethods.estimateNonPrimaryLoreyHeight( - vriSpec.getGenus(), primarySiteIn.getSiteGenus(), bec, leadHeight, primaryHeight - ); - } catch (ProcessingException e) { - throw new RuntimeProcessingException(e); - } - }); + })).orElseGet(() -> { + try { + // EMP053 + return estimationMethods.estimateNonPrimaryLoreyHeight( + vriSpec.getGenus(), primarySiteIn.getSiteGenus(), bec, leadHeight, primaryHeight + ); + } catch (ProcessingException e) { + throw new RuntimeProcessingException(e); + } + }); float maxHeight = estimationMethods.getLimitsForHeightAndDiameter(vriSpec.getGenus(), bec.getRegion()) .loreyHeightMaximum(); loreyHeight = Math.min(loreyHeight, maxHeight); sBuilder.loreyHeight(loreyHeight); } - vriSite.ifPresent( - site -> sBuilder.adaptSite( - site, (iBuilder, vriSite2) -> { - vriSite2.getHeight().ifPresent(iBuilder::height); - } - ) - ); + vriSite.ifPresent(site -> sBuilder.adaptSite(site, (iBuilder, vriSite2) -> { + vriSite2.getHeight().ifPresent(iBuilder::height); + })); this.applyGroups(bec, vriSpec.getGenus(), sBuilder); }); @@ -887,7 +883,7 @@ protected PolygonMode checkPolygonForMode(VriPolygon polygon, BecDefinition bec) return findDefaultPolygonMode( ageTotal, yearsToBreastHeight, height, baseArea, treesPerHectare, percentForest, primaryLayer.getSpecies().values(), bec, - primaryLayer.getEmpericalRelationshipParameterIndex() + primaryLayer.getEmpiricalRelationshipParameterIndex() ); } catch (StandProcessingException e) { throw new RuntimeStandProcessingException(e); @@ -1315,7 +1311,7 @@ private Increase findIncreaseForYoungMode( float predictedBaseArea = estimateBaseAreaYield( dominantHeight, primaryBreastHeightAge, Optional.empty(), false, primaryLayer.getSpecies().values(), bec, - primaryLayer.getEmpericalRelationshipParameterIndex().orElseThrow() + primaryLayer.getEmpiricalRelationshipParameterIndex().orElseThrow() ); // BAP // Calculate the full occupancy BA Hence the BA we will test is the Full @@ -1416,22 +1412,22 @@ VriPolygon processBatn(VriPolygon poly) throws ProcessingException { .orElseThrow(() -> new StandProcessingException("Primary site does not have a breast height age")); final Optional veteranBaseArea = veteranLayer.flatMap(VriLayer::getBaseArea); - final int primaryEmpericalRelationshipParameterIndex = primaryLayer.getEmpericalRelationshipParameterIndex() + final int primaryEmpiricalRelationshipParameterIndex = primaryLayer.getEmpiricalRelationshipParameterIndex() .orElseThrow( () -> new StandProcessingException( - "Primary layer does not have an emperical relationship parameter index" + "Primary layer does not have an empirical relationship parameter index" ) ); float primaryBaseAreaEstimated = estimateBaseAreaYield( primaryHeight, primaryBreastHeightAge, veteranBaseArea, false, primaryLayer.getSpecies().values(), bec, - primaryEmpericalRelationshipParameterIndex + primaryEmpiricalRelationshipParameterIndex ); // EMP107 float normativeQuadMeanDiameter = estimateQuadMeanDiameterYield( primaryHeight, primaryBreastHeightAge, veteranBaseArea, primaryLayer.getSpecies().values(), bec, - primaryEmpericalRelationshipParameterIndex + primaryEmpiricalRelationshipParameterIndex ); final float normativePercentAvailable = 85f; diff --git a/vdyp-lib/vdyp-vri/src/main/java/ca/bc/gov/nrs/vdyp/vri/model/VriLayer.java b/vdyp-lib/vdyp-vri/src/main/java/ca/bc/gov/nrs/vdyp/vri/model/VriLayer.java index f2bdba0e8..1618021a1 100644 --- a/vdyp-lib/vdyp-vri/src/main/java/ca/bc/gov/nrs/vdyp/vri/model/VriLayer.java +++ b/vdyp-lib/vdyp-vri/src/main/java/ca/bc/gov/nrs/vdyp/vri/model/VriLayer.java @@ -22,13 +22,13 @@ public class VriLayer extends BaseVdypLayer implements Inpu private final float utilization; // VRIL/UTLL public final Optional primaryGenus; // FIPL_1C/JPRIME_L1 ISPP private final Optional secondaryGenus; // FIPL_1C/JPRIME_L1 ISPS - private final Optional empericalRelationshipParameterIndex; // INXL1/GRPBA1 + private final Optional empiricalRelationshipParameterIndex; // INXL1/GRPBA1 private final float ageIncrease; // YOUNG1/AGE_INCR public VriLayer( PolygonIdentifier polygonIdentifier, LayerType layer, float crownClosure, Optional baseArea, Optional treesPerHectare, float utilization, Optional primaryGenus, - Optional secondaryGenus, Optional empericalRelationshipParameterIndex, float ageIncrease + Optional secondaryGenus, Optional empiricalRelationshipParameterIndex, float ageIncrease ) { super(polygonIdentifier, layer, Optional.empty()); this.crownClosure = crownClosure; @@ -37,7 +37,7 @@ public VriLayer( this.utilization = utilization; this.primaryGenus = primaryGenus; this.secondaryGenus = secondaryGenus; - this.empericalRelationshipParameterIndex = empericalRelationshipParameterIndex; + this.empiricalRelationshipParameterIndex = empiricalRelationshipParameterIndex; this.ageIncrease = ageIncrease; } @@ -77,8 +77,8 @@ public Optional getSecondarySite() { return secondaryGenus.map(this.getSites()::get); } - public Optional getEmpericalRelationshipParameterIndex() { - return empericalRelationshipParameterIndex; + public Optional getEmpiricalRelationshipParameterIndex() { + return empiricalRelationshipParameterIndex; } public float getAgeIncrease() { @@ -120,11 +120,11 @@ public static class Builder protected Optional percentAvailable = Optional.empty(); protected Optional primaryGenus = Optional.empty(); protected Optional secondaryGenus = Optional.empty(); - protected Optional empericalRelationshipParameterIndex = Optional.empty(); + protected Optional empiricalRelationshipParameterIndex = Optional.empty(); protected Optional ageIncrease = Optional.empty(); public Builder empiricalRelationshipParameterIndex(Optional empiricalRelationshipParameterIndex) { - this.empericalRelationshipParameterIndex = empiricalRelationshipParameterIndex; + this.empiricalRelationshipParameterIndex = empiricalRelationshipParameterIndex; return this; } @@ -223,7 +223,7 @@ protected VriLayer doBuild() { Math.max(utilization.get(), UtilizationClass.U75TO125.lowBound), // primaryGenus, // secondaryGenus, // - empericalRelationshipParameterIndex, // + empiricalRelationshipParameterIndex, // ageIncrease.orElse(DEFAULT_AGE_INCREASE) ); result.setInventoryTypeGroup(inventoryTypeGroup); @@ -247,26 +247,21 @@ public Builder copy(VriLayer toCopy) { this.utilization(toCopy.getUtilization()); this.primaryGenus(toCopy.getPrimaryGenus()); this.secondaryGenus(toCopy.getSecondaryGenus()); - this.empiricalRelationshipParameterIndex(toCopy.getEmpericalRelationshipParameterIndex()); + this.empiricalRelationshipParameterIndex(toCopy.getEmpiricalRelationshipParameterIndex()); return this; } @Override public , I2 extends BaseVdypSite> BaseVdypLayer.Builder - adaptSpecies( - BaseVdypLayer toCopy, - BiConsumer config - ) { + adaptSpecies(BaseVdypLayer toCopy, BiConsumer config) { this.primaryGenus(toCopy.getPrimaryGenus()); return super.adaptSpecies(toCopy, config); } @Override public BaseVdypLayer.Builder - copySpecies( - VriLayer toCopy, BiConsumer config - ) { + copySpecies(VriLayer toCopy, BiConsumer config) { this.primaryGenus(toCopy.getPrimaryGenus()); return super.copySpecies(toCopy, config); } diff --git a/vdyp-lib/vdyp-vri/src/test/java/ca/bc/gov/nrs/vdyp/vri/ParsersTogetherTest.java b/vdyp-lib/vdyp-vri/src/test/java/ca/bc/gov/nrs/vdyp/vri/ParsersTogetherTest.java index 2592c26e2..2dcd84caf 100644 --- a/vdyp-lib/vdyp-vri/src/test/java/ca/bc/gov/nrs/vdyp/vri/ParsersTogetherTest.java +++ b/vdyp-lib/vdyp-vri/src/test/java/ca/bc/gov/nrs/vdyp/vri/ParsersTogetherTest.java @@ -530,7 +530,7 @@ void testFindsGRPBA1() throws IOException, StandProcessingException, ResourcePar assertThat(result, hasProperty("layers", Matchers.aMapWithSize(1))); var primaryResult = result.getLayers().get(LayerType.PRIMARY); var veteranResult = result.getLayers().get(LayerType.VETERAN); - assertThat(primaryResult, allOf(hasProperty("empericalRelationshipParameterIndex", present(is(27))))); + assertThat(primaryResult, allOf(hasProperty("empiricalRelationshipParameterIndex", present(is(27))))); assertThat(veteranResult, nullValue()); app.close();