awips2/cave/com.raytheon.viz.gfe/localization/gfe/userPython/utilities/EditAreaUtilities.py

72 lines
2.4 KiB
Python

# ----------------------------------------------------------------------------
# This software is in the public domain, furnished "as is", without technical
# support, and with no warranty, express or implied, as to its usefulness for
# any purpose.
# ----------------------------------------------------------------------------
##
# EditAreaUtilities
#
# An interface to create and maintain a set of edit areas outside of CAVE.
# The Data Access Framework does not offer edit areas as a data type, so
# this code is necessary to store and retrieve data outside of CAVE.
#
# Author: lefebvre
#
# SOFTWARE HISTORY
# Date Ticket# Engineer Description
# ----------- ---------- ----------- --------------------------
# 08/05/2016 - tlefebvre Better error checking when mask file not found.
# 12/02/2016 - tlefebvre Documented code.
# 12/20/2017 DCS17686 tlefebvre Initial baseline version.
#
##
# ----------------------------------------------------------------------------
import numpy as np
import os
import time
class EditAreaUtilities():
def __init__(self, repositoryPath):
self._repositoryPath = repositoryPath
# Saves the specified mask under the name eaName into the edit area repository
def saveEditArea(self, eaName, mask):
# Use the numpy method to save the mask
np.save(self._repositoryPath + eaName, mask)
return
# Retreives an edit area in the form of a mask from the repository
def fetchEditArea(self, name):
fullPath = os.path.join(self._repositoryPath, name + ".npy")
if not os.path.exists(fullPath):
print "Error!", fullPath, "not found in EditArea repository"
return None
try:
mask = np.load(fullPath)
except:
print "Error reading edit area:", name, "from EditArea repository."
return None
# Make very sure we're returning a good mask or None
if mask is None:
return None
return mask # return the contents of the file rather than the file itself
# Returns the names of all the edit areas in the repository
def allEditAreaNames(self):
fileList = os.listdir(self._repositoryPath)
nameList = []
for fileName in fileList:
if ".npy" in fileName:
nameList.append(fileName[:-4])
return nameList