VSeT Software Requirements Specification Visualization for Seismic Tomography (VSeT) Software Requirements Specification Version 0.10 01/22/2011 UTEP Software Engineering 2011 Date Page January 23 i , 2011 VSeT Software Requirements Specification Document Control Approval The Guidance Team and the customer shall approve this document. Document Change Control Initial Release: Current Release: Indicator of Last Page in Document: Date of Last Review: Date of Next Review: Target Date for Next Update: 0.01 0.10 ♦ 01/21/11 01/24/11 Distribution List This following list of people shall receive a copy of this document every time a new version of this document becomes available: Guidance Team Members: Dr. Steve Roach Dr. Guoqiang Hu Dr. Yoonsik Cheon Mr. Chris Cuellar Mr. Cesar Yeep Mr. Jaime Mendez Ms. Erika Ollivier Customer: Dr. Rodrigo Romero Change Summary The following table details changes made between versions of this document Version Date Modifier Description Merging definitions, abbreviations and 0.01 12/28/2010 Jaime A. Mendez requirements 0.02 1/4/11 Steve Roach Complete review Started Hole’s Code file structure Appendix C and added Appendix D- Visualization 0.03 1/9/11 Jaime A. Mendez Models, examples inputs/scripts. Sections 1.1, 1.2,1.3 0.04 1/10/11 Steve Roach Introduction, Section 2.1 0.05 1/15/11 Jaime A. Mendez Review Use Cases, File Structure 0.06 1/17/11 Erika Ollivier Added hardware and software requirements 0.07 1/17/11 Steve Roach Section 3, parts of section 4 0.08 1/19/2011 Steve Roach Section 4 draft Erika Ollivier and Jaime 0.09 1/21/2011 Edit use cases and definitions. A. Mendez 0.09a 1/22/2011 Jaime A. Mendez Edit Use Cases and section 4.2 0.10 1/22/2011 Steve Roach Review of sections 1, 4, 5, and appendices UTEP Software Engineering 2011 Date Page January 23 ii , 2011 VSeT Software Requirements Specification TABLE OF CONTENTS DOCUMENT CONTROL ................................................................................................................... II Approval ......................................................................................................................................................... ii Document Change Control .............................................................................................................................. ii Distribution List .............................................................................................................................................. ii Change Summary ............................................................................................................................................ ii 1. INTRODUCTION .................................................................................................................... 6 1.1. Purpose and Scope of Product ............................................................................................................. 6 1.2. Intended Audience .............................................................................................................................. 6 1.3. Overview ............................................................................................................................................. 6 1.4. Definitions, Acronyms, and Abbreviations ........................................................................................... 7 1.4.1. Definitions ..........................................................................................................................................7 1.4.2. Acronyms and Abbreviations ............................................................................................................10 1.5. References......................................................................................................................................... 10 2. GENERAL DESCRIPTION................................................................................................... 11 2.1. Product Perspective ........................................................................................................................... 11 2.2. Product Features ............................................................................................................................... 12 2.3. Use Cases........................................................................................................................................... 12 2.3.1. Use Case 1: Manage Workspace.......................................................................................................13 2.3.1.1. Scenario 1: Select Workspace ...................................................................................................13 2.3.1.2. Scenario 2: Save Workspace .....................................................................................................14 2.3.1.3. Scenario 3: Close Workspace ....................................................................................................14 2.3.1.4. Scenario 4: Import Experiment .................................................................................................15 2.3.1.5. Scenario 5: Remove Experiments .............................................................................................15 2.3.2. Use Case 2: Visualize 3D Model(s) ....................................................................................................16 2.3.2.1. Scenario 1: Display Model ........................................................................................................16 2.3.2.2. Scenario 2: Close Model Display ...............................................................................................17 2.3.2.3. Scenario 3: Camera View Manipulation ...................................................................................17 2.3.2.4. Scenario 4: Save Model Visualization Image ............................................................................18 2.3.2.5. Scenario 5: Slice Model .............................................................................................................18 2.3.2.6. Scenario 6: Change Scale Color .................................................................................................19 2.3.3. Use Case 3: Synchronize 3D Models .................................................................................................19 2.3.3.1. Scenario 1: Add Model Visualization Window to Synchronization Group ................................20 2.3.3.2. Scenario 2: Remove Synchronization Group ............................................................................20 UTEP Software Engineering 2011 Date Page January 23 iii , 2011 VSeT Software Requirements Specification 2.3.4. Use Case 4: Animate Models ............................................................................................................21 2.3.4.1. Scenario 1: Create Animation ...................................................................................................21 2.3.4.2. Scenario 2: Play Animation .......................................................................................................22 2.4. User Characteristics ........................................................................................................................... 23 2.4.1. User ..................................................................................................................................................23 2.4.2. STg File System .................................................................................................................................23 2.5. Operating Environment ..................................................................................................................... 23 2.6. General Constraints ........................................................................................................................... 23 2.7. Assumptions and Dependencies ........................................................................................................ 23 3. EXTERNAL INTERFACE REQUIREMENTS ................................................................... 24 3.1. User Interfaces .................................................................................................................................. 24 3.1.1. General User Interface Requirements ..............................................................................................24 3.1.2. Menus ...............................................................................................................................................24 3.1.3. Workspace Windows ........................................................................................................................24 3.1.4. Animations ........................................................................................................................................26 3.1.5. Synchronization Windows ................................................................................................................26 3.2. Hardware Interfaces .......................................................................................................................... 27 3.3. Software Interfaces ........................................................................................................................... 27 3.4. Communications Interfaces ............................................................................................................... 28 4. BEHAVIORAL REQUIREMENTS ...................................................................................... 29 4.1. Same Class of User............................................................................................................................. 29 4.2. Related Real-world Objects ............................................................................................................... 29 4.2.1. Iteration ............................................................................................................................................29 4.2.2. Shot point .........................................................................................................................................29 4.2.3. Models ..............................................................................................................................................29 4.3. Stimulus ............................................................................................................................................ 30 4.3.1. General User Interface Requirements ..............................................................................................30 4.3.2. Menus ...............................................................................................................................................30 4.3.3. Workspace Windows ........................................................................................................................31 4.3.4. Synchronize Windows ......................................................................................................................32 4.3.5. Toolbar Modes..................................................................................................................................32 4.3.5.1. Video Options ...........................................................................................................................33 4.3.6. Create Animation ..............................................................................................................................33 4.4. Related Features ............................................................................................................................... 34 4.4.1. Convergence .....................................................................................................................................34 4.4.2. Iso-surfaces .......................................................................................................................................34 UTEP Software Engineering 2011 Date Page January 23 iv , 2011 VSeT Software Requirements Specification 4.5. Functional.......................................................................................................................................... 34 5. NON-BEHAVIORAL REQUIREMENTS............................................................................ 35 5.1. Performance Requirements ............................................................................................................... 35 5.2. Security ............................................................................................................................................. 35 5.3. Qualitative Requirements.................................................................................................................. 35 5.3.1. Availability ........................................................................................................................................35 5.3.2. Maintainability..................................................................................................................................35 5.3.3. Portability .........................................................................................................................................35 5.3.4. Design and Implementation Constraints ..........................................................................................35 6. OTHER REQUIREMENTS .................................................................................................. 36 6.1. Database ........................................................................................................................................... 36 6.2. Operations......................................................................................................................................... 36 6.3. Site Adaptation.................................................................................................................................. 36 7. APPENDIX A: ANALYSIS MODELS .................................................................................. 37 7.1. Data Flow Diagram ............................................................................................................................ 37 7.2. State Diagrams .................................................................................................................................. 38 7.2.1. System State Diagram.......................................................................................................................38 7.2.2. Visualizing Sub-state Diagram ..........................................................................................................38 7.2.3. Animating Sub-state Diagram ...........................................................................................................39 7.3. Class Diagram .................................................................................................................................... 40 8. APPENDIX B: HOLE’S CODE FILE SYSTEM STRUCTURE......................................... 41 9. APPENDIX C: VISUALIZATION MODELS (INPUT & SCRIPT FILES) ..................... 44 10. APPENDIX D: VELOCITY MODEL ................................................................................... 45 11. APPENDIX E: TIME 3D MODEL ....................................................................................... 48 12. APPENDIX F: COVERAGE MODEL .................................................................................. 53 13. APPENDIX G: PERTURBATIONS MODEL ..................................................................... 56 UTEP Software Engineering 2011 Date Page January 23 v , 2011 VSeT Software Requirements Specification 1. Introduction 1.1. Purpose and Scope of Product The purpose of this Software Requirements Specification (SRS) document is to provide a detailed description of the system that will be produced. This document is a clear description of the project, its requirements, analysis models, and the general issues found while gathering all the requirements and analyzing the specifications. The system that shall be produced is called Visualization for Seismic Tomography (VSeT); this tool will be used to visualize the 3D Models from Hole’s code output files. This SRS document will serve as a reference during the software development and design stages for the project, and it will help tracing any given specification. It will also allow the client to obtain an overview of the project and the main functions that will be performed within the system. The SRS is divided into several sections and subsections to provide the audience an easier and clearer overview of the system’s requirements. To explain any words used throughout the document we provide a definitions, acronyms and abbreviations section. This SRS divides the system requirements into four sections; external interface requirements, behavioral requirements, non-behavioral requirements and other requirements. Seismic Tomography is a procedure used by seismologists and geologists to analyze the structure of the crust of the Earth. Seismic waves are traced from receivers (seismographs or geophones) to sources, which may be natural or induced. In the tomography procedure, the propagation of seismic waves is predicted based on a model of the Earth’s structure. Measured travel time is compared to the predicted travel time, and the model is adjusted to minimize the difference between these times. The process is iterative and highly dependent on the starting model. The VSeT tool will provide visualization capabilities for the intermediate models and associated convergence information. The purpose of the software is to give scientists the ability to view the seismic modeling process, to compare successive models, and to determine if the process is converging on a stable solution that matches available data. The main objective of this project is to create a seismic tomography visualization tool that will allow geologists, scientists, and engineers to further their knowledge in the study of the Earth’s crust structure. 1.2. Intended Audience The Software Requirements Specification document (SRS) is intended to establish the key requirements necessary to develop VSeT. The SRS will guide the project team through the development process and will serve as an agreement between the project team and the client. The intended audience of this SRS is the client, the guidance team, and the members of the development team. The client audience includes Dr. Rodrigo Romero and all the geologists and scientists at the Cyber-SHaRE Center of Excellence currently involved in the seismic tomography project. The guidance team includes Dr. Yoonsik Cheon, Dr. Guoqiang Hu, Chris Cuellar, and Cesar Yeep. The development team audience is the project team involved in creating the VSeT. This SRS assumes that the intended audience has general knowledge of seismic tomography and computer science. 1.3. Overview Section 1 of the SRS identifies the software product to be produced, what it will do, and the uses for the software, including benefits, objectives and goals. It states the intended audience of the SRS. A list of terms and definitions that may be required or helpful to the intended audience is provided. It also gives a list of used acronyms and abbreviations with their associated definitions, along with a list of referenced documents. Section 2 provides a description of this product, where it fits into the Cyber-SHaRE structure, and what functionality is provided by this product. Sections 3, 4, 5, and 6 provide precise, numbered requirements for the system. In Section 3, the requirements for external interfaces, including user interfaces and software interfaces, are described. Section 4 provides specification of behavioral requirements for the system. Section 5 provides specifications of nonbehavioral requirements. Section 6 specifies the logical requirements needed in order to store information into a database. It also specifies the normal and special operations required by the user, and site adaptation requirements which specify which data will be used or initiated in a specific site. Software Requirements Specification Date 7/13/2017 10:37 PM Page 6 VSeT Software Requirements Specification Appendix A contains analysis models for data flow, classes, and state transitions. Appendix B contains a description of Hole’s code and the file system structure created by STg. Appendices C, D, E, F, and G contain examples of the models created by Hole’s code. 1.4. Definitions, Acronyms, and Abbreviations 1.4.1. Definitions ASCII file A plain text file without non-printable characters, and thus, human readable. Back Trace A path from a receiver to a shot point, i.e., the reverse of a normal path of a seismic wave, used to determine the actual path of a seismic wave. Binary file A file containing non-printable characters, and thus, not human readable. Cell The smallest unit of volume for the computation for a seismic model. A cell is typically a 1km x 1km x 1km cube. Color Scale Sets the opacity for the colors being displayed. For RGB color code and opacity ranges between 0.0 and 1.0. Convergence In general, the property of a sequence that approaches a fixed point, i.e., successive elements of the sequence have decreasing differences. In a seismic tomography algorithm the approximation of residuals to pick-error values. A fully converged model will have the values of all residuals equal to or less than pick error. Coverage A measure of the number of rays that pass through each cell from shot points to receivers for the coverage model. The greater the number of rays passing through each cell, the more reliable the model. Coverage Model A model generated by Hole’s code (output of cover.f) that contains the coverage of a set of cells. Cyberinfrastructure The technical infrastructure, practices, and social norms required to provide for work interactions distributed across time and geographic boundaries. CYBER-ShARE Cyber-ShARE is a multidisciplinary center of excellence in cyberinfrastructure created at UTEP in 2007. It is based on the use of computational resources and human knowledge to support scientific research. Discrete 3-D time model A model of first arrival times, i.e., the time required for seismic waves to travel from a source to the vertices of a 3-D grid. Discrete Time Model Discrete representation of the time required for waves to travel from a source (e.g., a shotpoint) to a point of interest, measured in seconds. FFmpeg A complete, cross-platform solution to record, convert and stream audio and video. Filters Custom programs used to format and select raw data so it can be used as input for further processing or display tools. First Arrival Time The time interval between a seismic event and the arrival of a seismic wave at a seismograph. Frames Per Second (fps) The frequency (rate) at which an imaging device produces or reproduces unique consecutive images called frames. Geophone Instrument used to measure the amplitude of seismic waves. GIF A bitmap format for storing images. Global axis The Global axis is the one pertaining to the view. In this case, the view is the only one Software Requirements Specification Date 7/13/2017 10:37 PM Page 7 VSeT Software Requirements Specification that moves, not the model. The local and the global axes will point in the same direction. Compare to local axis. Hole’s code A set of programs that implement a seismic travel-time tomography algorithm to generate a 3-D model of a given region of the earth’s crust. Hole’s code Database A collection of files that contain the 3-D models generated by Hole’s code. Initial Velocity Model A velocity model created by a scientist used as input to Hole’s code. This model is either a 1D or a 3D model. The 1D model is a depth-velocity model. Imagine drilling a hole and measuring the approximate velocities at various depths. Interactive Data Language A programming language and its interpretive environment currently used by geologists to generate visual representations of 3-D models. Isosurfaces A surface representing a set of points with a constant value. Isochrone A line on a map or diagram connecting places from which it takes the same time to travel to a certain point Iteration A single pass through the collection of programs that implement Hole’s code. JPEG A format for storing images. Local axis This axis is local to each visualization model displayed, it moves with the visualization if manipulations are applied. OpenGL A cross platform application programmer interface for developing portable, interactive 2D and 3D graphics application. Paraview Open source application software used for scientific visualization. Ray path A sequence of cells through which seismic-wave rays travel from a source to a point of interest. Path The location of a file in an integrated file system. A path name consists of one or more elements separated by a slash (/) or back slash (\). Each element is either a directory or a file. Any element to the left of another element must be a directory. Orthogonal views They help the user see directly from the top, left, right, bottom, and front or back of a model. These are used in 3D applications. Perturbation Model A model containing the velocity differences calculated in an iteration of Hole’s code that will be applied to update the velocity model for the next iteration. Pick Error The resolution or error estimate of arrival time measurements. Pick File A file containing a set of pick times for a shotpoint. Pick Time The arrival time of a seismic wave to a geophone as read by the user from the seismogram data. PNG A bitmapped format for storing images. Projection 2D rendering of a 3D model. It can be a perspective or parallel mapping of 3D coordinates in model or object space to 2D device space. Orthogonal projections are parallel projections along a coordinate axis. ProMax Seismic data processing software used to read pick times. Raypath Direction of propagation of a seismic wave. It is represented by a 3D vector which is normal to the wave front. Residual Absolute or root-mean-squared difference between observed data and the calculated data. SAGE A graphics streaming architecture for supporting collaborative visualization Software Requirements Specification Date 7/13/2017 10:37 PM Page 8 VSeT Software Requirements Specification environments with potentially hundreds of megapixels of contiguous resolution. Scale In a graphics system, a scale operation changes the size of the image displayed within the clipping boundaries of the screen or window. See zoom. Seismic tomography Imaging models of the Earth as well as the study of the properties of Earth’s crust. Seismic Traveltime Tomography A tomography algorithm that derives a model of the earth based on the travel times of seismic waves. Hole’s code is an implementation of a first-arrival traveltime seismic tomography algorithm. Seismic wave An elastic wave generated by an impulse such as an earthquake or an explosion. Seismic waves may travel either along or near the earth's surface (Rayleigh and Love waves) or through the earth's interior (P and S waves). Seismographs Instrument used to measure the amplitude of seismic waves. See Geophone. Shotpoint An explosion used to generate seismic waves used for active seismic tomography. Also, shotpoints are areas in a three dimensional model which correspond to the locations where explosions occurred in an experiment. Slowness The inverse of velocity. Source location The coordinates of a source of an explosion used to generate acoustic or seismic waves, e.g., a shot point. TIFF A standard file format for storing images. Time model A discrete 3D model of first-arrival times of the seismic waves in a seismic tomography model. Traveltime The time it takes a p-wave to travel between two points, e.g., from a shot point to a geophone. Undersample To collect too few samples to completely determine a system. The sample size does not provide enough information to restrict the model to a single solution. Undersampling occurs when not plotting enough shot points and or geophones in a region, which results in not collecting enough data to derive well-defined models. UNIX A computer operating system. Velocity In reference to earthquakes, velocity is the rate of change of ground displacement of a reference point with respect to time during the passage of seismic waves; it is commonly expressed in centimeters per second. Velocity Curve A curve on a graph of travel time versus distance for the arrival of seismic waves from distant events. Each type of seismic wave has its own curve. Velocity Model A seismic model of the earth’s material structure, based on varying velocities. Data to generate said model is collected by a series of seismographs or geophones. Velocity of Rays The velocity of a seismic wave depends on the material through wave is traveling. While soft material is a slow conduction medium, hard material will allow waves to move faster. Velocity structure A generalized regional model of the Earth's crust that represents crustal structure using seismic velocities. Visualization Cluster A computer system for generating or displaying ultra-high resolution images and animations. Visualization Toolkit An open-source, freely available software system for 3D computer graphics, image processing and visualization. The latest version that is available from the official website, http://www.vtk.org, is 5.6.1. Software Requirements Specification Date 7/13/2017 10:37 PM Page 9 VSeT Software Requirements Specification Zoom The process of changing the scaling factor in an image. Zooming in makes an image larger or closer, and zooming out makes an image smaller or further away. 1.4.2. Acronyms and Abbreviations 2D Two dimensions or two-dimensional 3D Three dimensions or threedimensional API Application programming interface AVI Audio-video interleave: Format of the compiled animation VSeT will produce dt Traveltime residual du Velocity pertubation GEON GEO-science server GIF Graphics interchange format GUI Graphical user interface. IDL Interactive data language JPEG Joint photography experts group km Kilometers NSF National science foundation PNG Portable network graphics s Seconds SAGE Scalable adaptive graphics environment SRS Software requirements specification STg Seismic (traveltime) tomography application VSeT Visualization for Seismic Tomography TBD To be determined TIFF Tagged image file format UTEP The University of Texas at El Paso VTK Visualization toolkit – an open-source graphics API 1.5. References [1] Galitz, W., The Essential Guide to User Interface Design, Wiley, 2007. Software Requirements Specification Date 7/13/2017 10:37 PM Page 10 VSeT Software Requirements Specification 2. General Description 2.1. Product Perspective The study of the structure of the earth is complicated by the difficulty in reaching deep into the crust. Scientists use seismic tomography in order to study the structure of the earth’s crust. Seismic tomography is a procedure that utilizes controlled explosions or wave generators to illuminate the velocity structure of the Earth. The location of an explosion is called a shotpoint. Seismic waves are detected at receivers such as geophones and seismographs. The traveltime from each shotpoint to each receiver, which is referred to as the observed time or the pick time, is measured and recorded. A digital model of the Earth’s crust is constructed by the scientist and used by tomography algorithms to predict seismic wave traveltimes. Predicted traveltimes are compared to the observed times and the calculated differences are used to adjust the model. Seismic Tomography algorithms are iterative, use a trial-and-error approach, and require domain knowledge and additional testing for validation. The algorithm that is currently being used at Cyber-SHaRE was developed by Dr. John Vidale and Dr. John Hole. This algorithm is based on non-linear methods that are applied repetitively until an acceptable solution is found. Raw data (shotpoint locations, geophone locations, and pick times) are manually processed. Hole’s code is implemented as a series of application programs that require a set of parameters selected by the scientists. (See Appendix XXXX). As Hole’s code executes, it generates a set of models. If the process is successful, each iteration of Hole’s code will reduce the error between the observed pick times and the estimated pick times and the process will converge to a stable result. If the process does not converge, then scientists must revise the initial model and parameters and execute the algorithm again. One problem with this process is that once the input has been provided, there is no method to determine whether and how the process is converging or if the models being produced match other domain constraints not included in the model. By providing model visualizations, the VSeT application will help scientists understand and compute data collected during their investigations and process it in an improved, efficient manner. Such visualizations may save scientists time and effort, as input and data errors may be identified without having to wait for the full computation of a final velocity. VSeT will provide an interface for the user to select which model to visualize. VSeT will provide the capability to manipulate the display of 3D models by panning, zooming, rotating, and slicing. It will allow the user to display models side by side, and to generate animations consisting of sequences of model visualizations. VSeT will also provide a feature to save and open project files comprising one or more visualized models. Projects are stored in files instead of saving the models individually. The system also will interact with STg in order to get the parameter files that will be the outline for the models that are going to be rendered. The user will be able to visualize 3D models from the output files of Hole’s code to determine whether computations are producing meaningful partial results while the process is still running. These files contain seismic tomography information related to the velocities of the seismic waves. These waves are detected by geophones and produced by experimental explosions on several points of the surface of the Earth. This will allow the examination of the Earth’s crust using various types of visualizations. First arrival times to the geophones of the seismic waves generated by shotpoints will be measured and used by Hole’s code to compute velocity models of the Earth’s crust. The purpose of the VSeT system is to provide geologists with visualizations of the outputs of Hole/Vidale’s seismic tomography algorithm. VSeT will enable researchers to obtain meaningful results quickly and enable students to learn and understand the meaning of seismic tomography and how different input parameters change output models. The system is a stand-alone software application for 3D model visualizations of seismic tomography results. VSeT will require interaction with the already existing STg program. VSeT will be accessible as an add-on of STG or as a directly executed independent application. This system will implement functionality based on the Visualization Tool Kit (VTK) API and will offer functions for viewing and manipulating 3D models generated by any number of seismic tomography projects. Software Requirements Specification Date 7/13/2017 10:37 PM Page 11 VSeT Software Requirements Specification The main actors are the user, the GEON Server and STG/Hole’s Code. User– The user can be an undergraduate or graduate student, a geologist, or a researcher . This actor can access and interact with the system. STg/Hole’s Code – STg/Hole’s code is a combination of a user front-end and computational server backend that implements seismic tomography algorithms. It is composed of several executables that implement modeling as a set of independent steps. STg can be thought of as an integral part of Hole’s code because STg is the user interface for entering parameters and executing Hole’s code in the back end. GEON Server - The user must have an account to access the GEON server. Once the user has accessed the GEON server, the user must run Hole’s code in order to obtain the output files necessary for visualization. The system’s main features are explained in the use case Figure 2.1: System Manage Workspace Manage Workspace Visualize Model 3D Model Visualize 3D <<extends>> Synchronize 3D Synchronize 3D Models Models User STg File System <<extends>> Animate Models Animate Models 2.2. Product Features The system must provide the user with the ability to display and manipulate geological 3D images. The system will perform the following: The system will manage a workspace by enabling the user to create, save, and open projects and read STg files representing models, shotpoints, and geophones. STg stores files related to an experiment. The system will provide features to visualize models. Users will be able to open several visualizations at one time, manipulate the visualizations by panning, rotating, zooming (scaling), and synchronizing the displays of selected models so that the same operations are applied to a set of model visualizations. The system will provide features for manipulating models by setting color scales to represent data ranges and to slice a 3D model along a specified plane to produce a simplified model; The system will provide features to generate and display animations of models. An animation is constructed from a sequence of model visualizations, e.g., visualizations of models generated by successive iterations of Hole’s code. 2.3. Use Cases The remainder of the document will use the following terminology. A workspace is a container that may hold zero or more experiments. Each experiment contains an initial model, field data (pick times), and a collection of Software Requirements Specification Date 7/13/2017 10:37 PM Page 12 VSeT Software Requirements Specification products from iterations of Hole’s code. An experiment is described by an experiment XML file (or experiment file), which contains the directory path of the STg file system where the models are stored. Each iteration of Hole’s code produces a set of models. A model can be displayed in a model visualization window. The workspace window is the user interface for the workspace and may contain a collection of model visualization windows. 2.3.1. Use Case 1: Manage Workspace Description The user opens a workspace. The system creates a workspace window, adds the model visualization windows to the workspace window, and populates the display with the experiments and models contained in the workspace. The following scenarios describe workspace management. Used by Preconditions Success End Condition Failed End Condition Actors Trigger None. The VSeT program is running and the workspace interface is displayed. The workspace interface is displayed. The workspace interface is not displayed. User and STg File System The system is running. 2.3.1.1. Scenario 1: Select Workspace Description The user selects a workspace to display and modify. Used by None. Precondit The VSeT program is running and the workspace interface is displayed. ions End The workspace interface corresponding to the selected workspace is displayed. Condition Actors User and STg File System Trigger The user selects the Open Workspace option. Step Action 1 The user selects the Open Workspace option. 2 The system closes the currently loaded workspace (ALT 1). 3 The system opens a file selection dialog displaying the files in the current working directory. 4 The user uses the file selection dialog to select the desired workspace (ALT 2) (ALT 3). 5 The system opens the workspace description file, displays the model visualization windows in the state described in the workspace description file, and loads the model navigation window with the names of models available for each of the experiments in the workspace. 6 End of use case. ALT 1 1.1 1.2 1.3 1.4 1.5 The workspace has been modified since the most recent save. The system prompts the user to save before loading the new workspace. The user agrees to save (ALT 4). The system saves the current state of the workspace in the current workspace description file. The system closes the workspace description file and clears the workspace window. Use case continues at step 3. ALT 2 2.1 2.2 The user selects Cancel from the file selection dialog. The system closes the file selection dialog. End of use case. Software Requirements Specification Date 7/13/2017 10:37 PM Page 13 VSeT Software Requirements Specification ALT 3 3.1 3.2 3.3 3.4 The user selects the New option. The system prompts the user for a new name. The user enters a unique name (ALT 5). The system creates a workspace description file with the new name and saves the default workspace information. Use case continues at step 5. ALT 4 4.1 The user does not agree to save Use case continues at step 1.4. ALT 5 5.1 5.2 The user enters an existing name. The system prompts if he/she to overwrite the existing workspace (ALT 2). Use case continues at step 5. 2.3.1.2. Scenario 2: Save Workspace Description The user selects to save the current workspace. Used by None. Pre The VSeT program is running and the workspace interface is displayed. Condition End The workspace interface corresponding to the selected workspace is saved, unless the Condition user has cancelled the operation. Actors User and STg File System Trigger The user selects the Save Workspace or Save Workspace As option. Step Action 1 The user selects the Save Workspace option (ALT 1). 2 The system saves the current state of the workspace in the current workspace description file. The saved state includes the names and directories for the experiments in the workspace as well as the images, model names, and viewing parameters of the Model Visualization Windows. 3 The system closes the workspace description file. 4 End of use case. ALT 1 1.1 1.2 1.3 1.4 The user selects the Save Workspace As option. The system opens a file selection dialog and prompts the user for a new name. The user enters a unique name (ALT 2) (ALT 3). The system creates a workspace description file with the new name. Use case continues at step 2. ALT 2 2.1 2.2 2.3 2.4 The user enters an existing name. The system prompts to overwrite the existing workspace. The user selects to overwrite (ALT 3). The system deletes the existing workspace. Use case continues at step 2. ALT 3 3.1 3.2 The user selects Cancel from the file selection dialog. The system closes the file selection dialog. The workspace is not saved. End of use case. 2.3.1.3. Scenario 3: Close Workspace Description The user closes a workspace. Software Requirements Specification Date 7/13/2017 10:37 PM Page 14 VSeT Software Requirements Specification Used by Pre condition End Condition Actors Trigger Step 1 2 None. The VSeT program is running and the workspace interface is displayed. The default (empty) workspace is displayed. 3. User and STg File System The user selects the Close Workspace option. Action The user selects the Close Workspace option (ALT 1). The system closes the current workspace. The model visualization windows are closed, and the workspace is returned to its default display. End of use case. ALT 1 1.1 1.2 1.3 1.4 The workspace has been modified since the most recent save. The system prompts the user to save before loading the new workspace. The user agrees to save (ALT 2). The system saves the current state of the workspace in the current workspace description file. Use case continues at step 2. ALT 2 2.1 The user does not agree to save Use case continues at step 2. 2.3.1.4. Scenario 4: Import Experiment Description: The user adds an experiment to a workspace. Used by None. Precondit The VSeT program is running and the workspace interface is displayed. ions End The selected experiment is added to the workspace and the experiment models are Condition added to the model list; the user cancels the import; or an error message indicating the load has failed is displayed. Actors User and STg File System Trigger The user selects the Import Experiment option. Step Action 1 The user selects the Import Experiment option. 2 The system opens a file selection dialog. 3 The user selects an experiment file (ALT 1). 4 The system opens the selected file and reads the experiment directory name (ALT 2). 5 The system scans the experiment directory, retrieves the names of models in that 6 directory, and updates the model list in the workspace window. End of use case. ALT 1 1.1 1.2 The user cancels the file selection. The system closes the file selection dialog. End of use case. ALT 2 2.1 2.2 The system cannot read the required information from the selected experiment file. The system displays an error message indicating that the file is not a proper experiment file. End of use case. 2.3.1.5. Scenario 5: Remove Experiments Description: The user removes an experiment from a workspace. Software Requirements Specification Date 7/13/2017 10:37 PM Page 15 VSeT Software Requirements Specification Used by Precondit ions End Condition Actors Trigger Step 1 2 3 4 5 6 7 None. The VSeT program is running and the workspace interface is displayed. The workspace interface corresponding to the selected workspace is displayed. 8 User and File System The user selects the Remove Experiment option. Action The user selects the Remove Experiment option. The system presents a list of experiments included in the current workspace. The user selects a set of experiments from the list (ALT 1). The user presses the delete button. The system prompts the user to confirm the removal of the experiments. The user confirms (ALT 2). The system removes the models of the selected experiments from the model list, removes the model visualization windows displaying models from the selected experiments from the workspace window, and removes the experiment name from the list of experiments in the workspace. End of use case. ALT 1 1.1 1.2 The user exits the Remove Experiment process The system closes the remove experiment dialog. End of use case ALT 2 2.1 2.2 The user cancels experiment removal The system closes the remove experiment dialog. End of use case 2.3.2. Use Case 2: Visualize 3D Model(s) Description Used by Preconditions Success End Condition Failed End Condition Actors The user selects a model or set of models and displays the models in a graphics format consistent with the type of model. The user can manipulate the graphical representation by scaling, rotating, and moving the model as well as slicing and setting up the color scale in a visualization window. Extended by Synchronize 3D Models and Animate Models. VSeT is running. A workspace is open. There are models in the workspace corresponding to some experiment. A representation with the desired model is presented to the user. No model is presented to the user. User 2.3.2.1. Scenario 1: Display Model Description: The user selects a model to display. Used by None. Pre VSeT is running. A workspace is open. There are models in the workspace condition corresponding to some experiment. End A representation with the desired model is presented to the user. Condition Actors User and STg File System Trigger The user selects the Display Model option. Software Requirements Specification Date 7/13/2017 10:37 PM Page 16 VSeT Software Requirements Specification Step 1 2 3 4 5 Action The user selects a model from the model list. The user selects the Display Model option. The system reads the model (ALT 1). The system opens a model visualization window, places the window in the workspace, and displays a rendering of the model using default viewing parameters depending on the type of model. End of use case. ALT 1 1.1 1.2 1.3 File Not Found The system cannot find or cannot read the model specified by the user. The system displays an error message informing the user of the error. End of use case. 2.3.2.2. Scenario 2: Close Model Display Description: The user selects a display to close. Used by None. Pre VSeT is running. A workspace is open. There are models in the workspace condition corresponding to some experiment. There is at least one model visualization window open in the workspace. End The selected model visualization window is closed. Condition Actors User and STg File System Trigger The user selects the Close Model Visualization option. Step Action 1 The user selects a model visualization window by clicking in the window to make it active. 2 The user selects the Close option. 3 The system closes the active model visualization window. 4 End of use case. 2.3.2.3. Scenario 3: Camera View Manipulation Description The user wants to manipulate the camera in a visualization window. Used by None. Pre VSeT is running. A workspace is open. There are models in the workspace condition corresponding to some experiment. There is at least one model visualization window open in the workspace. End VSeT is running. A workspace is open. There are models in the workspace Condition corresponding to some experiment. There is at least one model visualization window open in the workspace. The viewing parameters of the model displayed in the visualization window have been altered. Actors User and File System Trigger The user selects an icon in the Visualization Toolbar or a mouse click is triggered in the visualization window. Step Action 1 The user selects the Pan icon in the visualization toolbar (ALT 1) (ALT 2). 2 The user clicks and drags the model using a pointing device (e.g., mouse). 3 The system adjusts the viewing parameters of the visualization and re-renders the model. The new rendering appears to have been shifted in the direction of the mouse drag. (For example, if a feature originally appeared in the center of the rendering and the mouse drag was left and up, the feature will appear above and to the left of the center of the new rendering.) Software Requirements Specification Date 7/13/2017 10:37 PM Page 17 VSeT Software Requirements Specification 4 5 The system saves the new viewing parameters with the visualization window. End of use case. ALT 1 1.1 1.2 The user selects the Rotate icon in the visualization toolbar The user clicks and drags the model using a pointing device (e.g., mouse). The system adjusts the viewing parameters of the visualization and re-renders the model. The new rendering appears to have been rotated around the principle axes according to the mouse actions. A vertical mouse move rotates around the x-axis. A horizontal mouse move rotates around the y-axis. The system saves the new viewing parameters with the visualization window. End of use case. 1.3 1.4 ALT 2 1 2 3 4 The user selects the Zoom icon in the visualization toolbar The user clicks and drags the model using a pointing device (e.g., mouse). The system adjusts the viewing parameters of the visualization and re-renders the model. The new rendering appears to have been resized. (For example, if the mouse drag is up, the newly rendered model will be moved further away from the model and it will appear smaller, encompassing a larger field of view. If the mouse drag is down, the newly rendered model viewpoint is moved closer to the model, and the field of view will be reduced.) The system saves the new viewing parameters with the visualization window. End of use case. 2.3.2.4. Scenario 4: Save Model Visualization Image Description: The user wants to save the current image in a visualization window to a standard graphics format file. Used by None. Pre The VSeT program is running and the workspace interface is displayed. At least one condition model visualization window is open. End On successful completion, an image of the model in the model visualization window has Condition been saved to a graphics file. Actors User and STg File System Trigger The user selects the Save Screenshot option. Step Action 1 The user selects a model visualization window and makes it active (e.g., by clicking the pointing device in the window). 2 The user selects the Save Screenshot option. 3 The system opens a file selection dialog prompts the user for a location to store the image. 4 The user specifies a file name and path (ALT 1) (ALT 2). 5 The system saves the image displayed in the model visualization window in a file using a standard graphics format such as gif, tiff, png, or jpeg. 6 End of use case. ALT 1 1.1 The user cancels the operation by closing the file selection dialog End of use case ALT 2 2.1 2.2 The user enters an existing name. The system prompts if he/she to overwrite the existing workspace (ALT 1). Use case continues at step 5. 2.3.2.5. Scenario 5: Slice Model Description: The user wants to slice a model according to a plane-axis and a value for the Software Requirements Specification Date 7/13/2017 10:37 PM Page 18 VSeT Software Requirements Specification remaining axis being visualized. Used by None. Pre The VSeT program is running and the workspace interface is displayed. At least one condition model visualization window is open and is displaying a 3D model. End On successful completion, the model being visualized is sliced at a plane according to a Condition third axis-value Actors User and STg File System Trigger The user selects the Slice option. Step Action 1 The user selects the slice option. 2 The user selects two axes and a coordinate for the third axis to slice the model (ALT 1). 3 The system calculates a plane based on the two coordinate axes and the point on the third axis. The system generates data values for this plane. 4 The system presents the model to the user with the divides parts of the model. 5 End of use case. ALT 1 1.1 1.2 The user triggers the mouse to slice the model The system calculates the coordinate of the third axis according to the mouse pointer position. Use case continues at step 3. 2.3.2.6. Scenario 6: Change Scale Color Description The user wants to adjust the scale color. Used by None. Pre The VSeT program is running and the workspace interface is displayed. At least one condition model visualization window is open. End On successful completion, the color scale for the model in the model visualization Condition window has been updated. Actors User and STg File System Trigger The user selects the Change Scale Colors option. Step Action 1 The user selects the change scale colors option. 2 The user selects the values from 0 to 1 for each of the RGB points. 3 The system updates the model scale colors. 4 End of use case. 2.3.3. Use Case 3: Synchronize 3D Models Description: A synchronization group is a group of model visualization windows that are manipulated in unison. The pan, rotate, zoom, and animate operations applied to any model visualization window in a synchronization group will be applied to all model visualization windows in the group. Extends Use Case 2 Pre The VSeT program is running and the workspace interface is displayed. At least one condition model visualization window is open. Success User-selected Model Visualization Windows are contained in user-specified End synchronization groups. Condition Software Requirements Specification Date 7/13/2017 10:37 PM Page 19 VSeT Software Requirements Specification Fail End Condition Actors None. User and STg File System 2.3.3.1. Scenario 1: Add Model Visualization Window to Synchronization Group Description: The user selects a synchronization group and adds a model to it. Pre The VSeT program is running and the workspace interface is displayed. At least one condition model visualization window is open. End On successful completion, the selected model visualization window has been added to a Condition synchronization group. Actors User and STg File System Trigger The user selects the Synchronize option. Step Action 1 The user selects the Synchronize option. 2 The system opens the synchronization dialog. The dialog lists the synchronization groups that are available. No group is selected. 3 The user selects the add group option (ALT 1). 4 The system prompts the user for a name. 5 The user enters a new name for a synchronization group (ALT 2) (ALT 3). 6 The system creates a new synchronization group with the name given by the user. 7 The user specified group becomes the selected group. 8 The user selects a model visualization window and selects the add option in the synchronization group dialog (ALT 4). 9 The model visualization window is added to the synchronization group (ALT 5). 10 The user closes the synchronization group window. End of use case. ALT 1 1.1 The user selects an existing group. Use case continues at step 7. ALT 2 2.1 2.2 2.3 The user enters an existing name. The system prompts the user to replace the existing group (ALT 3). The system deletes the selected group. Use case continues at step 6. ALT 3 3.1 3.2 User cancels operation. The system closes the synchronization dialog. End of use case ALT 4 4.1 4.1 User selects the add all option. All of the visualization windows in the workspace are added to the synchronization group (ALT 5). Use case continues at step 8. ALT 5 5.1 5.2 5.3 5.4 The model is already in an existing synchronization group. The system prompts the user to remove the model from the other group. The user confirms (ALT 3). The system removes the selected model from the selected synchronization group. Use case continues at step 10. 2.3.3.2. Scenario 2: Remove Synchronization Group Description: The user removes a synchronization group from a workspace. Software Requirements Specification Date 7/13/2017 10:37 PM Page 20 VSeT Software Requirements Specification Pre condition End Condition Actors Trigger Step 1 2 The VSeT program is running and the workspace interface is displayed. At least one model visualization window is open. On successful completion, the selected synchronization group has been removed. 8 User and STg File System The user selects the Synchronize option. Action The user selects the Synchronize option. The system opens the synchronization dialog. The dialog lists the synchronization groups that are available. This includes the user-created groups and the default group. The default group is selected. The user selects a synchronization group. The user presses the delete button. The system prompts the user to confirm delete. The user confirms (ALT 1). The system deletes the named synchronization group (ALT 2). This un-links the model display windows with respect to display operations. The model display windows remain in the workspace window. End of use case. ALT 1 A1.1 The user cancels the delete operation. End of use case. ALT 2 2.1 The selected synchronization group is the default group. The system removes all of the model display windows from the default synchronization group. End of use case. 3 4 5 6 7 2.2 2.3.4. Use Case 4: Animate Models Description Extends Preconditions Success End Condition Fail End Condition Actors Trigger The user wants to animate a sequence of models or a sequence of operations. Animations are used to visualize the convergence of iterations. Visualize 3D Model. The VSeT program is running and the workspace interface is displayed. An animation with the desire sequence of models is presented to the user. The animation with the desire sequence of models is not presented to the user. User and STg File System The user selects Animate option. 2.3.4.1. Scenario 1: Create Animation Description: The user selects create animation and generates the animation from a sequence of screenshots. Pre The VSeT program is running and the workspace interface is displayed. At least one condition model is available to visualize. End On successful completion, an animation has been created that can display a sequence of Condition model visualizations. Actors User and STg File System Trigger The user selects the Animate option. Step Action 1 The user selects the Animate option. Software Requirements Specification Date 7/13/2017 10:37 PM Page 21 VSeT Software Requirements Specification 2 3 4 7 8 9 10 11 The system displays a list of models and iterations. The user selects the models and iterations he/she wishes to animate. The user selects the projection, display mode, velocity level (slow, medium, fast or advanced to input a duration time) and resolution level (low, medium or high) for the animation. The system generates an image for each model’s specified iteration. The system takes the sequential images and generates an animation using VTK API 5.6.1 according to specifications in step 4. The system generates and displays the animation based on the user selections. The system opens a file selection dialog. The user enters a pathname and filename to save (ALT 1 ).(ALT 2) The system saves the animation. End of use case. ALT 1 2.1 2.2 The user selects an existing filename. The system prompts the user if he/she wants to override the existing animation (ALT 2). Use case continues at step 10. ALT 2 2.1 The user cancels the operation by closing the file selection dialog End of use case 5 6 2.3.4.2. Scenario 2: Play Animation Description: The users wants to play an existing animation and control it. Pre The VSeT program is running and the workspace interface is displayed. An animation condition has been created (see scenario 1). End On successful completion, an animation has been displayed. Condition Actors User and STg File System Trigger The user selects the Play Animation option. Step Action 1 The user selects the Play Animation option. 2 The system displays the animation control tool bar. 3 The user selects a control. 4 The system plays the animation according to the controls. Controls are described in Table 1. 5 The user selects the close option. 6 End of use case. Table 1: Animation Controls Control Description Play The animation starts at the current frame and plays forward through frames at the defualt frame rate (30 frames per second). If the loop option is clear, the animations halts at the end of the last frame, and the last frame is displayed. If the loop option is set, when the last frame is displayed, the animation will restart the animation from the first frame. Reverse The animation is played in reverse. If the animation is on the initial point, the animation plays from the end to the start. Stop If the animation is playing, the animation halts, and the first frame is displayed. The first frame becomes the current frame. Pause If the animation is playing, the animation halts, and the current frame is displayed. If the pause control is clicked again, the animation starts playing. Fast Forward The animation is played in the forward direction at twice the frame rate. If the fast forward control is clicked again, the animation stops fast forwarding. Step Forward The display advances a single frame and pauses. If the current frame is the last Software Requirements Specification Date 7/13/2017 10:37 PM Page 22 VSeT Software Requirements Specification Step Backwards Loop Close 2.4. frame, the last frame is displayed. If the step forward control is clicked again, the animation stops step forwarding. The display moves backward a single frame and pauses. If the current frame is the first frame, the first frame is displayed. If the step backwards control is clicked again, the animation stops the step backward. The animation continues repeating. If the loop control is clicked again the animation stops looping. The animation window and the control bar are closed. User Characteristics 2.4.1. User The user represents any person with an authorized access to the computer running the application. 2.4.2. STg File System External system that process input files and starts running experiment on the server. It also produces an XML file that aids our application to find the exact location of the files that the user wants to visualize. 2.5. Operating Environment The system being developed is going to be placed inside CyberShARE’s server which is GEON. The system will run on a computer using UNIX. 2.6. General Constraints The application will run on UNIX. The application will only be accessible for authorized users of CyberShARE. The application has to use VTK’s API to implement the tools to display the 3D models. 2.7. Assumptions and Dependencies The assumptions and dependencies of the system are as follows: Security will be handled by GEON, the CyberShARE server. VSET will run in a Unix/Linux environment. VSET will be implemented using VTK 5.6.1. The system shall have a large number of vertices in each given model [Dr. Romero said we have 414,000 vertices, this may not be accurate, but it portrays that we have a lot of information] Software Requirements Specification Date 7/13/2017 10:37 PM Page 23 VSeT Software Requirements Specification 3. External Interface Requirements This section contains the requirements specified by the client for the user interface, the hardware interface, the software interface and communications interface. It specifies the characteristics of interfaces to the proposed system. These will allow the communication between the different components of the system with external or within factors. 3.1. User Interfaces 3.1.1. General User Interface Requirements [Rq1] The user interfaces on the local machine shall be presented as Unix/Linux applications. [Rq2] The user interfaces for local machines shall run as Windows™ applications. [Rq3] The local machine interfaces shall use a computer monitor (at least 11 inches), as opposed to a cell phone or hand-held display device. [Rq4] The system shall use standard user interface controls such as buttons, text boxes, radio buttons, check boxes, labels, list boxes, spin boxes, combo boxes, sliders, scroll bars, tabs, tool tips, progress bars, and file selection dialogs [Galitz pp 443-552 et al]. [Rq5] Each window of the system shall have full screen, minimize, and exit options. [Rq6] The system shall provide a visual display such as a progress bar or hour-glass icon while any function is being performed. [Rq7] The VSeT system shall be integrated with the existing STg application. VSeT shall be included under the Visualize Models tab in STg. [Rq8] Maximized windows shall include a restore button instead of maximize button at the top right corner. [Rq9] Velocity models must follow the standard color convention, which is the following Red means soft material Green means hard material Blue means harder material 3.1.2. Menus [Rq10] The main interface shall be menu driven. Main menu and submenu items shown in Table 1. File New Save Save-As Import Experiment Exit Edit Undo Copy Paste Options Background Color Coding Shotpoints Geophones Help Visual Analytics Help About Table 1: Menu items 3.1.3. Workspace Windows [Rq11] The Workspace Window shall have the features shown in Figure 1. [Rq12] The Workspace Window shall contain a menu bar with the menu items shown in Table 1. [Rq13] The Workspace Window shall display an Experiment Manager Window. [Rq14] The Workspace Window shall display a Visualization Area to the right of the Experiment Manager Window. Software Requirements Specification Date 7/13/2017 10:37 PM Page 24 VSeT Software Requirements Specification [Rq15] The Workspace Window shall display a Workspace Information Window below the Experiment Manager Window. [Rq16] The Workspace Window shall contain zero or more Model Visualization Windows. [Rq17] The Workspace Window shall display a toolbar as shown in Figure 1. [Rq18] The Experiment Manager Window shall display the names of experiments and models available in the workspace. [Rq19] The Experiment Manager Window shall display a filter text box. [Rq20] The Workspace Information Window shall display the name of the workspace file, experiment, iteration, step, and model type. [Rq21] A Model Visualization Window shall contain an Orientation Marker, a Model Window Zoom Control, and optionally a Model Information Window and an Information Window Hide icon or an Information Window Show icon. [Rq22] A Model Visualization Window shall allow the user to visualize Discrete Time models, Velocity Propagation models, Coverage models, and Velocity models. Experiment Manager Window Experiment Filter Workspace Information Window Menu Toolbar Orientation Marker Model Visualization Window Minimize, Restore, and Close icons Model Information Window Model Window Zoom Control Model Information Minimize Icon Figure 1: Workspace Window Software Requirements Specification Date 7/13/2017 10:37 PM Page 25 VSeT Software Requirements Specification [Rq23] The Model Information Window shall display information about the current model being displayed, including the file name, the experiment name, the iteration and step numbers. [Rq24] The system shall display the Open, Save, Snapshot, Animate, Slice, Rotate, Zoom, and Help buttons in the Toolbar, as shown in Figure 2. [Rq25] The system shall display labels for the models being visualized. [Rq26] The system shall display the number of shot points, geophones, receivers, of the iteration, and the model name. [Rq27] The system shall display a selected model visualization window with a highlighted border. [Rq28] The system shall display all members of a synchronization group with borders of the same color. Snapshot Open Save Animate Slice Zoom Rotate Help Figure 2: Toolbar 3.1.4. Animations [Rq29] The system shall display an Animation Window for constructing and displaying animations (see Figure 3). [Rq30] The system shall give the user the option to select the number of iterations that will be animated. [Rq31] The system shall provide a toolbar containing video options. Options include: Play, Stop, Pause, Fast Forward, and Rewind. 3.1.5. Synchronization Windows [Rq32] The system shall provide an interface for creating and deleting synchronization groups. A synchronization group shall consist of a set of model visualization windows. [Rq33] The system shall provide an interface for adding model visualization windows to and removing them from a synchronization group. [Rq34] The system shall support multiple synchronization groups. [Rq35] All model visualization windows in a synchronization group shall have a border with the same color. [Rq36] A model visualization window can be a member of at most one synchronization group. Software Requirements Specification Date 7/13/2017 10:37 PM Page 26 VSeT Software Requirements Specification Figure 3: Animation Window 3.2. Hardware Interfaces [Rq37] The visualization system shall interact with a visualization cluster comprising a 45-monitor display matrix. The visualization cluster is the one in the CyberSHARE Center. 3.3. Software Interfaces [Rq38] The visualization system shall utilize a Unix/Linux desktop and a file browser for user input. [Rq39] The visualization system shall interact with STg to obtain raw binary files that are produced by Hole’s code. [Rq40] The visualization system shall allow a user connected via an SSH client to use the system. [Rq41] The visualization system shall import the following output files from Hole’s code Database. 3D Velocity model,. Ray coverage per cell model Smoother 1 Smoother 2 New 3D Velocity model. [Rq42] The visualization system shall utilize VTK to render graphics. The current release of the Visualization Toolkit Application Programming Interface is VTK 5.6.1. [Rq43] The visualization system shall use the FFmpeg software for VTK to create AVI files. [Rq44] The visualization system shall interact with the STg XML output files in order to retrieve the parameters of the project to be visualized [Rq45] The visualization system shall display models in a desktop application, in addition to the visualization cluster. [Rq46] The visualization system shall use SAGE to interact with the visualization cluster. Software Requirements Specification Date 7/13/2017 10:37 PM Page 27 VSeT Software Requirements Specification [Rq47] The visualization system shall interact with SAGE OpenGL capture that is bundled with SAGE distribution. 3.4. Communications Interfaces There are no communication interface requirements for this system. Software Requirements Specification Date 7/13/2017 10:37 PM Page 28 VSeT Software Requirements Specification 4. Behavioral Requirements This section explains the different users of the system and the requirements for each of them; it also includes the requirements for related real-world objects that interact within the system. A state diagram will be included herein to provide a better description of the different states that the system can go through. The system presents the same capabilities to an undergraduate student, graduate student, Geologist, researcher, and scientist but different ones for the Geon Server and the STG/Hole’s code users. 4.1. Same Class of User There is only one class of user. This user is assumed to be a Cyber-SHARE user with access to the server. 4.2. Related Real-world Objects 4.2.1. Iteration When Hole’s code executes, it generates a sequence of models. When the model converges, each successive model is closer to a solution than the previous model. We refer to each cycle through the algorithm as an iteration. Each iteration contains several models. [Rq48] The system shall be able to display model statistics for each iteration including the number of shot points, geophones, and receivers; the iteration; and the model name. [Rq49] The system shall be able to display the number of the most recently completed iteration of Hole’s code. This number may change during the execution of VSeT. 4.2.2. Shot point The model represents seismic waves produced by the shot point and the geophones capturing the waves according to time. [Rq50] The system shall be able to display in the workspace the number of shotpoints for the model selected. 4.2.3. Models Velocity models are abstract visualization of a slice of the earth’s crust which is enduring shock waves, and at any given point during the vibrations, these points have velocity values, which will be used to map out three dimensional models based on the velocity values for the user to interact, these velocity models are just binary files that will interact with our system. [Rq51] The visualization system shall display four types of models: Discrete Time Models, Velocity Models, Coverage Models, and Velocity Perturbation Models. [Rq52] The system shall read binary data files generated by Hole’s code and the STg program. The format of these binary files is described in Appendix XXX. [Rq53] The system shall be able to visualize a Discrete Time Model for each shotpoint. [Rq54] The system shall be able to visualize the Velocity model. [Rq55] The system shall be able to visualize the Coverage model. [Rq56] The system shall be able to visualize the velocity perturbation in the Velocity model. [Rq57] The system shall be able to visualize a model according to the geophones and shotpoints specified. Software Requirements Specification Date 7/13/2017 10:37 PM Page 29 VSeT Software Requirements Specification 4.3. Stimulus 4.3.1. General User Interface Requirements [Rq58] When the system displays standard user interface controls such as buttons, text boxes, radio buttons, check boxes, labels, list boxes, spin boxes, combo boxes, sliders, scroll bars, tabs, tool tips, progress bars, and file selection dialogs, these controls shall behave in the standard manners as described in [Galitz pp 443-552 et al]. [Rq59] When a user selects the full screen option on a window, the system shall expand the window to the size of the container for the window. For a workspace window, the window is expanded to the screen size. For a model visualization window, the window is expanded to occupy the Visualization Area. [Rq60] When a user selects the minimize screen option on a window, the system shall close the window and create a icon, which is placed at the bottom of the containing window. [Rq61] When a user selects a minimized icon, the icon is removed and the window that was closed when the icon was created (see previous requirement) is recreated and displayed in the location where the window was displayed before it was minimized. [Rq62] When a user selects the exit option on a window, the system shall attempt to close the window. If the window is a workspace window and modifications have been made to the workspace since the most recent save, the system shall prompt the user to save the workspace before exiting. Upon confirmation, the system shall save the workspace before closing the window. [Rq63] When a user selects the Visualize Models tab in STg, the system shall start the VSeT application. [Rq64] When the user selects a corner of a displayed window with the mouse cursor and drags the cursor, the system shall resize the window in the direction of the mouse drag. Windows being resized may change shape. 4.3.2. Menus [Rq65] When the user selects the File/New option, the system shall open a file selection dialog and prompt the user for a workspace folder name. The system shall create a new folder in which to store the workspace. [Rq66] When the user selects the File/Save option, the system shall save the current state of the workspace, including experiment names, the state of each Model Visualization Window, and any information related to the display of models. [Rq67] When the user selects the File/Save-As option, the system shall open a file selection dialog and prompt the user for a workspace folder name. The system shall create a new folder in which to store the workspace and save the workspace state. [Rq68] When the user selects the File/Import Experiment option, the system shall open a file selection dialog and allow the user to select an experiment file. [Rq69] When the user selects an experiment file for import (e.g., using the File/Import Experiment option), the system shall add the experiment file to the workspace, read the experiment file, search the experiment directory for models, and add any models to the Experiment Manager Window of the workspace. [Rq70] When an error occurs reading an experiment file on import, the system shall display an error message indicating that the import failed and providing as much indication of the reason for the failure as possible. [Rq71] When the user selects the File/Exit option, the system shall the system shall attempt to close the window. If the modifications have been made to the workspace since the most recent save, the system shall prompt the user to save the workspace before exiting. Upon confirmation, the system shall save the workspace before closing the window. Operations are saved as if on a stack. When a user selects undo, the system pops the stack and reverses the operation stored on the stack. If the stack is empty, undo is ignored. [Rq72] When the user selects the Edit/Undo option, the system shall reverse the most recent non-undo operation. Software Requirements Specification Date 7/13/2017 10:37 PM Page 30 VSeT Software Requirements Specification [Rq73] When the user selects the Edit/Copy option, the system shall copy the currently selected item and paste it in the system copy buffer. [Rq74] When the user selects the Edit/Paste option, the system shall insert the item in the system copy buffer at the current cursor location. [Rq75] When the user selects the Edit/Option/Background option, the system shall open a color selection dialog. [Rq76] When the user selects a color from the color selection dialog opened during the Edit/Option/Background operation, the background color of the currently selected window shall be set to the selected color. [Rq77] When the user selects the Edit/Option/Color Coding option, the system shall provide an interface for assigning colors to values in the display. The default color assignments shall be red for slow or soft and blue for fast. [Rq78] When the user selects the Edit/Option/Shotpoints option, the system shall display the Shot Points available for the currently selected model. [Rq79] When the user selects the Edit/Option/Geophones option, the system shall display the receivers available for the currently selected model. [Rq80] When the user selects the Help/About option, the system shall display a window that says the following: “Visual Analytics for Active Seismic Tomography. Version 1.0 2010-2011 Contributors. All rights reserved”. [Rq81] When the user selects the Help/Topics option, the system shall open a dialog and present the available help topics. When a user selects a help topic, the help page for that topic shall be displayed. 4.3.3. Workspace Windows [Rq82] When a workspace window is opened, the system shall read the workspace state file and create a workspace window that replicates the state of the workspace when the workspace was last saved. The system shall read the experiment files for all experiments in the workspace and display the names of all experiments and models in those experiments in the Experiment Manager Window. The system shall create Model Visualization Windows for each model displayed when the workspace state was saved. The system shall update the Experiment Information Window. [Rq83] When the user selects the Open icon from the toolbar, the system shall respond as if the File/Open menu option had been selected. [Rq84] When the user selects the Save icon from the toolbar, the system shall respond as if the File/Save menu option had been selected. [Rq85] When the user selects the Snapshot icon from the toolbar, the system shall attempt to save a snapshot (See section 4.4). [Rq86] When the user selects the Animate icon from the toolbar, the system shall attempt to create or display an animation (See section 4.4). [Rq87] When the user selects the Slice icon from the toolbar, the system shall attempt to create a slice (see section 4.4). [Rq88] When the user selects the Rotate icon from the toolbar, the system shall enter rotate mode (see section 4.4). [Rq89] When the user selects the Zoom icon from the toolbar, the system shall enter zoom mode (see section 4.4). [Rq90] When the user selects the Help icon from the toolbar, the system shall respond as if the Help/Topics menu option had been selected. [Rq91] When a user enters text in the filter text box of the Experiment Manager Window, the system redraw the Experiment Manager Window displaying only the lines of text matching the filter expression. The filter expression is a POSIX Basic Regular Expression that supports the following standard metacharaters: *, [, ], ^, $, and \. [Rq92] When a user selects a model from the Experiment Manager Window, the system shall read the model and open a new Model Visualization Window that displays the selected model. [Rq93] When a new Model Visualization Window is opened, the system shall place it in the Visualization Area of the Workspace Window in the upper left hand corner. Software Requirements Specification Date 7/13/2017 10:37 PM Page 31 VSeT Software Requirements Specification [Rq94] When a Model Visualization Window is added to the Visualization Area and other Model Visualization Windows are present, the Model Visualization Windows will be resized so that all Model Visualization Windows can be seen. When resizing the windows reduces them to some minimum size (TBD), the Visualization Area will be expanded, and partially displayed, with scroll bars indicating additional viewing area. [Rq95] When the Model Visualization Window is displaying a Model Information Window and the user selects the Information Window Hide icon, the system shall close the Model Information Window, expand the model visualization to occupy the entire Model Visualization Window, and display an Information Window Show icon. [Rq96] When the user selects the Information Window Show icon in a Model Visualization Window, the system shall open the Model Information Window, reduce the model visualization to provide space for the information window, and populate the information window with current model information including the file name, the experiment name, the iteration and step numbers. [Rq97] When the user selects a Model Visualization Window in the Visualization Area and drags the window with the mouse, the system shall move the window to the location where the drag operation is terminated. [Rq98] When the user selects a Model Visualization Window and presses the Delete key, the system shall close the selected Model Visualization Window. 4.3.4. Synchronize Windows [Rq99] When the user creates a new synchronization group, the group name shall be added to the configuration. [Rq100] When the user adds or deletes a model visualization window to or from a synchronization group, the change shall be made to the configuration. [Rq101] When the user applies any model visualization action such as pan, zoom, or rotate to a model visualization window in a synchronization group, the system shall apply the operation to all model visualization windows in the same synchronization group. 4.3.5. Toolbar Modes [Rq102] When the user selects the Pan option from the Toolbar, the system shall enter Pan mode. [Rq103] When the user performs a drag operation on a Model Visualization Window in Pan mode, the system shall redraw the visualization using a new center point for the visualization. The new center point shall be determined by taking the point under the pointing device at the start of the drag and moving to the location under the cursor at the end of the drag, [Rq104] When the user selects the Zoom option from the Toolbar, the system shall enter Zoom mode. [Rq105] When the user performs a drag operation on a Model Visualization Window in Zoom mode, the system shall redraw the visualization. A drag that corresponds to moving the cursor up on the screen shall zoom in; a drag that corresponds to moving the cursor down on the screen shall zoom out. Moving the cursor approximately one half the size of the visualization window should result in a factor of two zoom operation. For example, if the user drags the mouse down one visualization area height, the selected visualization window will zoom out, and the graphics visible in the window before the operation will take half the window at the end of the operation with the remainder of the window filled in with new graphics. [Rq106] The zoom operation shall preserve the center of the visualization. [Rq107] When the user selects the Rotate option from the Toolbar, the system shall enter Rotate mode. [Rq108] When the user performs a vertical drag operation on a Model Visualization Window in Rotate mode, the system shall redraw the visualization by rotating the image around the visualization window x axis. [Rq109] When the user performs a horizontal drag operation on a Model Visualization Window in Rotate mode, the system shall redraw the visualization by rotating the image around the visualization window y axis. [Rq110] When the user selects on the pan option, the system shall change the mouse cursor to a hand icon. [Rq111] When the user selects on the slice option, the system shall change the mouse cursor into a knife icon. Software Requirements Specification Date 7/13/2017 10:37 PM Page 32 VSeT Software Requirements Specification [Rq112] When the user slices the model, the user will right click and drag a line on the model in any direction on the current axis and the system shall cut the model by the line selected on the model. [Rq113] When the user selects the rotate option, the system shall change the mouse cursor into a curved arrow icon. 4.3.5.1. Video Options [Rq114] When the system is displaying an animation window and the user selects play, the system shall start playing from the current frame at the normal speed. The default current frame is the first frame. [Rq115] When the system is displaying an animation window and the user selects stop, the system shall set the current frame to the first frame. The state of the system shall be displaying the first frame and not animating. [Rq116] When the system is displaying an animation window and the user selects pause, the system shall stop animating and display the current frame. [Rq117] When the system is displaying an animation window, the system is animating, and the user selects fast forward, the system shall double the animation rate and continue animating. [Rq118] When the system is displaying an animation window, the system is not animating, and the user selects fast forward, the system shall ignore the selection. [Rq119] When the system is displaying an animation window and the user selects rewind, the system shall animate in the reverse direction, i.e., backwards. [Rq120] When the system is animating and arrives at either the first or last frame in the animation and looping mode is off, the animation shall stop and the current frame shall be displayed. [Rq121] When the system is animating forward and arrives at the last frame in the animation and looping mode is on, the animation shall set the current frame to the first frame and continue animating. [Rq122] When the system is animating backward and arrives at the first frame in the animation and looping mode is on, the animation shall set the current frame to the last frame and continue animating. [Rq123] When user selects the Fast Forward option, the system shall speed up the frames per second of the currently playing video twice as fast, up to eight times as fast in increments of two. If a video is not currently playing, this menu option shall not be available. [Rq124] When user selects the Rewind option, the system shall play the frames in backward order half as fast as before for every click thereafter, up to one eighth as fast as normal. If a video is not currently playing, this menu option shall not be available. [Rq125] When user selects and drags the Play Slider, the system shall jump to the frame according to where the Play Slider is currently located. It will stop wherever the user leaves the Play Slider at. If a video is not currently playing, this menu option shall not be available. [Rq126] The system shall be able to play a user created model video comprised of iterations of a particular model within the system. [Rq127] The system shall be able to create a frame-by-frame user created model video of iterations of a particular model within the system. 4.3.6. Create Animation [Rq128] When the user chooses to display their animation, the system shall compile the created sequence so the video can be viewed in the video format(.avi, .mov or .mpeg) selected. [Rq129] When the user chooses to create an animation, the system shall allow the user to create a sequence of model types and screenshots of the models. [Rq130] The visualization system shall produce an animation of velocity models which will include multiple steps and iterations produced by Hole’s Code. [Rq131] The visualization system shall allow for the compilation of visuals to be made into animations, which will be of models, and how they are changed, the user can view models of specific iterations of a specific model. Software Requirements Specification Date 7/13/2017 10:37 PM Page 33 VSeT Software Requirements Specification 4.4. Related Features 4.4.1. Convergence [Rq132] The system shall provide a measure of the convergence of Hole’s code between iterations. The algorithm for convergence checking is TBD. 4.4.2. Iso-surfaces [Rq133] The system shall compute and display iso-surfaces for model visualizations. The interface and algorithms for displaying iso-surfaces is TBD. [Rq134] The system shall display up to ten iso-surfaces in a model visualization. 4.5. Functional [Rq135] The system shall allow the user to log off from their Cyber-ShARE account, but the Hole’s Code process shall continue to run, and the visualization process shall continue as well. When the user comes back to view the visualization, the user can view the updated visualization that was in processing while the user was away. [Rq136] The statistics consist of, color scale for each model, the average velocity and the maximum and minimum velocity. [Rq137] The visualization system shall generate a 3D velocity model that will update after each iteration and will visualize the updated 3D model, and put all the iteration visual files into one single application file [Rq138] The visualization system shall allow the user to compare velocity models and values from different iterations and view them side by side [Rq139] The system shall be able to produce an image while Hole’s Code is processing continuously or until Hole’s Code is complete. [Rq140] For every three dimensional time model the visualization system shall compute the coverage. [Rq141] For every source and receiver sensor the visualization system shall compute coverage and velocity perturbations for every iteration. [Rq142] The system shall enable the user to view a model derived from the file system at any iteration of Hole’s Code, at any step within a Hole’s Code iteration, and for any shotpoint for any receiver. [Rq143] The system shall display a pop-up window with an error message if parameter and file do not match and clear the main window on the user interface. Software Requirements Specification Date 7/13/2017 10:37 PM Page 34 VSeT Software Requirements Specification 5. Non-behavioral Requirements 5.1. Performance Requirements No performance requirements have been identified at this time. 5.2. Security For users accessing the server directly, security is provided by the Unix/Linux operating system. No additional security requirements have been identified. 5.3. Qualitative Requirements This section focuses on software properties that the system should enclose. 5.3.1. Availability No availability requirements have been identified at this time. 5.3.2. Maintainability We found no requirements associated with Maintainability requirements. 5.3.3. Portability [Rq144] The System shall run on Linux/Unix Operating system. [Rq145] The system shall be able to run independently of Hole’s code or STG. 5.3.4. Design and Implementation Constraints [Rq146] The system shall use the VTK API 5.6.1 in order to render three dimensional models. Software Requirements Specification Date 7/13/2017 10:37 PM Page 35 VSeT Software Requirements Specification 6. Other Requirements 6.1. Database [Rq147] The system shall be able to access Hole’s code Database, from which VSeT will obtain the binary files necessary for visualizing a 3D model. Please refer to Appendix C for file system structure 6.2. Operations No operations requirements have been identified. 6.3. Site Adaptation [Rq148] The system shall utilize the CyberSHARE visualization cluster for display. [Rq149] The system shall support a visualization interface over the Internet. Software Requirements Specification Date 7/13/2017 10:37 PM Page 36 VSeT Software Requirements Specification 7. Appendix A: Analysis Models 7.1. Data Flow Diagram This section identifies and describes the various data flows within the proposed system. It describes the interactions of the data transmitted between actors and different processes. Time Clock Path of Geology Project Search for Models Parse XML XML File Model Names XML Path Search for XML Model Names Model Names Angle Model Name Select Model User Rotate Model Axes Color Model Type Binary File Axis Move Model Distance Slice Slice Coordinates Coordinates (Final) Move Coordinates Angle Coordinates (Latest) Model Information Calculate Camera Position Camera Coordinates Model Coordinates (Initial) Zoom Magnitude Rotate Coordinates Plane Create Model Calculate Final Coordinates Model Coordinates Save Image to File File Name Image Models Coordinates File System 2D Representation of Models Display Models Create Animation Display Experiment Information Animation Seconds Per Model Software Requirements Specification Date 7/13/2017 10:37 PM Page 37 VSeT Software Requirements Specification 7.2. State Diagrams 7.2.1. System State Diagram Workspace Selected [Exist] / Open selected workspace Selecting Workspace Creating New Workspace Workspace created/ Display workspace Managing Workspace All Models Closed, Managing Interface Selected Model Opened Add Experiment, Remove Experiment Workspace Selected [Not Exist]/ Create selected workspace Visualizing Animation started / Open Animation Interface Animation Interface closed [Animation Interface opened from Managing Experiments] / Close Animation Interface Animating Animation started/ Open Animation Interface Animation Interface Closed [Animation Interface opened from Visualizing] / Close Animation Interface System Exit 7.2.2. Visualizing Sub-state Diagram Model(s) Selected, Pan Performed / Render Model, Zoom Performed / Render Model, Rotation Performed / Render Model Slicing Option Selected Slicing Plane Specified Slicing Finished / Render Model Visualizing Models Color Changed / Render Model Change Color Option Selected Sync Button Pressed / Selected Models Added to Sync Group Coloring Color Specified Visualization Closed Software Requirements Specification Date 7/13/2017 10:37 PM Page 38 VSeT Software Requirements Specification 7.2.3. Animating Sub-state Diagram Selecting Models & Parameters Generate Options Selected/ Generate Animation with Parameters Generating Animation Animation Speed Changed/Update Animation Generation finished/Prepare animation for playing Animation Speed Changed/Update Animation Filter Selected **Stopping Actions *Keep Playing Actions Playing Animation Stopped Animation +Keep Stopped Actions ++Start Playing Actions Actions Available While Playing Animation: *Keep Playing Actions - Step Forward/Animation continues to model after current - Step Backward/Animation goes back to model before current - Activate Loop[Animation is not in loop]/Sets the animation to loop - Deactivate Loop[Animation is in loop]/Sets the animation to not loop **Stopping Actions - Pause/Animation stops playing - Go to beginning/Animation goes to the first model and stops playing - Go to end/Animation goes to the last model and stops playing Actions Available While Stopped Animation: +Keep Stopped Actions - Step Forward/Animation moves to the model after current - Step Backward/Animation moves to the model before current - Go to beginning/Animation shows the first model - Go to end/Animation shows the last model - Activate Loop[Animation is not in loop]/Sets the animation to loop - Deactivate Loop[Animation is in loop]/Sets the animation to not loop ++Start Playing Actions - Play/Animations starts playing Close Animation Interface Software Requirements Specification Date 7/13/2017 10:37 PM Page 39 VSeT Software Requirements Specification 7.3. Class Diagram SyncGroup +addSyncModel() +removeSyncModel() * 1 1 Workspace VisualizationWindow Experiment * -ExperimentFile -UserName -ProjectPath -MaxIterations -ServerName -Date +listModels() +parseXml() +addModel() +removeModel() +listModels() +animate() +createNewSyncGroup() +syncAll() +addExperiment() +removeExperiment() +saveWorkspace() +loadWorkspace() 1 * -listOfIterations windows 1 * 1 +setModel() +removeModel() +undo() +redo() +pan() +rotate() +slice() +resetPosition() * 1 1 Model GeologicProject -shotpoints -geophones * TimeModel -intensities -currentShotpoint -IterationNum -Step -Path -SizeOfCells -CellValues -Type -CellCoordinates +visualize() VelocityModel -intensities InitialVelocityModel Software Requirements Specification 1 current model CoverageModel -coverages VelocityPerturbationModel Date 7/13/2017 10:37 PM Page 40 VSeT Software Requirements Specification 8. Appendix B: Hole’s Code File System Structure Hole’s code uses the following file system structure to keep necessary and generated files organized and readily available. When Hole’s code runs an experiment all files are saved in the user’s folder and folders for the scripts and models are generated. An example of such structure is as follows: /stg/username/ Contains the experiments for the user /stg/username/experimentname Contains the necessary scripts, experiment file, initial models, pick time files for every iteration. Example files: Experimentname.xml 1.pix 1.stat 2.pix 2.stat .. n.pix n.stat vzero.par vel.3d vel.1d /stg/username/experimentname/models Contains the folders for the time, velocity and perturbation models. /stg/username/experimentname/models/time Contains the time models in raw format that are generated by Hole’s code for every iteration. Example files: time.3d /stg/username/experimentname/models/velocity Contains the time models in raw format that are generated by Hole’s code for every iteration. Example files: vel.3d /stg/username/experimentname/models/perturbations Contains the time models in raw format that are generated by Hole’s code for every iteration. Example files: dusum.3d /stg/username/experimentname/models/coverage Contains the time models in raw format that are generated by Hole’s code for every iteration. Example files: icov.3d The following is a description of common files used by Hole’s code along with output files generated by them. Software Requirements Specification Date 7/13/2017 10:37 PM Page 41 VSeT Software Requirements Specification vel1d.f vel.1d vel.3d / velaa66.3d.u punch.c time.3d /time.3d1.u cover.f icov.3d / icovsh.3d du.3d /duSumU.3d Program for converting a set of converting a set of v(z) datapoints to an equally sampled 3d velocity file. Output file from vel1d.f for 1-D profile. Output file from vel1d.f for 3-D grid. Program that implements forward modeling by taking a velocity model and using Vidale’s algorithm to calculate the first arrival travel time for each grid point. Output file from punch.c Given shotpoint locations within a sample 3D travel time grid, finds the ray from each shotpoing to each receiver and then determines how travel time residuals affect each cell. (sometimes referred to back tracing) Output file from cover.f . Length of each ray. Ray coverage array, nrays(i,j,k) defined as the number of rays through the model cell between t(i,j,k) and t(i+1,j+1,k+1) Output file from cover.f . Slowness perturbation array, du(i,j,k), defined as the sum of all ray’s perturbations within each cell Note: The extension of binary output files can be any as long as the actual file is in raw format Figure 4- Hole's code Input/Output files flow vzero.par file contains the size of the model (like 231 km x 69 x31..) Then along with the vel.3d file that vel.1d gives we include a set of files which could be multiple. The set includes *.par, *.pix and *.stat) then running punch.c gives the time.3d model which we input into the cover.f Cover.f does the backtracing an it iterates the number of sets that were mentioned before. cover.f generates two files icov.3d (ray coverage) and dusum.3d (velocity perturbation) Then the final files generated go into tomosom.f and generate du.3d and vel.3d Software Requirements Specification Date 7/13/2017 10:37 PM Page 42 VSeT Software Requirements Specification d_add.f takes those files and generates a velnew.3d model addc.f takes velnew.3d and repeats the process one more time. . Software Requirements Specification Date 7/13/2017 10:37 PM Page 43 VSeT Software Requirements Specification 9. Appendix C: Visualization Models (Input & Script Files) In order to display the visualization models it is necessary to have the proper input files. These files have to be binary, that is, in raw format. The file extension may be any as long as the actual file is in raw format. They also have to use unsigned short numbers. Each visualization model requires a script with predefined parameters. VTK takes the script along with these predefined parameters in order to render the visualization. The scripts for each model are very similar to each other. All scripts on the first lines contain the following code: # Create the reader for the data vtkImageReader reader reader SetFileName "C:/Users/Igris/Desktop/icovsh.3d" reader SetDataScalarTypeToUnsignedShort reader SetDataByteOrderToLittleEndian reader SetFileDimensionality 3 reader SetDataOrigin 0 0 0 reader SetDataSpacing 1 1 1 reader SetDataExtent 0 229 0 24 0 67 reader SetNumberOfScalarComponents 1 reader FileLowerLeftOn The first highlighted line is to provide the input file in binary format. It shall be able to be specified by the user. The second highlighted line is to set the size of the model. The user shall be able to specify the exact size of the model. There exists a single exception, in the “CoverViz” file, the size of the model has to be set to X-1, Y-1 and Z-1. This is necessary because Cover contains and visualizes cells and not vertices as the other files. On the bottom of all the scripts you can also see the following: #Render ren1 AddVolume volume ren1 SetBackground 1 1 1 ren1 AddActor outlineActor renWin SetSize 600 600 renWin Render # Maginfiy the image? How much? vtkRenderLargeImage renderLarge renderLarge SetInput ren1 renderLarge SetMagnification 1 # We write out the image which causes the rendering to occur. vtkTIFFWriter writer writer SetInputConnection [renderLarge GetOutputPort] writer SetFileName cover.jpg writer Write In this second section of code, the first highlighted line sets the size of the window for the visualization in pixels. The user shall be able to specify this as well. The second highlighted line sets the file name where we want to save the image. Software Requirements Specification Date 7/13/2017 10:37 PM Page 44 VSeT Software Requirements Specification 10. Appendix D: Velocity Model A seismic model that indicates varying velocities in the structure of the earth. An example of a velocity model visualization is shown in the image below. Figure 5- Velocity Model sample screen shot The sample script for this model is the following: # This is a simple volume rendering example that # uses a vtkVolumeRayCast mapper package require vtk package require vtkinteraction # Create the standard renderer, render window # and interactor vtkRenderer ren1 vtkRenderWindow renWin renWin AddRenderer ren1 vtkRenderWindowInteractor iren iren SetRenderWindow renWin # Create the reader for the data vtkImageReader reader reader SetFileName "C:/Users/Igris/Desktop/velaa66.3d.u" reader SetDataScalarTypeToUnsignedShort reader SetDataByteOrderToLittleEndian reader SetFileDimensionality 3 reader SetDataOrigin 0 0 0 reader SetDataSpacing 1 1 1 reader SetDataExtent 0 230 0 25 0 68 reader SetNumberOfScalarComponents 1 reader FileLowerLeftOn #reader SetDataMask 0x7fff # Create transfer mapping scalar value to opacity vtkPiecewiseFunction opacityTransferFunction opacityTransferFunction AddPoint 20 0.0 opacityTransferFunction AddPoint 255 0.2 Software Requirements Specification Date 7/13/2017 10:37 PM Page 45 VSeT Software Requirements Specification # Create transfer mapping scalar value to color vtkColorTransferFunction colorTransferFunction colorTransferFunction AddRGBPoint 0.0 1.0 0.0 0.0 colorTransferFunction AddRGBPoint 30315.0 0.0 0.0 1.0 # The property describes how the data will look vtkVolumeProperty volumeProperty volumeProperty SetColor colorTransferFunction volumeProperty SetScalarOpacity opacityTransferFunction volumeProperty ShadeOn volumeProperty SetInterpolationTypeToLinear ############################################################ # Create five surfaces F(x,y,z) = constant between range specified. The # GenerateValues() method creates n isocontour values between the range # specified. vtkContourFilter contours contours SetInput [reader GetOutput] contours GenerateValues 30 0.0 30315.0 vtkPolyDataMapper contMapper contMapper SetInput [contours GetOutput] contMapper SetScalarRange 0.0 30315.0 vtkActor contActor contActor SetMapper contMapper # We'll put a simple outline around the data. vtkOutlineFilter outline outline SetInput [reader GetOutput] vtkPolyDataMapper outlineMapper outlineMapper SetInput [outline GetOutput] vtkActor outlineActor outlineActor SetMapper outlineMapper eval [outlineActor GetProperty] SetColor 0 0 0 ########################################################### # The mapper / ray cast function know how to render the data vtkVolumeRayCastCompositeFunction compositeFunction vtkVolumeRayCastMapper volumeMapper volumeMapper SetVolumeRayCastFunction compositeFunction volumeMapper SetInputConnection [reader GetOutputPort] # The volume holds the mapper and the property and # can be used to position/orient the volume vtkVolume volume volume SetMapper volumeMapper volume SetProperty volumeProperty volume RotateX 90 contActor RotateX 90 Software Requirements Specification Date 7/13/2017 10:37 PM Page 46 VSeT Software Requirements Specification outlineActor RotateX 90 ren1 AddVolume volume ren1 SetBackground 1 1 1 ren1 AddActor contActor ren1 AddActor outlineActor renWin SetSize 600 600 renWin Render # Maginfiy the image? How much? vtkRenderLargeImage renderLarge renderLarge SetInput ren1 renderLarge SetMagnification 1 # We write out the image which causes the rendering to occur. vtkTIFFWriter writer writer SetInputConnection [renderLarge GetOutputPort] writer SetFileName vel3d.jpg writer Write # User interactions proc TkCheckAbort {} { set foo [renWin GetEventPending] if {$foo != 0} {renWin SetAbortRender 1} } renWin AddObserver AbortCheckEvent {TkCheckAbort} iren AddObserver UserEvent {wm deiconify .vtkInteract} iren Initialize wm withdraw . Software Requirements Specification Date 7/13/2017 10:37 PM Page 47 VSeT Software Requirements Specification 11. Appendix E: Time 3D Model This model represents seismic waves produced by the shotpoint, and the geophones capturing the waves according to time.There are two types of Time 3D Models that are visualized. One displays the volume, usually runs slower but fills in the gaps of the contours. The second one leaves blank spaces between the iso-surfaces but it displays faster. Figure 6- Time 3D Model with volume sample screen shot The sample script for Time 3D Model is the following: # This is a simple volume rendering example that # uses a vtkVolumeRayCast mapper package require vtk package require vtkinteraction # Create the standard renderer, render window # and interactor vtkRenderer ren1 vtkRenderWindow renWin renWin AddRenderer ren1 vtkRenderWindowInteractor iren iren SetRenderWindow renWin # Create the reader for the data vtkImageReader reader reader SetFileName "C:/Users/Igris/Desktop/time.3d1.u" reader SetDataScalarTypeToUnsignedShort reader SetDataByteOrderToLittleEndian reader SetFileDimensionality 3 reader SetDataOrigin 0 0 0 reader SetDataSpacing 1 1 1 reader SetDataExtent 0 230 0 25 0 68 reader SetNumberOfScalarComponents 1 reader FileLowerLeftOn #reader SetDataMask 0x7fff # Create transfer mapping scalar value to opacity vtkPiecewiseFunction opacityTransferFunction opacityTransferFunction AddPoint 20 0.0 Software Requirements Specification Date 7/13/2017 10:37 PM Page 48 VSeT Software Requirements Specification opacityTransferFunction AddPoint 255 0.2 # Create transfer mapping scalar value to color vtkColorTransferFunction colorTransferFunction colorTransferFunction AddRGBPoint 0.0 1.0 0.0 0.0 colorTransferFunction AddRGBPoint 30315.0 0.0 0.0 1.0 # The property describes how the data will look vtkVolumeProperty volumeProperty volumeProperty SetColor colorTransferFunction volumeProperty SetScalarOpacity opacityTransferFunction volumeProperty ShadeOn volumeProperty SetInterpolationTypeToLinear ############################################################ # Create five surfaces F(x,y,z) = constant between range specified. The # GenerateValues() method creates n isocontour values between the range # specified. vtkContourFilter contours contours SetInput [reader GetOutput] contours GenerateValues 30 0.0 30315.0 vtkPolyDataMapper contMapper contMapper SetInput [contours GetOutput] contMapper SetScalarRange 0.0 30315.0 vtkActor contActor contActor SetMapper contMapper # We'll put a simple outline around the data. vtkOutlineFilter outline outline SetInput [reader GetOutput] vtkPolyDataMapper outlineMapper outlineMapper SetInput [outline GetOutput] vtkActor outlineActor outlineActor SetMapper outlineMapper eval [outlineActor GetProperty] SetColor 0 0 0 ########################################################### # The mapper / ray cast function know how to render the data vtkVolumeRayCastCompositeFunction compositeFunction vtkVolumeRayCastMapper volumeMapper volumeMapper SetVolumeRayCastFunction compositeFunction volumeMapper SetInputConnection [reader GetOutputPort] # The volume holds the mapper and the property and # can be used to position/orient the volume vtkVolume volume volume SetMapper volumeMapper volume SetProperty volumeProperty volume RotateX 90 Software Requirements Specification Date 7/13/2017 10:37 PM Page 49 VSeT Software Requirements Specification contActor RotateX 90 outlineActor RotateX 90 ren1 AddVolume volume ren1 SetBackground 1 1 1 ren1 AddActor contActor ren1 AddActor outlineActor renWin SetSize 600 600 renWin Render # Maginfiy the image? How much? vtkRenderLargeImage renderLarge renderLarge SetInput ren1 renderLarge SetMagnification 1 # We write out the image which causes the rendering to occur. vtkTIFFWriter writer writer SetInputConnection [renderLarge GetOutputPort] writer SetFileName time3D_withVol.jpg writer Write # User interactions proc TkCheckAbort {} { set foo [renWin GetEventPending] if {$foo != 0} {renWin SetAbortRender 1} } renWin AddObserver AbortCheckEvent {TkCheckAbort} iren AddObserver UserEvent {wm deiconify .vtkInteract} iren Initialize wm withdraw . Figure 7- Time 3D Model without volume sample screen shot The sample script for Time 3D Model without volume is the following: # This is a simple volume rendering example that Software Requirements Specification Date 7/13/2017 10:37 PM Page 50 VSeT Software Requirements Specification # uses a vtkVolumeRayCast mapper package require vtk package require vtkinteraction # Create the standard renderer, render window # and interactor vtkRenderer ren1 vtkRenderWindow renWin renWin AddRenderer ren1 vtkRenderWindowInteractor iren iren SetRenderWindow renWin # Create the reader for the data vtkImageReader reader reader SetFileName "C:/Users/Igris/Desktop/time.3d1.u" reader SetDataScalarTypeToUnsignedShort reader SetDataByteOrderToLittleEndian reader SetFileDimensionality 3 reader SetDataOrigin 0 0 0 reader SetDataSpacing 1 1 1 reader SetDataExtent 0 230 0 25 0 68 reader SetNumberOfScalarComponents 1 reader FileLowerLeftOn #reader SetDataMask 0x7fff # Create transfer mapping scalar value to opacity vtkPiecewiseFunction opacityTransferFunction opacityTransferFunction AddPoint 20 0.0 opacityTransferFunction AddPoint 255 0.2 # Create transfer mapping scalar value to color vtkColorTransferFunction colorTransferFunction colorTransferFunction AddRGBPoint 0.0 1.0 0.0 0.0 colorTransferFunction AddRGBPoint 30315.0 0.0 0.0 1.0 # The property describes how the data will look vtkVolumeProperty volumeProperty volumeProperty SetColor colorTransferFunction volumeProperty SetScalarOpacity opacityTransferFunction volumeProperty ShadeOn volumeProperty SetInterpolationTypeToLinear ############################################################ # Create five surfaces F(x,y,z) = constant between range specified. The # GenerateValues() method creates n isocontour values between the range # specified. vtkContourFilter contours contours SetInput [reader GetOutput] contours GenerateValues 30 0.0 30315.0 vtkPolyDataMapper contMapper contMapper SetInput [contours GetOutput] contMapper SetScalarRange 0.0 30315.0 Software Requirements Specification Date 7/13/2017 10:37 PM Page 51 VSeT Software Requirements Specification vtkActor contActor contActor SetMapper contMapper # We'll put a simple outline around the data. vtkOutlineFilter outline outline SetInput [reader GetOutput] vtkPolyDataMapper outlineMapper outlineMapper SetInput [outline GetOutput] vtkActor outlineActor outlineActor SetMapper outlineMapper eval [outlineActor GetProperty] SetColor 0 0 0 ########################################################### contActor RotateX 90 outlineActor RotateX 90 ren1 SetBackground 1 1 1 ren1 AddActor contActor ren1 AddActor outlineActor renWin SetSize 600 600 renWin Render # Maginfiy the image? How much? vtkRenderLargeImage renderLarge renderLarge SetInput ren1 renderLarge SetMagnification 1 # We write out the image which causes the rendering to occur. vtkTIFFWriter writer writer SetInputConnection [renderLarge GetOutputPort] writer SetFileName time3D_noVol.jpg writer Write # User interactions proc TkCheckAbort {} { set foo [renWin GetEventPending] if {$foo != 0} {renWin SetAbortRender 1} } renWin AddObserver AbortCheckEvent {TkCheckAbort} iren AddObserver UserEvent {wm deiconify .vtkInteract} iren Initialize wm withdraw . Both visualization models represent the same information Software Requirements Specification Date 7/13/2017 10:37 PM Page 52 VSeT Software Requirements Specification 12. Appendix F: Coverage Model The coverage model once shotpoint location is given within a sampled 3D travel time grid, it finds the ray from the shotpoint to the geophones(source), and finds how the travel time residual affects each cell. This model represents the ray coverage, defined as the number of rays through the model cell t(i,j,k) and t(i+1,j+1,k+1) Figure 8 - Coverage Model sample screen shot The sample script for Coverage Model is the following: # This is a simple volume rendering example that # uses a vtkVolumeRayCast mapper package require vtk package require vtkinteraction # Create the standard renderer, render window # and interactor vtkRenderer ren1 vtkRenderWindow renWin renWin AddRenderer ren1 vtkRenderWindowInteractor iren iren SetRenderWindow renWin # Create the reader for the data vtkImageReader reader reader SetFileName "C:/Users/Igris/Desktop/icovsh.3d" reader SetDataScalarTypeToUnsignedShort reader SetDataByteOrderToLittleEndian reader SetFileDimensionality 3 reader SetDataOrigin 0 0 0 reader SetDataSpacing 1 1 1 reader SetDataExtent 0 229 0 24 0 67 reader SetNumberOfScalarComponents 1 reader FileLowerLeftOn #reader SetDataMask 0x7fff # Create transfer mapping scalar value to opacity vtkPiecewiseFunction opacityTransferFunction opacityTransferFunction AddPoint 20 0.0 opacityTransferFunction AddPoint 255 0.2 Software Requirements Specification Date 7/13/2017 10:37 PM Page 53 VSeT Software Requirements Specification # Create transfer mapping scalar value to color vtkColorTransferFunction colorTransferFunction colorTransferFunction AddRGBPoint 0.0 0.0 0.0 0.0 colorTransferFunction AddRGBPoint 64.0 1.0 0.0 0.0 colorTransferFunction AddRGBPoint 128.0 0.0 0.0 1.0 colorTransferFunction AddRGBPoint 192.0 0.0 1.0 0.0 colorTransferFunction AddRGBPoint 255.0 0.0 0.2 0.0 # The property describes how the data will look vtkVolumeProperty volumeProperty volumeProperty SetColor colorTransferFunction volumeProperty SetScalarOpacity opacityTransferFunction volumeProperty ShadeOn volumeProperty SetInterpolationTypeToLinear # We'll put a simple outline around the data. vtkOutlineFilter outline outline SetInput [reader GetOutput] vtkPolyDataMapper outlineMapper outlineMapper SetInput [outline GetOutput] vtkActor outlineActor outlineActor SetMapper outlineMapper eval [outlineActor GetProperty] SetColor 0 0 0 ########################################################### # The mapper / ray cast function know how to render the data vtkVolumeRayCastCompositeFunction compositeFunction vtkVolumeRayCastMapper volumeMapper volumeMapper SetVolumeRayCastFunction compositeFunction volumeMapper SetInputConnection [reader GetOutputPort] # The volume holds the mapper and the property and # can be used to position/orient the volume vtkVolume volume volume SetMapper volumeMapper volume SetProperty volumeProperty volume RotateX 90 outlineActor RotateX 90 ren1 AddVolume volume ren1 SetBackground 1 1 1 ren1 AddActor outlineActor renWin SetSize 600 600 renWin Render # Maginfiy the image? How much? vtkRenderLargeImage renderLarge renderLarge SetInput ren1 renderLarge SetMagnification 1 # We write out the image which causes the rendering to occur. Software Requirements Specification Date 7/13/2017 10:37 PM Page 54 VSeT Software Requirements Specification vtkTIFFWriter writer writer SetInputConnection [renderLarge GetOutputPort] writer SetFileName cover.jpg writer Write # User interactions proc TkCheckAbort {} { set foo [renWin GetEventPending] if {$foo != 0} {renWin SetAbortRender 1} } renWin AddObserver AbortCheckEvent {TkCheckAbort} iren AddObserver UserEvent {wm deiconify .vtkInteract} iren Initialize wm withdraw . Software Requirements Specification Date 7/13/2017 10:37 PM Page 55 VSeT Software Requirements Specification 13. Appendix G: Perturbations Model The Perturbations Model is represents the sum of all ray’s perturbations within each cell. Figure 9- Perturbations Model sample screen shot The sample script for the Perturbations model is the following: # This is a simple volume rendering example that # uses a vtkVolumeRayCast mapper package require vtk package require vtkinteraction # Create the standard renderer, render window # and interactor vtkRenderer ren1 vtkRenderWindow renWin renWin AddRenderer ren1 vtkRenderWindowInteractor iren iren SetRenderWindow renWin # Create the reader for the data vtkImageReader reader reader SetFileName "C:/Users/Igris/Desktop/dusumU.3d" reader SetDataScalarTypeToUnsignedShort reader SetDataByteOrderToLittleEndian reader SetFileDimensionality 3 reader SetDataOrigin 0 0 0 reader SetDataSpacing 1 1 1 reader SetDataExtent 0 229 0 24 0 67 reader SetNumberOfScalarComponents 1 reader FileLowerLeftOn #reader SetDataMask 0x7fff # Create transfer mapping scalar value to opacity vtkPiecewiseFunction opacityTransferFunction opacityTransferFunction AddPoint 0 0.3 opacityTransferFunction AddPoint 15000 0.3 # Create transfer mapping scalar value to color Software Requirements Specification Date 7/13/2017 10:37 PM Page 56 VSeT Software Requirements Specification vtkColorTransferFunction colorTransferFunction colorTransferFunction AddRGBPoint 11950.0 1.0 0.0 0.0 colorTransferFunction AddRGBPoint 12025.0 0.0 0.0 1.0 # The property describes how the data will look vtkVolumeProperty volumeProperty volumeProperty SetColor colorTransferFunction volumeProperty SetScalarOpacity opacityTransferFunction volumeProperty ShadeOn volumeProperty SetInterpolationTypeToLinear ############################################################ # Create n isocontour values between the range specified. vtkContourFilter contours contours SetInput [reader GetOutput] contours GenerateValues 40 11950.0 12025.0 vtkPolyDataMapper contMapper contMapper SetInput [contours GetOutput] contMapper SetScalarRange 11950.0 12025.0 vtkActor contActor contActor SetMapper contMapper # We'll put a simple outline around the data. vtkOutlineFilter outline outline SetInput [reader GetOutput] vtkPolyDataMapper outlineMapper outlineMapper SetInput [outline GetOutput] # Create an outline to generate a bounding box. vtkActor outlineActor outlineActor SetMapper outlineMapper eval [outlineActor GetProperty] SetColor 0 0 0 # Rotate to show model properly contActor RotateX 90 outlineActor RotateX 90 # Render objects to make them visible ren1 SetBackground 1 1 1 ren1 AddActor contActor ren1 AddActor outlineActor renWin SetSize 600 600 renWin Render # Maginfiy the image? How much? vtkRenderLargeImage renderLarge renderLarge SetInput ren1 renderLarge SetMagnification 1 # We write out the image which causes the rendering to occur. vtkTIFFWriter writer writer SetInputConnection [renderLarge GetOutputPort] Software Requirements Specification Date 7/13/2017 10:37 PM Page 57 VSeT Software Requirements Specification writer SetFileName duSum.jpg writer Write # User interactions proc TkCheckAbort {} { set foo [renWin GetEventPending] if {$foo != 0} {renWin SetAbortRender 1} } renWin AddObserver AbortCheckEvent {TkCheckAbort} iren AddObserver UserEvent {wm deiconify .vtkInteract} iren Initialize wm withdraw . ♦ Software Requirements Specification Date 7/13/2017 10:37 PM Page 58
© Copyright 2025 Paperzz