Source code for lidarSuit.lstConfig

"""Module for configuring the data global attribute

"""

import json


[docs]class configurations: """Global attributes definition This class defines all global attributes that will be writen on the dataset Parameters ---------- lst : object an instance of the lidarSuit package """
[docs] def __init__(self, lst=None): self.loadVersion(lst) self.loadReference() self.loadInstitution() self.loadInstrument() self.loadSite() self.loadContact() self.loadEmail() self.loadComments()
def loadVersion(self, lst): """ It identifies the lidarSuit version and writes it to the configuration file Parameters ---------- lst : object a instance of the lidarSuit package """ if lst == None: self.lstVersion = "temporary config file" else: self.lstVersion = lst.__version__ return self def loadInstitution(self, institution="institution name"): """ It defines the institution affiliation name Parameters ---------- institution : str institution name """ self.institution = institution return self def loadInstrument(self, instrument="instrument name"): """ It defines the instrument name Parameters ---------- instrument : str name of the instrument used during the experiment """ self.instrument = instrument return self def loadSite(self, site="site name"): """ It defines the name of the experimental site Parameters ---------- site : str name of the experimental site """ self.site = site return self def loadContact(self, contact="contact person"): """ It defines the author's name Parameters ---------- contact : str name of the contact person """ self.contact = contact return self def loadEmail(self, email="contact email"): """ It defines the contacting email Parameters ---------- email : str contact email """ self.email = email return self def loadReference(self, reference="Generated by lidarSuit version: {0}"): """ It loads the lidarSuit's version used for processing the data Parameters ---------- reference : str lidarSuit version used to process the data """ self.references = reference.format(self.lstVersion) return self def loadComments(self, comments="General comments"): """ It defines additional comments Parameters ---------- comments : str additional comments """ self.comments = comments return self def generateConf(self): """ It writes and saves all defined global attributes. """ configDic = {} configDic["references"] = self.references configDic["institution"] = self.institution configDic["instrument_name"] = self.instrument configDic["site_name"] = self.site configDic["comments"] = self.comments configDic["contact_person"] = self.contact configDic["email"] = self.email configJS = json.dumps(configDic) configFile = open("config.json", "w") configFile.write(configJS) configFile.close() def loadConfFile(self, filePath="config.json"): """ It loads the pre-defined global attributes from the config.json, if it exists. Parameters ---------- filePath : str the path to the configuration file (config.json) """ try: configDic = json.load(open(filePath)) except FileNotFoundError: print("You do not have a config file yet") print("a temporary config file was generated") print("See the documentation for generating it") self.generateConf() configDic = json.load(open(filePath)) self.loadReference(configDic["references"]) self.loadInstitution(configDic["institution"]) self.loadInstrument(configDic["instrument_name"]) self.loadComments(configDic["comments"]) self.loadSite(configDic["site_name"]) self.loadContact(configDic["contact_person"]) self.loadEmail(configDic["email"]) return self