import ResSimpy.Nexus.nexus_file_operations as nfo
[docs]class Reporting:
[docs] def __init__(self, model) -> None:
self.__model = model
[docs] def add_map_properties_to_start_of_grid_file(self):
"""Adds 'map' statements to the start of the grid file to ensure standalone outputs all the required \
properties. Writes out to the same structured grid file path provided.
Raises:
ValueError: if no structured grid file path is specified in the class instance
"""
structured_grid_path = self.__model.structured_grid_path
if self.__model.structured_grid_path is None:
raise ValueError("No file path given or found for structured grid file path. \
Please update structured grid file path")
file = nfo.load_file_as_list(structured_grid_path)
if not nfo.value_in_file('MAPBINARY', file):
new_file = ['MAPBINARY\n']
else:
new_file = []
if not nfo.value_in_file('MAPVDB', file):
new_file.extend(['MAPVDB\n'])
if not nfo.value_in_file('MAPOUT', file):
new_file.extend(['MAPOUT ALL\n'])
else:
line_counter = 0
for line in file:
if nfo.check_token('MAPOUT', line):
file[line_counter] = 'MAPOUT ALL\n'
break
line_counter += 1
new_file.extend(file)
# Save the new file contents
new_file_str = "".join(new_file)
with open(structured_grid_path, "w") as text_file:
text_file.write(new_file_str)