Establish basic repository structure
Here are some early thoughs on how to structure this repo.
Files and folders
/data Put some small sample data files, obviously we cannot commit the large L2 files to the repo
/webapp Everything needed to put this tool online
/eocalc EO emission estimator package. Provides useful constants in context.py. /eocalc/methods The actual core of the application. Implements the methods to derive emission estimates from eo data. /eocalc/tests Unit tests for methods.
workbook (example usage code)
Method class hierarchy
from abc import ABC, abstractmethod
class EOEmissionCalculator(ABC):
def __init__(self):
super().__init__()
@abstractmethod
def run(self, area, timespan, pollutants):
pass
@staticmethod
@abstractmethod
def minimum_area():
[...]
class MassBalanceEmissionCalculator(EOEmissionCalculator)
def __init__(self):
super().__init__()
@staticmethod
@abstractmethod
def minimum_timespan():
class BeirleEmissionCalculator(MassBalanceEmissionCalculator)
def __init__(self):
super().__init__()
def run(self, area, timespan, pollutants):
[...]