pictures/imod_logo.png

iMOD User Manual version 5.2 (html)


8.5IPF-FUNCTIONS


8.5.1IPFSTAT-Function

The IPFSTAT function can be used to perform statistical analyses on time series that are defined in IPF files as associated files.

FUNCTION=

IPFSTAT

IPFFILE_IN

Specify the name for the IPF file to be used, e.g. IPFFILE_IN=D:\DATA \OBS.IPF

IPFFILE_OUT

Specify the name for the IPF file to be created and added with additional statistics of the associated time series, e.g. IPFFILE_OUT=D:\DATA \OBS_STAT.IPF

IVARS

Specify the variable(s) that need to be computed, e.g. IVARS=1,3,5 or IVARS=1; this can be a list of the following options:
IVARS=1
This will add the minimal value of the time series to the IPFFILE_OUT file.
IVARS=2
This will add the maximal value of the time series to the IPFFILE_OUT file.
IVARS=3
This will add the average value of the time series to the IPFFILE_OUT file.
IVARS=4
This will add the average-highest (GHG) and average-lowest (GLG) values of the time series to the IPFFILE_OUT file. It is the total average of the three highest and lowest values per hydrological year for the 14\(^{\rm st}\) and 28\(^{\rm st}\) of each month (starting at 1\(^{\rm st}\) of April).
IVARS=5
This will add the specified percentile value (PERC) of the time series to the IPFFILE_OUT file.

SDATE=

Enter the starting date for which the statistics need to be computed, e.g. SDATE=20010101 which is the 1\(^{\rm st}\) of January 2001. This date is included.

EDATE=

Enter the starting date for which the statistics need to be computed, e.g. EDATE=20151115 which is the 15\(^{\rm st}\) of November 2015. This date is included.

PERC= (IVARS=5)

Specify the percentile(s) which are used whenever IVARS=4, e.g. PERC=50.0 or PERC=10.0,50.0,90.0 which will generate the different percentiles and add them as separate columns to the IPF file.

ITXTFILE= (IVARS=5)

Specify whether an associated TXT file need to be created for the different percentiles as specified at PERC. iMOD creates a TXT file with entries per percentile \(z(10.0)\) is the 10-percentile value) as if they are dates, e.g. the PERC=10.0,50.0,90.0 will become:

3
2,1
DATE,-999
OBS,-999
20010110,\(z(10.0)\)
20010219,\(z(50.0)\)
20010310,\(z(100.0)\)

Note
iMOD does not take into account percentiles that have decimals.

MINMEASURE=
(IVARS=4)

Specify the number of minimal measures per year for a complete year will be included in the computation of the GHG and GLG for IVARS=4.

DIFFDAY=
(IVARS=4)

Specify the number of days for which an existing measure might differ from the prescribed 14\(^{\rm st}\) and 28\(^{\rm st}\) of each month, e.g. DIFFDAY=2 means that an observation in between 12-16 and 26-30 is valid. iMOD will select the one closest to the 14\(^{\rm st}\) and 28\(^{\rm st}\) of each month.

IWEIGHT=
(optional)

Specify whether the total measurements \(n\) that satisfied the SDATE and EDATE entries need to be written as a weight value (IWEIGHT=1 thus \(\sqrt (n)\)) or as absolute value IWEIGHT=0 thus \(n\). The default value is IWEIGHT=0.

IACOL=
(optional)

Specify the column in the associated text file that you like to calculate the statistics for. It is not possible to use the date-column (IACOL=1). The default value is IACOL=2.

Example 1

FUNCTION=IPFSTAT
IPFFILE_IN=D:\TESTS\TEST.IPF
IPFFILE_OUT=D:\TESTS\OUT.IPF
IVARS=3

The example above computes the average groundwaterlevels (or equivalent) that are associated with the IPF file TEST.IPF. The result is stored in OUT.IPF.

Example 2

FUNCTION=IPFSTAT
IPFFILE_IN=D:\TESTS\MEASURE.IPF
IPFFILE_OUT=D:\TESTS\MODEL.IPF
VARIABLES=4,5
PERC=50.0
SDATE=20100101
EDATE=20170101
MINMEASURE=18
DIFFDAY=2
IACOL=3

The example above, computes the GHG and GLG for the measurements in the second column associated with the MEASURE.IPF for the 1\(^{\rm st}\) of January 2010 up to the 1\(^{\rm st}\) of January 2017. It takes years into account that have at least 18 measurement for the appropriates dates of 14\(^{\rm st}\) and 28\(^{\rm st}\) per month, which can differ for maximal 2 days (DIFFDAY=2).


8.5.2IPFSPOTIFY-Function

The IPFSPOTIFY function can be used to spotify geological formations in existing model discretisations. It gives per model layer the fraction that a geological formation exists. The output of this function (whenever OUTPUFOLDER is specified) can be used in the function CREATEIZONE, see section section 8.9.2.

FUNCTION=

IPFSPOTIFY

IPFFILE_IN
(optional)=

Enter the name of an *.IPF file for which the locations need to be spotified in the selected op geological formations, e.g IPFFILE_IN=D:\WELLS.IPF.

IPFFILE_OUT=

Specify an IPF file for which the fraction per geological formation will be saved, e.g. D:\RESULT.IPF.

IXCOL=

Specify the column number in the IPFFILE_IN that defines the X coordinates, by default IXCOL=1.

IYCOL=

Specify the column number in the IPFFILE_IN that defines the Y coordinates, by default IYCOL=2.

IFCOL=

Specify the column number in the IPFFILE_IN that defines the attribute for which the fraction need to be computed, by default IFCOL=3.

IZ1COL=

Specify the column number in the IPFFILE_IN that defines the top elevation to spotify underneath, by default IZ1COL=4.

IZ2COL=

Specify the column number in the IPFFILE_IN that defines the bottom elevation to spotify above, by default IZ2COL=5.

ILCOL=

Specify the column number in the IPFFILE_IN that defines the modellayer, by default ILCOL=6.

OUTPUT
FOLDER
(optional)=

Specify the output folder in which all IDF files will be saved with the individual fractions per geological formation per model layer, e.g OUTPUTFOLDER=D:\AQUIFER

NLAY=

Specify the number of model layers to be spotified, e.g NLAY=\(10\)

TOP_{\(i\)}=

Specify the top elevation for the \(i^{\rm th}\) model layer, e.g TOP_L2=D:\MODEL\TOP_L2.IDF.

BOT_{\(i\)}=

Specify the bottom elevation for the \(i^{\rm th}\) model layer, e.g BOT_L2=D:\MODEL\BOT_L2.IDF.

FORMTOP=

Specify the folder that stores the TOP elevation of geological formations, e.g. FORMTOP=D:\GEOLOGY\*-T-CK.IDF. All files will be used that fit this wildcard definition.

FORMBOT=

Specify the folder that stores the BOT elevation of geological formations, e.g. FORMBOT=D:\GEOLOGY\*-B-CK.IDF. All files will be used that fit this wildcard definition.

Example 1

FUNCTION=IPFSPOTIFY
IPFFILE_IN=D:\WELLS\TEST.IPF
IPFFILE_OUT=D:\SPOTIFIED\OUT.IPF
NLAY=2
TOP_L1=D:\MODEL\TOP_L1.IDF
BOT_L1=D:\MODEL\BOT_L1.IDF
TOP_L2=D:\MODEL\TOP_L2.IDF
BOT_L2=D:\MODEL\BOT_L2.IDF
REGISTOP=D:\REGIS\*-T-CK.IDF
REGISBOT=D:\REGIS\*-B-CK.IDF

The example above computes the fractions for each location in the IPFFILE_IN of all geological formations in REGISTOP and REGISBOT for each model layer.

Example 2

FUNCTION=IPFSPOTIFY
OUTPUTFOLDER=D:\FRACTIONS\AQUIFER
NLAY=2
TOP_L1=D:\MODEL\TOP_L1.IDF
BOT_L1=D:\MODEL\BOT_L1.IDF
TOP_L2=D:\MODEL\TOP_L2.IDF
BOT_L2=D:\MODEL\BOT_L2.IDF
REGISTOP=D:\REGIS\*-T-CK.IDF
REGISBOT=D:\REGIS\*-B-CK.IDF

The example above, computes the fractions for each cell in the model layers for each geological formation defined by the REGISTOP and REGISBOT keywords, the results are stored in the AQUIFER folder. To spotify aquitards in it is neccessary to switch the top and bottom elevations, e.g.

FUNCTION=IPFSPOTIFY
OUTPUTFOLDER=D:\FRACTIONS\AQUITARD
NLAY=1
TOP_L1=D:\MODEL\BOT_L1.IDF
BOT_L1=D:\MODEL\TOP_L2.IDF
REGISTOP=D:\REGIS\*-T-CK.IDF
REGISBOT=D:\REGIS\*-B-CK.IDF


8.5.3IPFSAMPLE-Function

The function IPFSAMPLE samples IDF-files to add values to the points defined in an IPF file.

FUNCTION=

IPFSAMPLE

IPFFILE_IN=

Enter the name of an IPF file with minimal 2 columns that represents x- and y coordinates, e.g. D:\DATA\MEASURE.IPF.

IPFFILE_OUT=

Enter the name of an IPF file that need to be written with the results of the IDF values from the specified IDFFILE, e.g. D:\DATA\CHECK.IPF. Results read from the IDF-files in SOURCEDIR, will be stored as an extra column in IPFFILE_IN, the label will be identical to the name of the IDF-files.

SOURCEDIR=

Enter the name of an IDF-file that needs to be read by the points specified in the IPF file IPFFILE_IN, e.g. D:\DATA\RESULTS\HEAD.IDF.

IXCOL

Enter the column number in the IPF file IPFFILE_IN that represents the X-coordinate, e.g. IXCOL=4. By default IXCOL=1.

IYCOL

Enter the column number in the IPF file IPFFILE_IN that represents the Y-coordinate, e.g. IYCOL=6. By default IYCOL=2.

IACOL

Enter the column number to enter the sampled data from the IDF files, e.g. IACOL=3 which means that the entered starts at columns 3. By default IACOL=0 which means that the sampled data will be added at the end of the IPF file.

Example 1

FUNCTION=IPFSAMPLE
IPFFILE_IN=D:\WELLS.IPF
IPFFILE_OUT=D:\WELLS_KD.IPF
SOURCEDIR=D:\DATA\KD*.IDF

This example, adds values (columns) to all points in the IPF file WELLS.IPF, with the corresponding values from the KD*.IDF-files in the folder D:\DATA.

Example 2

FUNCTION=IPFSAMPLE
IPFFILE_IN=D:\WELLS.IPF
IPFFILE_OUT=D:\WELLS.IPF
SOURCEDIR=D:\DATA\KD*.IDF
IXCOL=4
IYCOL=3

This example, adds values (columns) to all points in the IPF file WELLS.IPF, with the corresponding values from the KD*.IDF-files in the folder D:\DATA. The x- and y coordinates in the IPF file WELLS.IPF, will be read from the fourth and third column, respectively.


8.5.4IPFEVALUATE-Function

The function IPFEVALUATE samples IDF-files to add model result values (e.g. heads) to the points defined in an IPF file (by using IPFSAMPLE) and evaluates if the measurements are linked to the correct model layer by comparing them to the model results. The resulting IPF-file shows the original model layer, the proposed model layer and the difference between those two.

FUNCTION=

IPFEVALUATE

IPFFILE_IN=

Enter the name of an IPF file with minimal 2 columns that represents x- and y coordinates, e.g. D:\DATA\MEASURE.IPF. Note: be sure that in case that IPFFILE_IN refers to a transient IPF (with a IEXT>0), that IPFFILE_OUT is stored at the same location!

IXCOL

Enter the column number in the IPF file IPFFILE_IN that represents the X-coordinate, e.g. IXCOL=4. By default IXCOL=1.

IYCOL

Enter the column number in the IPF file IPFFILE_IN that represents the Y-coordinate, e.g. IYCOL=6. By default IYCOL=2.

IACOL

Enter the column number to enter the sampled data from the IDF files, e.g. IACOL=3 which means that the entered starts at columns 3.

IMCOL

Enter the column number in the IPF file IPFFILE_IN that represents the measured values, e.g. IMCOL=4. By default IYCOL=0.

ILCOL

Enter the column number in the IPF file IPFFILE_IN that represents the model layer that the particular measurement is linked, e.g. ILCOL=3. By default IYCOL=0.

IPFFILE_OUT=

Enter the name of an IPF file that need to be written with the results of the IDF values from the specified IDFFILE (= result of IPFSAMPLE routine), e.g. D:\DATA\cal_opt_L1.IPF. Results read from the IDF-files in SOURCEDIR, will be stored as an extra column in IPFFILE_IN, the label will be identical to the name of the IDF-files. Note: be sure that in case that IPFFILE_IN refers to a transient IPF (with a IEXT>0), that IPFFILE_OUT is stored at the same location!

IPFLAYERS=

Enter the name of an IPF file that need to be written with the results of evaluation if the measurements are linked to the correct model layer, e.g. D:\DATA\optimal_layers\opt_layers_L1.IPF.

SOURCEDIR=

Enter the name of an IDF-file that needs to be read by the points specified in the IPF file IPFFILE_IN, e.g. D:\DATA\RESULTS\HEAD_steady_state_l*.IDF.

The format of the resulting IPF-file is fixed (except for the sampled column names) and is like:

NROW

The value in the first row in the IPF-file refers to the number of rows in the IPF-file

NCOL

The value in the second row in the IPF-file refers to the number of columns in the IPF-file

X

Column with x-coordinates of the observation locations.

Y

Column with y-coordinates of the observation locations.

(MEDIAN)
OBSERVATION

Column with the observation values. In case a transient IPF-file is given as input a median value of the complete time series will be calculated.

ILAY_ORG

The original model layer that determined based on the given filter depths of the observation locations.

ILAY_OPT

The proposed model layer by the tool based on the difference between the observed and the simulated value.

ILAY_DIF

Difference between proposed and original model layer, e.g. ILAY_DIF>0 than ILAY_ORG

FLAG

Indicates the possible cause and response to a proposed model layer change. A model layer change is only proposed when the improvement of the residual (measured - modelled value) is not equal to 0.0.

FLAG=0

This means that there might be slight improvement by choosing a different layer filter but the improvement is too small or the values of all model layers are almost equal, so do nothing.

FLAG=1

This means that another layer filter will fit better to the measurement.

FLAG=2

This means that the measurement might be wrong and needs more checking. Don’t change the layer filter based on the proposed layer filter.

DH_ORG

Difference between the observed and simulated heads based on the original layer filter.

DH_OPT

Difference between the observed and simulated heads based on the proposed layer filter.

DH_DIF

Difference between DH_ORG and DH_OPT.

HEAD_*

Depending on the amount of head files you want to include in the evaluation, each name will be listed. E.g.

HEAD_LAYER_1

HEAD_LAYER_2

HEAD_LAYER_3

HEAD_LAYER_4

HEAD_LAYER_5

Example 1

FUNCTION=IPFEVALUATE
IPFFILE_IN=D:\WELLS_L1.IPF
IXCOL=1
IYCOL=2
IACOL=9
IMCOL=4
ILCOL=3
IPFFILE_OUT=D:\WELLS_cal_opt_l1.IPF
IPFLAYERS=D:\WELLS_opt_layers_l1.IPF
SOURCEDIR=D:\DATA\head_steady_state_l*.IDF

This example, adds values (columns) to all points in the IPF file WELLS_L1.IPF, with the corresponding values from the head_steady_state_l*.IDF-files in the folder D:\DATA. The x- and y coordinates in the IPF file WELLS_L1.IPF, will be read from the first and second column, respectively and the values will be added to the 9th column onwards, so in case there are 5 IDF-files in the SOURCEDIR with the given format the values will be placed in column 9, 10, 11, 12 and 13. The measurement values will be read from the fourth column and the layer number from column 3.


8.5.5IPFEDIT-Function

The function IPFEDIT reorganises an existing IPF file.

FUNCTION=

IPFEDIT

IPFFILE_IN=

Enter the name of an IPF file, e.g. D:\DATA\MEASURE.IPF.

IPFFILE_OUT=

Enter the name of an IPF file that needs to be saved with the selected set of columns, e.g. D:\DATA\CHECK.IPF.

NCOLUMNS=

Enter the number of columns from the IPF for IPFFILE_IN to be saved in the new IPF at IPFFILE_OUT, e.g NCOLUMNS=3.

ICOL{i}

Enter the column number from the IPF file IPFFILE_IN to be saved as the \(i^{\rm th}\) column in the IPFFILE_OUT, e.g. ICOL1=3.

Example 1

FUNCTION=IPFEDIT
IPFFILE_IN=D:\WELLS.IPF
IPFFILE_OUT=D:\WELLS_CLEANED.IPF
NCOLUMNS=3
ICOL1=1
ICOL2=2
ICOL3=8

This example, reduces the original D:\WELLS.IPF for 3 columns determined by the columns 1,2 and 8. The results is saved into D:\WELLS_CLEANED.IPF.


8.5.6IPFSUM-Function

The function IPFSUM generates a list of total volumes per specified year for zone (if needed) form IPF files. This can be used to prior check the IPF files before entering the model.

FUNCTION=

IPFSUM

NFILE=

Enter the number if IPF file to be used, e.g. NFILE=3.

SDATE=

Enter the start date for the summation of volumes, e.g. SDATE=20110101 to denote the 1\(^{\rm th}\) of January 2011.

EDATE=

Enter the end date for the summation of volumes, e.g. SDATE=20171231 to denote the 31\(^{\rm st}\) of December 2017.

DDATE=

Enter the steps in between the SDATE and EDATE for the summation of volumes, e.g.

  • 1. Daily;

  • 2. Weekly;

  • 3. Monthly;

  • 4. Yearly.

IPFFILE{i}=

Enter the name of i\(^{\rm th}\) IPF file, e.g. IPFFILE_1=D:\DATA\WELL_L1.IPF.

ZONEIDF=
optional

Enter the name of an IDF file that needs to be used for the different areas (zones) for which the volumes need to be aggregated, e.g. ZONEIDF=D:\DATA\ZONES.IDF.

OUTPUTFILE=

Enter the name of the output file in which the results are written, e.g. OUTPUTFILE=D:\DATA\OUTPUT.TXT.

Example 1

FUNCTION=IPFSUM
NFILE=1
IPFFILE_1=D:\DATA\WELL_L1.IPF
SDATE=19500101
EDATE=20191231
DDATE=4
OUTPUTFILE=D:\OUTPUT.TXT

This example, summes all volumes from the IPF file on a yearly basis (DDATE=4) in between the 1\(^{\rm th}\) of January 1950 up to the 31\(^{\rm st}\) of December 2019 and saves the volumes in D:\OUTPUT.TXT.


8.5.7IPFEDITWEIGHT-Function

Use this function to adjust the weight value in an ipf-file by making use of a pointer grid.

FUNCTION=

IPFEDITWEIGHT

IPFFILE_IN=

Specify the name for the IPF file to be used, e.g. IPFFILE_IN=D:\DATA \OBS.IPF

IPFFILE_OUT=

Specify the name for the IPF file to be created, including the adjusted weight values, e.g. IPFFILE_OUT=D:\DATA \OBS_WEIGHT.IPF

WCOL=

Enter the column name of the IPF file that contains the weight values, that need to be adjusted, e.g. WCOL=9.

POINTERIDF=

Specify the name of the IDF file containing the area of interest, e.g. D:\DATA \pointer_AOI.IDF

PVAL=

Enter the pointer grid value that is linked to the locations inside the area of interest, e.g. PVAL=1.0 for locations inside the pointer grid; FACTOR_IN will be applied. All other values will be seen as "outside the pointer grid".

FACTOR_IN=

Enter the factor to be applied to weight values of the locations inside the pointer grid, e.g. FACTOR_IN=1.0 means that the current weight value per location inside the pointer grid will be multiplied with 1.0.

FACTOR_OUT=

Enter the factor to be applied to weight values of the locations outside the pointer grid, e.g. FACTOR_IN=0.1 means that the current weight value per location outside the pointer grid will be multiplied with 0.1.

Example 1

FUNCTION=IPFEDITWEIGHT
IPFFILE_IN="d:\MODELLEN \TWENTE\DBASE\MEETREEKSEN\VERSION_1\IMOD_MKIPF_WELLS_L1.IPF"
WCOL=9
FACTOR_IN=1.0
FACTOR_OUT=0.1
POINTERIDF="d:\MODELLEN \TWENTE\DBASE\MEETREEKSEN\POINTER_INSIDE.idf"
PVAL=1.0
IPFFILE_OUT="d:\MODELLEN\TWENTE\DBASE\MEETREEKSEN\VERSION_2\IMOD_MKIPF_WELLS_L1.IPF"

This example multiplies the weight values with a factor 0.1 (=FACTOR_OUT) for all locations that are located outside the pointer grid; grid values other than 1.0 (=PVAL). For locations that are linked to grid values equal to 1.0 the multiplication factor for the weight value is 1.0 (=FACTOR_IN).