ITCHy GRASS problem with DEM tapework

Since my original request for assistance regarding DEM tapework
on 3/21 to grassu-list, IDS staff have examined and made a small
modification to the m.dem.extract tool.

This modification permits reading a USGS DEM file format that was
extracted from tape. The solution involves modifying code.
Once the fix is in place, a two step process permits bring
USGS 7.5 min. DEM data in GRASS4.0

                ---------

For the programmers:
Modifications to the code:

   You need to edit the file main.c in directory
   grass4.0/src/misc/m.dem.extract.
  
   In the CERL delivered form, line ~37 of main.c reads:

     blocksize = sscanf(opt3->answer, "%d", &blocksize) ;

   when we tried in dbx to look at the value of blocksize it always was 1.
   The following fix was implemented in main.c.
    
     Add the local variable:
       char *blocktemp;

     Modify line ~37 with the following two lines of code:
       blocktemp = opt3->answer;
       sscanf(blocktemp, "%d", &blocksize) ;

   Compile the code appropriately.

This modification removes the restriction describe in the man page, that
rmt0 is the only supported driver. I would welcome any experiences
so that CERL might consider this small improvement in pending fixes.
Note this work was done on sun sparc 2 environments, but should be
applicable elsewhere as well. :slight_smile:

                ---------

For the non-programmers:

The following sequence of commands were used. You will need to adjust
this for the blocksize provide on your tape. The example illustrated
is documented in detail in grassu-list 3/21/92.from tape

1. Retreive the file from tape using dd and tape block size.
   
   dd if=/dev/<appropriate_tape_driver>
      of=file1
      ibs=<appropriate number, in our case 8192)

   This reads the next file from tape. For reading multiple files from
   a single tape you need to use an `n` leading your device driver, e.g.
   /dev/nrst17. This avoids rewinding the tape after each read.

2. Read the files into a new structure that m.dem.extract will be able to
   access. This new structure is obtained by reading the original
   files with dd and converting them to a new format the command is the
   following:

   dd if=(file name, e.g. file1)
      of=<output file name, e.g. file1.out>
      ibs=<blocksize of step 1, e.g. 8192>
      obs=<blocksize larger than any single record in your dem, e.g.4096>
      conv=sync,block

   This prepares a file that the modified m.dem.extract can read.

3. You are ready to use the modified m.dem.extract. Set a region large
   enough to encompass your data from tape, and execute m.dem.extract.
   (see man pages on m.dem.extract)

   m.dem.extract
      input=<name, e.g. file1.out>
      output=<output, dem1 (or actual quad name)>
      blocksize=<value, e.g. 4096>

We were successful with four adjacent quads of 7.5 min USGS DEM data
retreived using a SCSI device driver (as described 3/21 grassu).
If you have any questions, pleasecontact us at Integrated Decision
Support group (IDS), Center for Water Resources Engineering and Science.

PS: Thanks Michael, how do we best post this series on inquiries to
      grassp-list retroactively

Dr. Luis Garcia and
Steffen Meyer

- -----------------------------------------------------------------
Steffen Meyer Integrated Decsion Support Group -- CWRES
phone: (303) 491-7620 Engineering, Colorado State University
fax: (303) 491-2293 Fort Collins, Colorado 80523 USA
email: sm646601.longs.LANCE.ColoState.EDU (129.82.109.16)
- -----------------------------------------------------------------

------- End of Unsent Draft