Skip to content

Conversation

@SEAJang
Copy link
Owner

@SEAJang SEAJang commented Jul 14, 2022

No description provided.

SEAJang and others added 29 commits April 9, 2024 18:27
* <CLEAN> Cleanup unused code and files

* Removed Testing suite

* <CLEAN> Clean up unused code
* <FEAT> Add multi-single emission from source func

Reason for change:
Some sources of emissions should only ever emit one emission at a time.

Changes:
- Add a new function to the sources module that will allow users to
define if a source can create multiple emissions at once or not.

* <TEST> Add unit test for multi-single emission functionality

Reason for Change:
- New functionality requires tests
- Changes in source creation required update to the existing unit test

* <DOC> Add inline comments
Reason for change:
Previous design for summary output processing was not scalable and
was difficult to maintain. This change introduces a new design
for summary output processing that is more modular and scalable.

Resolution:
Added new summary output processing classes and functions, along
with unit tests for the new classes and functions.

Effect(s) of change:
N/A
Reason for change:
Previous program output design has logic spread throughout the
LDAR-Sim object. This made it more difficult to isolate
the logic responsible for program outputs.

Resolution:
Moved all output logic for program outputs to a new class.
This centralizes the logic for program outputs and makes it more
accessible.

Effect(s) of change:
N/A
Reason for change:
Summary visualization logic was getting too complex and
was hard to manage.

Resolution:
Summary visualization output manager added to manage the summary
visualization output process. This will make it easier to add new
summary visualizations in the future.

Effect(s) of change:
N/A
Reason for change:
New output managers were implement but not used in the code.

Resolution:
This commit switches the code to use the new output managers.
This commit also includes other associated changes to make
the new output managers work.

Effect(s) of change:
N/A
Reason for change:
Some unit test were failing after the outputs module was refactored.

Resolution:
Removed redundant input processing unit tests and fixed failing
emissions unit tests.

Effect(s) of change:
N/A
Reason for change:
Code from old output files was no longer used anywhere in the codebase.

Resolution:
Removed old code that was no longer used.

Effect(s) of change:
N/A
Reason for change:
Various assorted minor issues were discovered in the output
processing code.

Resolution:
This commit addresses these issues.

Effect(s) of change:
This commit will improve the output processing code.
* <CLEAN> Clean up assorted files

Reason for change:
Example simulation was outdated and needed to be updated
Deprecated example files were still in code base

Changes:
- Removed old example files
- Updated example simulation files

* <FIX> Bug fix sensors

Reason for change:
Sensors were not working properly and sensor parameters were not
being set correctly as a default behavior

Changes:
- Update the default sensors behavior and relevant sensors to set the
  parameters correctly
Reason for change:
PReviously only simulation summary data from the most recent batch of
simulations was being saved to the summary files. This was due to an
overwrite bug in the summary_output_manager.py file where legacy
summary data was not being properly retrieved and thus overwritten.

Resolution:
Changed get legacy summary data to properly retrieve legacy summary
data.

Effect(s) of change:
Reason for change:
Duration estimation method was previously hard coded to use a single
method. This change allows the user to choose per program which method
to use to calculate emissions estimations.
Reason for change:
Unit tests for relevant new functions were added
Updated existing tests to reflect the change in structure of the code
Reason for change:
Missing unit tests and addressing comments from PR
<FEAT> Duration Estimation Method Swap
Reason for fix:
Extra commas in code were making the program duration factor and methods
to be read as tuples instead of string/integers.

Changes made:
- Removed extra commas in program.py
- Added simple unit test case to test the program initialization
Reason for fix:
Extra commas in code were making the program duration factor and methods
to be read as tuples instead of string/integers.

Changes made:
- Removed extra commas in program.py
- Added simple unit test case to test the program initialization
Reason for change:
There were still relics of the old parameters in the simple test case
parameters. This commit updates and removes those relics
Reason for change:
Moved messages over to the output_message constants file.
Reason for change:
Probit plots are a useful tool for comparing two emissions
distributions.

Resolution:
This change adds probit plots to the summary visualizations.

Effect(s) of change:
Added new plot to summary visualizations.

WIP: Add probit plots for scaling

Reason for change:

Resolution:

Effect(s) of change:

WIP: add probit plots to summary visualizations

Reason for change:

Resolution:

Effect(s) of change:
Reason for change:
Users had no ability to modify any properties of the summary
visualizations.

Resolution:
This change allows users to modify the properties of the
summary visualizations with summary visualization settings parameters
in the outputs parameters.

Additionally, made changes to cleanup logic for the new probit plots.

Effect(s) of change:
Users can now modify select properties of the summary visualizations.
Reason for change:
User define output parameters were being overwritten by the default
output parameters.

Resolution:
The user defined output parameters are now being properly used
to update the default output parameters.

Effect(s) of change:
Output parameters now function as expected.
Reason for change:
Responding to suggested changes from code review to cleanup constants
from new changes.

Resolution:
Moved quantiles to a constant and adjusted constant naming.

Effect(s) of change:
N/A
Reason for change:
initialization did not always be have as intended with the preseed
files provided.

Changes:
- Preseed files if they are generated, forces the remake of all
generated files
- Add error handling for when n_sim_saved is missing
Reason for Change:
When generator files exist, running the same programs with different
methods cause the simulator to crash with no good error message.

Changes:
- Updated the hash file to take into account the programs. If a
program is changed, new infrastructure is generated
ThomasGalesloot and others added 30 commits August 20, 2024 09:13
feat: Add parameter to keep all program outputs
Reason for change:
Sim was breaking when the METEC_NoWind_sensor was used

Resolution:
Fix the inheritance of the sensors such that it's using the
correct functions

Effect(s) of change:
The sim runs now using METEC_NoWind_sensor
Reason for change:
In some cases, it is incorrect to simulate emissions beginning from
a state of no LDAR.

Resolution:
Added a parameter to the virtual world that allows the user to
specify whether or not to simulate emissions that "begin" before the
start of the simulation.

Effect(s) of change:
The user can now specify whether or not to simulate emissions that
"begin" before the start of the simulation.
Reason for change:
Changes to emissions generation logic to allow for pre-simulation
emissions to be turned off caused the unit tests to fail due to
missing arguments.

Resolution:
Updated the unit tests to include the new argument for the
generate_emissions function.

Effect(s) of change:
Reason for change:
User manual descriptions require refinement

Resolution:
Updated user manual descriptions to be more accurate and informative.

Effect(s) of change:
…ation_emissions

Add option to prevent pre simulation emissions
* fix: fixed issue with METEC_NoWind_sensor.py

Reason for change:
The METEC_NoWind_sensor was out of date for the current version of the
LDAR-Sim, resulting in a runtime error when using it at the equipment
or component level.

Resolution:
The METEC_NoWind_sensor was updated to the current version of the
LDAR-Sim, allowing it to be used at the equipment or component level.

Effect(s) of change:
The METEC_NoWind_sensor can now be used at the equipment or component
level without causing a runtime error.
Reason for change:
Rolling average startup logic was working in such a way that anomalous
behavior was observed in the start of the simulation.

Resolution:
Changed rolling average startup logic to require the full
rolling average window to be filled before the rolling average
is calculated. This will prevent the rolling average from being
calculated with fewer than the full window of data.

Effect(s) of change:
The rolling average startup logic will now require the full
rolling average window to be filled before the rolling average
is calculated.
Reason for change:
CM would only use rolling averages beginning after a detection had
occurred. This was not the desired behavior.

Resolution:
CM now uses true rolling averages, beginning at the start of the
simulation.

Effect(s) of change:
CM will now use true rolling averages, beginning at the start of the
simulation.
Reason for change:
Runtime error was occurring when the
stationary long threshold was not set.

Resolution:
Added a check to see if the stationary long threshold is defined before
using it in the rolling average calculation.

Effect(s) of change:
The program will no longer crash if the stationary long threshold
is not set.
Reason for change:
Rolling average logic was updated to require a minimum number of data
points before calculating the average. This change was made to prevent
the rolling average from being calculated with too few data points,
which could result in an inaccurate average.

Resolution:
The test was updated to reflect the new rolling average logic. The test
now expects a rolling average returned before the minimum number of data
points is reached to be 0.

Effect(s) of change:
The test now accurately reflects the behavior of the rolling average
logic.
Reason for change:
When calculating start dates for estimated emissions, runtime errors
were being thrown when the shape of the dataframe was not as expected.

Resolution:
This change adds checks for the shape of the dataframe and for empty
dataframes to prevent these errors.

Effect(s) of change:
Prevents runtime errors.
Reason for change:
Rolling average logic was not functioning as expected when using both
thresholds.

Resolution:
Fixed the logic to follow-up if either threshold is met instead of both.
This was not intentional and was causing the logic to not follow-up when
it should have.

Effect(s) of change:
The rolling average logic will now follow-up if either threshold is met.
Reason for change:
Earlier changes added logic to requeue mobile sites for flagging
however as mobile sites are already filtered by threshold they
should never entered that conditional block.

Resolution:
Remove the logic to requeue mobile sites for flagging.

Effect(s) of change:
N/A
Reason for change:
CM behavior was changed

Resolution:
Updated E2E tests to reflect the new CM behavior

Effect(s) of change:
E2E tests now up to date with new CM behavior
…logic

Change startup rolling average logic
Reason for change:
Spatial extrapolation was not extrapolating to unmeasured sites
correctly.

Resolution:
This change fixes the spatial extrapolation logic for non-component
level simulations and adds additional outputs for better analysis.

Effect(s) of change:
…dd-outputs

Fix spatial extrapolation and add outputs
* change rs > 0 to >=0

* update changelog
* Added Mac-environment file

* Update numpy nan imports

* Updated changelog.md
Reason for change:
The Ephem library was not correctly handling polar day and polar
night scenarios, leading to runtime errors when calculating daylight
hours. Because daylight hours are always calculated even when daylight
is not considered, this was blocking simulations with polar weather
data.

Resolution:
Added a try-catch for and handling polar day and polar night scenarios.

Effect(s) of change:
This change allows the simulation to run without errors in polar
regions by correctly accounting for extreme daylight conditions.
…xtremes

fix: Fix error in polar daylight extremes
* fix emission source list returning the wrong value

* <doc> updated changelog
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants