Skip to content

Commit

Permalink
tweak policy runs
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolaspayette committed Nov 21, 2023
1 parent 5d44a37 commit 763b82f
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 32 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package uk.ac.ox.oxfish.regulations.conditions;

import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Envelope;
import ec.util.MersenneTwisterFast;
import uk.ac.ox.oxfish.model.FishState;
Expand Down Expand Up @@ -48,14 +47,10 @@ public Condition apply(final FishState fishState) {
final MersenneTwisterFast rng = fishState.getRandom();
return new uk.ac.ox.poseidon.regulations.core.conditions.InRectangularArea(
new Envelope(
new Coordinate(
getWestLongitude().applyAsDouble(rng),
getNorthLatitude().applyAsDouble(rng)
),
new Coordinate(
getEastLongitude().applyAsDouble(rng),
getSouthLatitude().applyAsDouble(rng)
)
getWestLongitude().applyAsDouble(rng),
getEastLongitude().applyAsDouble(rng),
getSouthLatitude().applyAsDouble(rng),
getNorthLatitude().applyAsDouble(rng)
)
);
}
Expand All @@ -64,14 +59,6 @@ public DoubleParameter getWestLongitude() {
return westLongitude;
}

public DoubleParameter getNorthLatitude() {
return northLatitude;
}

public void setNorthLatitude(final DoubleParameter northLatitude) {
this.northLatitude = northLatitude;
}

public DoubleParameter getEastLongitude() {
return eastLongitude;
}
Expand All @@ -80,6 +67,14 @@ public DoubleParameter getSouthLatitude() {
return southLatitude;
}

public DoubleParameter getNorthLatitude() {
return northLatitude;
}

public void setNorthLatitude(final DoubleParameter northLatitude) {
this.northLatitude = northLatitude;
}

public void setSouthLatitude(final DoubleParameter southLatitude) {
this.southLatitude = southLatitude;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public class ExtendedElCorralitoPolicy extends PolicySupplier {
public List<Policy<EpoScenario<?>>> get() {
return numberOfExtraDays.stream().map(extraDays ->
new Policy<EpoScenario<?>>(
String.format("El Corralito extended spatially and by %02d days before and after", extraDays),
String.format("Larger El Corralito + %02d days before/after", extraDays),
scenario -> {
final NamedRegulations namedRegulations = (NamedRegulations) scenario.getRegulations();
namedRegulations.modify(
Expand Down
15 changes: 6 additions & 9 deletions epo/src/main/java/uk/ac/ox/poseidon/epo/PolicyRuns.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,10 @@
import uk.ac.ox.oxfish.model.data.monitors.loggers.PurseSeineTripLogger;
import uk.ac.ox.oxfish.model.scenario.EpoPathPlannerAbundanceScenario;
import uk.ac.ox.oxfish.model.scenario.EpoScenario;
import uk.ac.ox.oxfish.utility.yaml.FishYAML;

import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import static com.google.common.collect.ImmutableMap.toImmutableMap;
Expand All @@ -28,13 +24,13 @@ public static void main(final String[] args) {
final Path baseFolder = Paths.get(System.getProperty("user.home"), "workspace", "tuna", "np");
final Path baseScenario = baseFolder.resolve(Paths.get(
"calibrations",
"2023-10-23/cenv0729/2023-10-25_04.14.17_local",
"2023-11-14/cenv0729/2023-11-16_13.34.46_local",
"calibrated_scenario.yaml"
));
final Path baseOutputFolder = baseFolder.resolve(Paths.get("policy_runs"));
final List<Integer> yearsActive = ImmutableList.of(2023);
final ImmutableList<Double> proportions = ImmutableList.of(0.75, 0.50, 0.25, 0.10, 0.0);
ImmutableMap<String, List<Policy<EpoScenario<?>>>> policies = ImmutableMap.of(
final ImmutableMap<String, List<Policy<EpoScenario<?>>>> policies = ImmutableMap.of(
"global_object_set_limits", new GlobalObjectSetLimit(
yearsActive,
// 8729 FAD + 4003 OFS in 2022:
Expand Down Expand Up @@ -67,8 +63,8 @@ public static void main(final String[] args) {
entry -> entry.getValue().getWithDefault()
));

int numberOfRunsPerPolicy = 1;
int numberOfPolicies = policies.values().stream().mapToInt(List::size).sum();
final int numberOfRunsPerPolicy = 5;
final int numberOfPolicies = policies.values().stream().mapToInt(List::size).sum();
System.out.printf(
"About to run %d policies %d times (%d total runs)\n",
numberOfPolicies,
Expand All @@ -87,9 +83,10 @@ public static void main(final String[] args) {
.setPolicies(entry.getValue())
.setParallel(true)
.setWriteScenarioToFile(true)
.registerRowProvider("yearly_results.csv", YearlyResultsRowProvider::new)
.requestFisherYearlyData()
.requestFisherDailyData()
.registerRowProvider("spatial_closures.csv", RectangularAreaExtractor::new)
.registerRowProvider("yearly_results.csv", YearlyResultsRowProvider::new)
.registerRowProvider("sim_trip_events.csv", PurseSeineTripLogger::new)
.registerRowProvider("sim_action_events.csv", PurseSeineActionsLogger::new);
runner.run(3, numberOfRunsPerPolicy);
Expand Down
9 changes: 4 additions & 5 deletions epo/src/main/java/uk/ac/ox/poseidon/epo/WesternClosure.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import uk.ac.ox.oxfish.model.scenario.EpoScenario;
import uk.ac.ox.oxfish.regulations.ForbiddenIf;
import uk.ac.ox.oxfish.regulations.NamedRegulations;
import uk.ac.ox.oxfish.regulations.conditions.AnyOf;
import uk.ac.ox.oxfish.regulations.conditions.AllOf;
import uk.ac.ox.oxfish.regulations.conditions.BetweenYearlyDates;
import uk.ac.ox.oxfish.regulations.conditions.InRectangularArea;

Expand Down Expand Up @@ -33,17 +33,16 @@ public List<Policy<EpoScenario<?>>> get() {
return numberOfExtraDays.stream().map(extraDays ->
new Policy<EpoScenario<?>>(
String.format(
"Closure west of %.0f, from %02d days before to %02d days after El Corralito",
"West of %.0f, %02d days before/after El Corralito",
eastLongitude,
extraDays,
extraDays
),
epoScenario -> {
final NamedRegulations namedRegulations = (NamedRegulations) epoScenario.getRegulations();
namedRegulations.modify(
"El Corralito",
"Western closure",
() -> new ForbiddenIf(
new AnyOf(
new AllOf(
yearsActiveCondition(),
new BetweenYearlyDates(
addDays(EL_CORRALITO_BEGINNING, -extraDays),
Expand Down

0 comments on commit 763b82f

Please sign in to comment.