User Tools

Site Tools


Extracting Data from Analysis Results

It is likely that underlying software applications being driven by EASAPs will produce output that is not in an acceptable form to be shown as is to users. Since often the needs of the user cannot be known ahead of time, software applications err on the safe side and supply vast amounts of data with the hopes that the desired information will be found somewhere in the output. The aim of this section is to describe how the desired pieces of data can be found, extracted and processed from the output of underlying software applications.

Post-Processing Results

At present, EASA needs to have output files from software applications be ASCII text files in order to extract desired data. If a software application produces only binary format output files, then an intermediate process that runs a post-processing application will be required to produce the necessary text files.

Extracting and Processing Data

Once output text files containing the desired information have been produced by processes running software applications, this information can be extracted from the files using the EXTRACT in combination with FIND and REPEAT. By using a DATA PROCESSING under the OUTPUT branch, these objects can be added and defined under the LIST sub-branch. Once the desired data has been extracted from the output files, you can process and reduce this information further into more desirable forms using other data processing objects, such as the COMPUTE, STATISTICS, GET VALUE and CUT.

Example 1: Extracting Two Numbers

In this example, the goal will be to extract two numbers from an output text file, the minimum and maximum pressure values. Part of the output file, output.dat, is shown below with a black arrow pointing to the line containing the desired data.

The strategy will be to first locate a unique text string just above the line containing the desired data, and then extract the two numbers of interest. This two-step approach eliminates the possibility of finding the wrong match earlier in the file. The steps for accomplishing this type of data extraction are as follows:

  1. Create a DATA PROCESSING under the OUTPUT branch
  2. Create an EXTRACT with its File: parameter set to output.dat under the LIST branch of the DATA PROCESSING created above
  3. Create a FIND as a Child to the EXTRACT created in Step 2, and then set its Value: parameter to ‘Domain Name : elbow’. This step will find a match and stop at a place in the file just above where the desired data is located
  4. Finally, create a second FIND, and then set the Value: and Type: parameters as shown below


Note: Only single spaces are used between the different words and characters in the Value: parameter, even though there is actually more white space in the file as shown in the figure above.


The result of this example will be that the numbers, -23.8 and 44.5, will be stored under the object names, pmin and pmax.

Example 2: Processing Columns of Numbers

In this second example, the goals will be to extract columns of node displacement data from an output file called ‘plate.out’ and then to determine the maximum displacement value. The relevant section of this file is shown below.

The steps for accomplishing a multiple line data extraction are as follows:

  • Create an EXTRACT under the LIST branch of the DATA PROCESSING with its File: parameter set to plate.out
  • Create a FIND as a Child to the EXTRACT created in Step 2, and then set its Value: parameter to ‘JOINT DISPLACEMENTS’. This step will find a match and stop at a place in the file just above where the desired data is located
  • Next, create a REPEAT , and then set its Stop When: parameter to ‘plate MOMENT’
  • Now, create a FIND as a Child to the REPEAT created in Step 4, and then set its Value: and Type: parameters as shown below.

  • Finally, create a STATISTICS under the SCALAR branch of the DATA PROCESSING created in Step 1, name it MaxDisp, and then set its LIST parameter to zd and its Function: parameter to ‘MAXIMUM’
  • The result of this example will be that 1) the REPEAT will cause its child FIND to find 121 different matches before stopping; 2) the four columns of numbers will be stored in the LIST's named node, xd, yd and zd, and 3) the maximum displacement in the z-direction will be found and stored in the STATISTICS named MaxDisp.