@@ -73,8 +73,6 @@ class LayerStorage:
7373 whether the data is stored in a binary file
7474 nc_dataset : ModelNetCDFDataset or None
7575 model netcdf dataset
76- nc_layered : bool
77- array storage data is layered
7876
7977 Methods
8078 -------
@@ -120,7 +118,6 @@ def __init__(
120118 self .iprn = None
121119 self .binary = False
122120 self .nc_dataset = None
123- self .nc_layered = False
124121
125122 def set_internal_constant (self ):
126123 self .data_storage_type = DataStorageType .internal_constant
@@ -1025,9 +1022,6 @@ def _set_array(
10251022
10261023 success = False
10271024 if preserve_record :
1028- if self .netcdf and isinstance (data , list ):
1029- # TODO: is this a kludge? #NETCDF-DEV
1030- data = self ._to_ndarray (data , layer )
10311025 if isinstance (data , np .ndarray ):
10321026 # try to store while preserving the structure of the
10331027 # existing record
@@ -1128,24 +1122,16 @@ def _set_array_layer(self, data, layer, multiplier, key, preserve_record):
11281122 self .layer_storage [layer ].data_storage_type
11291123 == DataStorageType .external_file
11301124 ):
1131- if self .netcdf :
1132- self .store_netcdf (
1133- layer ,
1134- self .layer_storage [layer ].factor ,
1135- self .layer_storage [layer ].iprn ,
1136- data = data ,
1137- )
1138- else :
1139- self .store_external (
1140- self .layer_storage [layer ].fname ,
1141- layer ,
1142- self .layer_storage [layer ].factor ,
1143- self .layer_storage [layer ].iprn ,
1144- data = data ,
1145- do_not_verify = True ,
1146- binary = self .layer_storage [layer ].binary ,
1147- preserve_record = preserve_record ,
1148- )
1125+ self .store_external (
1126+ self .layer_storage [layer ].fname ,
1127+ layer ,
1128+ self .layer_storage [layer ].factor ,
1129+ self .layer_storage [layer ].iprn ,
1130+ data = data ,
1131+ do_not_verify = True ,
1132+ binary = self .layer_storage [layer ].binary ,
1133+ preserve_record = preserve_record ,
1134+ )
11491135 else :
11501136 self .store_internal (
11511137 data ,
@@ -1162,15 +1148,7 @@ def _set_array_layer(self, data, layer, multiplier, key, preserve_record):
11621148 data [0 ], data_type
11631149 ):
11641150 # store data as const
1165- if self .netcdf :
1166- self .store_netcdf (
1167- layer ,
1168- self .layer_storage [layer ].factor ,
1169- self .layer_storage [layer ].iprn ,
1170- data = data ,
1171- )
1172- else :
1173- self .store_internal (data , layer , True , multiplier , key = key )
1151+ self .store_internal (data , layer , True , multiplier , key = key )
11741152 return True
11751153
11761154 # look for internal and open/close data
@@ -1745,7 +1723,7 @@ def store_external(
17451723 fp = self ._simulation_data .mfpath .resolve_path (
17461724 fp_relative , model_name
17471725 )
1748- else :
1726+ elif fp_relative is not None :
17491727 fp = os .path .join (
17501728 self ._simulation_data .mfpath .get_sim_path (), fp_relative
17511729 )
@@ -1859,12 +1837,23 @@ def store_external(
18591837 self ._data_path ,
18601838 self ._stress_period ,
18611839 )
1862- file_access .write_text_file (
1863- data ,
1864- fp ,
1865- data_type ,
1866- data_size ,
1867- )
1840+
1841+ if self .netcdf :
1842+ # TODO: multiplier NETCDF-DEV
1843+ file_access .set_netcdf_array (
1844+ self .layer_storage [layer ].nc_dataset ,
1845+ self .data_dimensions .structure .get_package (),
1846+ self .data_dimensions .structure .name ,
1847+ data ,
1848+ layer ,
1849+ )
1850+ else :
1851+ file_access .write_text_file (
1852+ data ,
1853+ fp ,
1854+ data_type ,
1855+ data_size ,
1856+ )
18681857 if not preserve_record :
18691858 self .layer_storage [layer_new ].factor = multiplier
18701859 self .layer_storage [layer_new ].internal_data = None
@@ -1879,28 +1868,6 @@ def store_external(
18791868 layer_new , fp_relative , print_format , binary
18801869 )
18811870
1882- def store_netcdf (
1883- self ,
1884- layer = None ,
1885- multiplier = None ,
1886- print_format = None ,
1887- data = None ,
1888- ):
1889- file_access = MFFileAccessArray (
1890- self .data_dimensions .structure ,
1891- self .data_dimensions ,
1892- self ._simulation_data ,
1893- self ._data_path ,
1894- self ._stress_period ,
1895- )
1896- file_access .set_netcdf_array (
1897- self .layer_storage [layer ].nc_dataset ,
1898- self .data_dimensions .structure .get_package (),
1899- self .data_dimensions .structure .name ,
1900- data ,
1901- layer [0 ],
1902- )
1903-
19041871 def set_ext_file_attributes (self , layer , file_path , print_format , binary ):
19051872 # point to the external file and set flags
19061873 self .layer_storage [layer ].fname = file_path
@@ -1922,10 +1889,8 @@ def point_to_existing_external_file(self, arr_line, layer):
19221889
19231890 def _set_storage_netcdf (self , nc_dataset , layered , layer ):
19241891 self .netcdf = True
1925- is_layered = layered and layer > 0
19261892 for idx in self .layer_storage .indexes ():
19271893 self .layer_storage [idx ].nc_dataset = nc_dataset
1928- self .layer_storage [idx ].nc_layered = is_layered
19291894 self .layer_storage [
19301895 idx
19311896 ].data_storage_type = DataStorageType .external_file
@@ -2047,14 +2012,14 @@ def external_to_internal(
20472012 )[0 ]
20482013 elif self .layer_storage [layer ].nc_dataset is not None :
20492014 # TODO: ensure multiplier only set by open/close #NETCDF-DEV
2050- for idx in self . layer_storage . indexes ():
2051- data_out = (
2052- file_access . read_netcdf_array (
2053- self .layer_storage [ layer ]. nc_dataset ,
2054- self .data_dimensions .structure .get_package (),
2055- self .data_dimensions .structure .name ,
2056- idx [ 0 ] ,
2057- )
2015+ data_out = (
2016+ file_access . read_netcdf_array (
2017+ self . layer_storage [ layer ]. nc_dataset ,
2018+ self ._model_or_sim . modeldiscrit ,
2019+ self .data_dimensions .structure .get_package (),
2020+ self .data_dimensions .structure .name ,
2021+ layer ,
2022+ )
20582023 )
20592024 else :
20602025 data_out = file_access .read_text_data_from_file (
@@ -2513,17 +2478,14 @@ def _build_full_data(self, apply_multiplier=False):
25132478 * mult
25142479 )
25152480 elif self .layer_storage [layer ].nc_dataset is not None :
2516- # TODO: ensure multiplier only set by open/close #NETCDF-DEV
2517- if self .layer_storage [layer ].nc_layered :
2518- nc_layer = layer
2519- else :
2520- nc_layer = - 1
25212481 data_out = (
25222482 file_access .read_netcdf_array (
25232483 self .layer_storage [layer ].nc_dataset ,
2484+ self ._model_or_sim .modeldiscrit ,
25242485 self .data_dimensions .structure .get_package (),
25252486 self .data_dimensions .structure .name ,
2526- nc_layer ,
2487+ - 1 ,
2488+
25272489 )
25282490 * mult
25292491 )
@@ -3083,7 +3045,7 @@ def _store_prep(self, layer, multiplier):
30833045 self ._simulation_data .debug ,
30843046 )
30853047 layer = self ._layer_prep (layer )
3086- if multiplier is None :
3048+ if multiplier is None or self . netcdf :
30873049 multiplier = self .get_default_mult ()
30883050 else :
30893051 if isinstance (multiplier , float ):
0 commit comments