proteus.TriangleFileUtils module

A collection of functions for reading and manipulating files so that I can try to read and write files in the format that Triangle expects

proteus.TriangleFileUtils.checkFileExists(filename)[source]
proteus.TriangleFileUtils.checkDataRead(dataArray, notReadVal)[source]

just go through data variable and check to make sure no values are equal to a special value to which data should have been initialized before it was read

returns boolean for ok or not

proteus.TriangleFileUtils.generateDefaultFormatPattern(recInfo, verbose=0)[source]

generate the initial line format for the Triangle data files based on the variable types specified in recInfo

This is in most cases a line that looks like
Nentries NumEntriesInRec0 NumEntriesInRec1 ....

In some cases (e.g., segments) the number of entries in a segment is omitted so that the default format doesn’t follow

proteus.TriangleFileUtils.findInitialFormatLine(lines, recInfo, formatpattern, commchar='#', nbase=0, verbose=0)[source]

find the line for the Triangle data files, specified in formatpattern.

Generate dataInfo dictionary that should specify dataInfo[‘nEntries’] : number of entries in the file dataInfo[‘recordSizes’] : size of each record per entry (can be 0) dataInfo[‘dataStartLineNumber’] : line where actual data entries may start dataInfo[‘recordLocationsPerLine’] : array of indeces saying where each record should start on a valid entry line record I is in entries recStart[I]:recStart[I+1]

proteus.TriangleFileUtils.readSimpleFormattedDataEntries(lines, recInfo, dataInfo, commchar='#', nbase=0, verbose=0)[source]

Try to read some data consisting of records stored in lines. The records are described in recInfo. The basic thing I need is the possible number of records per line and the type for each one.

I’ll go ahead and assume the file looks like a series of blank lines or commented lines and then the first meaningful line which gives the file format that should be the same as what I’m expecting ...

Nentries NumEntriesInRec0 NumEntriesInRec1 ....

The regex format for this line is given in formatpattern.

After that comes Nentry values with the basic format

Entry Num. Rec0 Rec1 ...

If NumEntriesInRecI is 0 then that record shouldn’t appear

returns
data : what was read ilast : index of last line read
proteus.TriangleFileUtils.readSimpleFormattedDataEntriesLastOptional(lines, recInfo, dataInfo, commchar='#', nbase=0, verbose=0)[source]

Try to read some data consisting of records stored in lines. The records are described in recInfo. The basic thing I need is the possible number of records per line and the type for each one.

This version allows the last data entry to be omitted so that I
can read the regions list. I need to generalize to allow a given entry to not be found I guess

I’ll go ahead and assume the file looks like a series of blank lines or commented lines and then the first meaningful line which gives the file format that should be the same as what I’m expecting ...

Nentries NumEntriesInRec0 NumEntriesInRec1 ....

The regex format for this line is given in formatpattern.

After that comes Nentry values with the basic format

Entry Num. Rec0 Rec1 ...

If NumEntriesInRecI is 0 then that record shouldn’t appear

returns
data : what was read ilast : index of last line read