From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <8885a95771fbecb3bcc6f8446b343a98@granite.cias.osakafu-u.ac.jp> To: 9fans@cse.psu.edu Subject: Re: [9fans] marsv man page From: okamoto@granite.cias.osakafu-u.ac.jp MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="upas-oejcekedoquzriulevohxdexmo" Date: Mon, 17 Feb 2003 11:27:39 +0900 Topicbox-Message-UUID: 63d0693e-eacb-11e9-9e20-41e7f4b1d025 This is a multi-part message in MIME format. --upas-oejcekedoquzriulevohxdexmo Content-Disposition: inline Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Ouch! I enclosed older version of man page. New man page I mentioned is here. Kenji --upas-oejcekedoquzriulevohxdexmo Content-Disposition: inline Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit .TH MARSV 1 .SH NAME marsv \- View PDS images and measure the elevation of Mars surface using MOLA grid data; Output the result to a postscript formatted file .SH SYNOPSIS .B marsv .SH DESCRIPTION .I Marsv is a GUI program for measuring Mars elevation, latitude and longitude at the location pointed at by the mouse cursor, on a Qube image or MOLA grid data. The program draws a contour lines map overlaid on the image using MOLA grid data, and generates a postscript output file. .PP Marsv is intended to be an acme like user interface for manipulating Mars images with additional menubar property for 3 button mouse. The Left button shows the category name of the item, the Middle button executes the indicated job by the menu name, and the Right button lists the items for that category so that the user can choose and execute one. .PP In Elevation menu of ISISmenu category of QUBELoad menu or MOLALoad menu, the Left button shows the values of elevation, longitude and latitude of the location that the mouse points to. When the mouse in this mode is dragged, those values will be shown continuously, which makes you to understand the real shape of the object you are now watching. When you want to erase the data of the last point from the screen, press the Middle button. .PP In Contour menu of ISISmenu category of QUBELoad menu, dragging the Right button can make correction for the minor discrepancy between the location indicated by MOLA grid data and by Qube image data. Usually small parallel shift will only be required to match those two data sets. That is to match a point indicated by the contour map in the MOLA grid data to some point which is easily recongnized as the same one from an outstanding geographic feature. After this recalibration, remaking of the contour lines map will be necessary to get a correct one. The values of longitude and latitude shown in Elevation menu of ISISmenu category are also recalculated by the above procedure. In short, you have to confirm the accuracy of those data by showing the contour lines map before you try to ecamine the elevation of individual location. Those two values will not usually match each other from our experience. .PP Marsv assumes there is a MOLA grid data (such as ieg0031t.img for 0.031 degree grid) in the $home/data/mars/mola/ directory. Additionally, marsv can read many other PDS formatted images of other planet (and such as gif images of course), and make simple annotations using Pen menu by changing colors from Palette menu. .SH IMPLEMENTATION Marsv designed as a single threaded concurrent program, ie. only a process can include many threads, using thread(2) and control(2) libraries of Plan 9. All the controles to a window should be done by sending a control message to an appropriate channel, which may not be necessarily attached to a visible window. Five general purpose user interfaces with its own windows are implemented as shown in struct mItems, struct Form, struct Filebrowse, struct Select and struct Viewer. Those structures are constructed using two new basic structures, named struct Win and struct WinComm, which control their shape, position and behaviour. All those structures have ctl, data, winctl and event channels to send or receive the control messages or data, the last of which is just a handle to a real channel. The winctl channel controls the action of the window itself, such as resize, move and mount etc.. Those channels will be created by the function of mkwincomm() in wincomm.c. .PP Struct Canvas is prepared to provide layer structures to marsv image by using memdraw and layer functions in memdraw(2) libraries of Plan 9, which is a mechanism to make multiple layers in the user's memory space. Each layer may be for drawing the elevation, latitude and longitude data at the moving mouse point, or for drawing image itself. Struct Layer and CanvasBase are used as their base structures. The other many structures from control(2) library are also used through newly defined structure of Wincontrol. Struct Canvas related thread has no winctl channel, then, has no distinct visible window, where channels are created individually, and mkwincomm() is not applied. The struct Viewer is used to copy the layered image in user's memory space to visible image in kernal memory space. The layered memory image will be overlaid at this time if it is necessary. .PP We added struct Textbutton3 for our usage of 3 button menu bar to control(2) library. The method to install it is described in README file. .PP If you want to extend functionarities to marsv, please refer to files such as imager.c or marsv.c. .SH FILES .nf .B README this file .br .B canvas.h defines Canvas and CanvasBase structures, .br .B and others for canvasthread .br .B mola.h definitions for MOLA image .br .B win.h basic definitions for win.c .br .B wincomm.h basic definitions for wincomm.c .br .B page.h stollen from page program included in .br .B Plan 9 distribution .br .B qube.h definitions for QUBE image .br .B browse.c file browser for marsv .br .B canvas.c canvasthread to make layer structure in .br .B marsv, and load images onto user .br .B memory space using .br .B memdraw(2) functions .br .B canvassub.c subroutines for layer and canvas .br .B contour.c make contour lines map using MOLA grid .br .B data .br .B form.c formthread to make basic window with .br .B minimal user interface .br .B gfx.c image file converter stollen from page .br .B program of Plan 9 distribution .br .B imager.c make window for Qube image or .br .B other formatted images .br .B marsv.c threadmain of marsv .br .B mitems.c make menubar content and choose topmenu .br .B etc. .br .B molaload.c select the concerned area from MOLA .br .B grid data .br .B palette.c make color palette for drawing lines, .br .B contour lines map etc. .br .B readmola.c read selected MOLA data, and enhance .br .B the image to fit better .br .B to visualize .br .B readqube.c ditto, but for Qube formatted image .br .B by ISIS program from USGS .br .B save.c save produced image to a file .br .B with several format including .br .B postscript .br .B select.c select the file from shown directory .br .B tree .br .B viewer.c make view window with scrollbars .br .B win.c basic functions to define the shape .br .B of windows .br .B wincomm.c basic function to define the behaviour .br .B of each window .br .B pics/pds2pic.c convert various PDS image to .br .B Plan 9 image(6) format .br .B pics/pic2ps.c convert Plan 9 image(6) to postscript .br .B format .SH BUGS Some images with larger width may fail to be shown, because of the limit of 9p protocol. 16 bit color is not supported to save the created image. You will lose true color from saving in 16 bit true color mode of Plan 9. To input file name etc. onto the entry box, you have to hit Enter key at the end to ensure the input, which is not a bug though. There may be many other bugs. .SH AUTHORS Marsv was written by Yoshitatsu Suzuki and Kenji Okamoto of Osaka Prefecture University. We are financially supported by the citizens of Osaka Prefecure Japan. --upas-oejcekedoquzriulevohxdexmo--