Presentation is loading. Please wait.

Presentation is loading. Please wait.

John Lloyd MEA582 Fall 2011 Final Project John Lloyd MEA582 Final Project1.

Similar presentations


Presentation on theme: "John Lloyd MEA582 Fall 2011 Final Project John Lloyd MEA582 Final Project1."— Presentation transcript:

1

2 John Lloyd MEA582 Fall 2011 Final Project jlloyd@ncsu.edu John Lloyd MEA582 Final Project1

3  Introduction  Environment Setup ◦ Linux ◦ Windows ◦ Running Python  v.transects.py  Testing ◦ Methodology ◦ Test Cases ◦ Results  Conclusions John Lloyd MEA582 Final Project 2

4  Setup Linux and Windows Environments ◦ Built GRASS from source code  Python script ◦ v.transects.py ◦ Script partitions the shoreline ◦ Written by Eric Hardin  Tested script ◦ Linux ◦ Windows John Lloyd MEA582 Final Project3

5  Introduction  Environment Setup ◦ Linux ◦ Windows  v.transects.py  Testing ◦ Methodology ◦ Test Sets ◦ Results  Conclusions John Lloyd MEA582 Final Project4

6  Linux and Windows  Built GRASS from source code ◦ Latest versions – not dependent on pre-built binaries ◦ Debug problems by following execution in code ◦ Add enhancements ◦ Understand algorithms  GRASS Wiki - http://grass.osgeo.org/wiki/Compile_and_Install http://grass.osgeo.org/wiki/Compile_and_Install John Lloyd MEA582 Final Project5

7  CentOS Linux 5.7 ◦ Free distribution of Enterprise Linux ◦ Installed groups for software development  Downloaded prerequisite packages for GRASS  Downloaded GRASS source code ◦ (http://grass.osgeo.org/download/software.phphttp://grass.osgeo.org/download/software.php  Compiled and Installed John Lloyd MEA582 Final Project6

8  Microsoft Windows7 Professional  OSGeo4W ◦ Installs binaries of open source geospatial software for Windows  MinGW – Minimalist GNU for Windows ◦ A Unix like environment for Windows  Downloaded prerequisite packages for GRASS  Downloaded GRASS source code  Compiled and Installed John Lloyd MEA582 Final Project7

9  Introduction  Environment Setup ◦ Linux ◦ Windows ◦ Running Python  v.transects.py  Testing ◦ Methodology ◦ Test Sets ◦ Results  Conclusions John Lloyd MEA582 Final Project8

10  script ◦ Open Source ◦ Interpreted ◦ Contains GRASS APIs  Written by Eric Hardin ◦ Graduate Research Assistant at NCSU  Used to partition the shore along Outer Banks  Creates ◦ Lines/transects perpendicular to shore ◦ Or polygons along the shore  Parameters ◦ Distance between transects ◦ Length of transects John Lloyd MEA582 Final Project9

11  Introduction  Environment Setup ◦ Linux ◦ Windows ◦ Running Python  v.transects.py  Testing ◦ Methodology ◦ Test Sets ◦ Results  Conclusions John Lloyd MEA582 Final Project10

12 Run Test Cases in Linux Defects found? Fix Defects Run Test Cases in Windows Defects found? Finish Yes No Start Compare Linux/Windows Output Layers Layers the Same? No Yes John Lloyd MEA582 Final Project11

13  Parameter Verification Set ◦ Verifies detects and handles incorrect parameters ◦ 10 test cases  Shoreline Dataset Verification Set ◦ Nags Head shoreline in NC State Plane ◦ 9 test cases  Polylines of Various Shapes Set ◦ Polylines not representative of shorelines ◦ 12 test cases  WGS84 Set ◦ Data in the WGS84 projection ◦ 3 test cases John Lloyd MEA582 Final Project12

14  Parameter defects ◦ Before: ValueError: invalid literal for float(): xxx ◦ After: ERROR: Invalid transect_spacing value.  Windows Compatibility Defects ◦ ValueError: close_fds is not supported on Windows platforms ◦ ERROR: Unable to open ASCII file ◦ Transects along network of lines failed in Windows but passed in Linux  Logic defects ◦ Output layer always correct layer if produced John Lloyd MEA582 Final Project13

15 John Lloyd MEA582 Final Project14 50m Transects along Shore50m Polygons along Shore Transects around circleTransects along in street network (created in Linux only)

16 John Lloyd MEA582 Final Project15 #################################### # write transects def writeTransects( transects, output ): transects_str = '' for transect in transects: transects_str += '\n'.join( [ 'L 2\n'+' '. join(map(str,end_points[0])) +'\n'+' '.join(map(str,end_points[1]))+ '\n' for end_points in transect ] ) a = tempfile.NamedTemporaryFile() a.write( transects_str ) a.seek(0) grass.run_command('v.in.ascii', flags='n', input=a.name, output=output, format='standard') a.close() #################################### # write transects def writeTransects( transects, output ): transects_str = '' for transect in transects: transects_str += '\n'.join( [ 'L 2\n'+' '. join(map(str,end_points[0])) +'\n'+' '.join(map(str,end_points[1]))+ '\n' for end_points in transect ] ) # JL Rewrote Temporary File Logic for Windows _, temp_path = tempfile.mkstemp() a = open(temp_path, 'w') a.write( transects_str ) a.seek(0) a.close() grass.run_command('v.in.ascii', flags='n', input=temp_path, output=output, format='standard') Example 1. Changed Temporary File Creation System Call # JL Handling Invalid transect_spacing parameter try: transect_spacing = float(options['transect_spacing']) except: grass.fatal(_("Invalid transect_spacing value.")) if transect_spacing == 0.0: grass.fatal(_("Zero invalid transect_spacing value.")) transect_spacing = float(options['transect_spacing']) Example 2. Added Additional Parameter Validation

17  Introduction  Environment Setup ◦ Linux ◦ Windows ◦ Running Python  v.transects.py  Testing ◦ Methodology ◦ Test Sets ◦ Results  Conclusions John Lloyd MEA582 Final Project16

18  Setting up environment from GRASS source ◦ Problems encountered  Linux - missing packages  Windows - environment variables for python ◦ Advantages of build from source not realized  v.transect.py ◦ Previous testing eliminated logic defects ◦ Special testing for Windows needed ◦ Now fit for multiple environment and applications John Lloyd MEA582 Final Project17


Download ppt "John Lloyd MEA582 Fall 2011 Final Project John Lloyd MEA582 Final Project1."

Similar presentations


Ads by Google