Sunday, April 3, 2011

Lichen Surveys : Week 1

Here's where I've been spending a lot of time this past week, and will continue to for the next few weeks.  

We've surveyed seven EEON plots this week and will continue on schedule next week.  Aside from the Hypogymnia spp., the Usnea spp. can be a little tricky.  We initially thought we had 3 different Usnea spp. from the first couple of plots, but as the week progressed I realized that we probably only had 2, U. cornuta and U. filipendula.  Often we were stuck with small samples, so it was difficult to get a feel for the overall growth shape (tufted or pendulous) and had to look closer.  Luckily, there is a quite a bit of difference between the axis (cord) of these two species.



The U. cornuta axis is thin compared to the overall width of the thallus.  The medulla is very thin and 'wispy'.



Another distinguishing feature is 'cigar' shaped branches of U. cornuta.
Note the main branch and how the off-shoot branches are slightly pinched at the connection.  I believe this is the 'cigar' described by McCune and Geiser.  

















Compare this with U. filipendula.  The axis is much larger and the medulla is dense and white.  You can also see the cortex is thick and papillate.  The deeper green spots surrounding the cord are algae.  The connection between the main branch and smaller branches is round without a distinct 'pinch'.



 Here are some images of Hypogymnia physodes.  It has distinctive hood/lip shaped sorediate lobe margins.  A common lichen on twigs.

Wednesday, March 30, 2011

Tuesday, March 29, 2011

Lichen Guide on Github

The Lichen Guide repo,  https://github.com/hicmic25/LichenGuideMaps.  Trying to get an alertdialog box to pop up using onTap method for user clicks on EEON plot map overlays.  Give the user additional options for viewing lichens at particular EEON plots (as data is made available) and view the data in a more stable manner than through a 'transient' toast message.

It seems like I need to somehow pass lat/long values from the onTap method to a cursor and look for matches in the database.  This requires some restructuring of the data tables however.  I would need to include the lat/long of the plot where the lichen was found in the lichen table so an onTap click would send lat/long values that could then be processed and matched via the sqlite API and the user would see the custom list of returned lichen entries.  Will try and work on it this weekend.

Went out today and did some preliminary surveys of two EEON plots.  We made quite a few collections and started in on the identification process.  Found many Hypogymnia spp., I feel good about a couple of the identifications but tomorrow we're going to learn how to use spot tests to make sure we get as accurate identifications as possible.

Finally saw Hypogymnia physodes up close!  I've read about it in many studies and finally got a chance to see it up close under the dissecting scope.  H. physodes has distinctive marginal soredia that form on 'lip' like structures (really just the thallus folded over itself).  Pretty much made my day.

Friday, March 25, 2011

Guide to the Lichens of The Evergreen State College - Images

After fumbling around for a few hours I realized my knowledge of basic Java programming is too limited.  It seemed like an easy task: when a user clicks on a particular lichen in the list, an image associated with that lichen will be shown in the details view.  My idea was to take the string retrieved from the database for genus and compare it to a string constant set to different genera.  Depending on which 'If' statement evaluated to TRUE, the corresponding image would be displayed.  The logic was as follows:

IF (DATBASE VALUE = SPECIES X);
     DISPLAY IMAGE OF SPECIES X;

IF (DATABASE VALUE = SPECIES Y);
     DISPLAY IMAGE OF SPECIES Y;


I was successfully passing the correct values as a bundle and converting them to strings (shown below), so it seemed like it should be an easy task to compare two strings.


Bundle extras = getIntent().getExtras();
        if (extras != null) {
            String genus = extras.getString(DatabaseHelper.KEY_GENUS);


The problem was figuring out how to compare these values.  Looking at other code, it seemed I should be able to use something like,


if (genus == "Cladonia") {
                mLichenGallery.setAdapter(new ImageAdapterCladonia(this));


 Hours later I came to the realization that you can't really use the '==' operator to properly compare two strings.

Instead you use the String1.Equals(String2) method call.  It seemed so easy, too good to be true, but it worked perfectly.  So now the code looks like,


    if (genus.equalsIgnoreCase(C)){
            mLichenGallery.setAdapter(new ImageAdapterCladonia(this));

Where 'C' is a string constant defined at the top of the class as 'Cladonia'.  I used the 'equalsIgnoreCase' just in case there is an error in data entry later on and the strings don't match case exactly. The images seen below are loaded depending on the user selection.





The images are just for testing and don't necessarily match the species.  Each image is part of a GalleryView that is a horizontally scrolling image view, so multiple images can be displayed and scrolled through by the user.


  

Guide to the Lichens of The Evergreen State College - Maps

Integrating google maps into the Lichen Guide app was not as difficult as I imagined it to be.  The app can now display all of the EEON plots as well as current user location.  The user can potentially navigate to every EEON plot using the app.  Admittedly the accuracy is not the best, but I think it can at least aid in navigating to the plots.     





When an EEON plot is clicked, a toast message pops up displaying the plot name and the forest-type associated with it.  I may try and implement a more powerful menu when a point is clicked, so the user can view more info about each plot and link directly to lichens found in that plot.  For now, the user can click a point and view the forest type, then hit the menu button and navigate to the forest-type list and then view lichens for that plot/area.  

By hitting the menu button in Map mode the user can navigate to other parts of the app and change the map view to satellite mode.  At this point I need to start on the graphic design aspects of the app, populating the glossary of terms, and integrating images into the lichen description menu.

Monday, March 21, 2011

Guide to the Lichens of The Evergreen State College Part 2

Just finalized the code that allows the user to view lichen species based on the forest type the user happens to be in at Evergreen.  Clicking on an entry finds all species that correspond with a value associated with the forest type.  From there they can view information about the lichen.
The next step will be figuring out the best way to integrate images.  

Friday, March 18, 2011

Guide to the Lichens of The Evergreen State College

Last summer I spent a month or so playing around with Android app development and came up with an app to help identify common fungi in the northwest.  I basically mapped out a key (Kit Scates) onto an interface of tabs and buttons that users could select from.  It was really basic and had no database support.  Everything was hard coded, meaning no scalability.  Despite this, it worked, and I actually used it quite a few times.  I never released it onto the android market.

About a month ago I started thinking about how I could integrate an app into my current studies at Evergreen.  Spring quarter is going to be based around surveying lichens around EEON (Evergreen Ecological Observation Network) and I realized it would be a great opportunity to catalog what we find.  I knew this time around I need to integrate a database into the design.    

After about a week of shuffling through code and reading about databases, I have a functioning app ready to be expanded over spring quarter, and hopefully finished this summer.

The app is based around the 'forest-types' found on the Evergreen campus, with about nine different types in all.  The user will be able to select a forest-type and view lichens that are known to occur in that area.

 


The species info was taken from McCune and Geiser, just to have some data to test the functionality of the app.  The data in the finished app will be based on surveys and identification performed by myself and other students at Evergreen.

I'm still working on integrating photos, which will greatly improve the app's usability.  Users can click on a lichen name and view more detailed information about that species.  Once my lichen taxonomy skills are a little more honed I'll integrate a short key into the main menu so that users can at least narrow the specimen they have by thallus-type (fruticose, crustose, foliose, squamulose).  I would also like to integrate a google maps/GPS component, so that users could view their current location and view a list of lichens based on their location.  That is, however, beyond me at this point. Also, I realize the layout/design is very basic, but it is a work in progress.