[R-sig-Geo] image classification with GRASS

Nick Matzke matzke at berkeley.edu
Sat Jan 1 04:58:06 CET 2011


After great struggles, this is what I got to work...thanks!
Nick

================
Open GRASS.app
(last step was huge manual compile *after* the app had been 
created)
(need to update libpng)

# For some reason this works even though I UNINSTALLED wxpython
g.gui wxpython


GRASS commands

# Load via File --> Import Raster Map


# i.group group=lsat7_2002 subgroup=lsat7_2002 \
 
input=lsat7_2002_10,lsat7_2002_20,lsat7_2002_30,lsat7_2002_40,lsat7_2002_50,lsat7_2002_70


# make group and subgroup
i.group group=gp1 subgroup=gp1 
input=betm.1,betm.2,betm.3,betm.4,betm.5,betm.6

# make unsupervised clustering
i.cluster group=gp1 subgroup=gp1 sigfile=unsup1 classes=2

# assign pixels to classes
i.maxlik group=gp1 subgroup=gp1 sigfile=unsup1 
class=unsup1_class reject=unsup1_reject

# unsupervised classification puts pixels into class #1 
(ocean) or #2 (land/cloud);
# we need to multiply by 100 to make it a big difference
Raster --> Map Calculator
new: unsup_x10
existing: edges3 at PERMANENT
edges3 at PERMANENT * 100

# identify edge pixels
i.zc --overwrite input=unsup_x10 output=edges3 width=3 
threshold=1

# Set the #1 pixels (the edges) to a mask
r.mask -o input=edges3 maskcats=1

# drag up the RGB image, now it is limited to just the mask


# unsupervised clustering, 4 classes, of just (?) edge pixels
i.cluster group=gp1 subgroup=gp1 sigfile=edges_unsup1 
classes=4 reportfile=edges_unsup1_report.txt

# assign pixels to classes
i.maxlik --overwrite group=gp1 subgroup=gp1 
sigfile=edges_unsup1 class=edges_unsup1_class 
reject=edges_unsup1_reject
================

On 12/30/10 9:08 PM, Nick Matzke wrote:
> Hi all,
>
> I've got R (with spgrass6) and GRASS installed on my Mac OS
> X machine.
>
> My goal is to load and classify a .img file that was clipped
> out of a Landsat 7 ETM image in ERDAS.
>
> However, GRASS seems to have a huge learning curve to even
> get started. Could I beg some GRASS wizard to post the very
> basic commands that one would typically use to:
>
> 1. load a .img file into GRASS
> 2. Display it
> 3. Conduct a classification of the pixels (any sort of
> classification would be fine, even a simple 2-class
> unsupervised classification).
>
> Thanks *very much* if you are able to help! Normally I'm
> pretty good at this sort of thing, but GRASS is
> extra-intimidating to newbies.
>
> Thanks, and cheers!
> Nick
>
>
>

-- 
====================================================
Nicholas J. Matzke
Ph.D. Candidate, Graduate Student Researcher
Huelsenbeck Lab
Center for Theoretical Evolutionary Genomics
4151 VLSB (Valley Life Sciences Building)
Department of Integrative Biology
University of California, Berkeley

Graduate Student Instructor, IB200A
Principles of Phylogenetics: Systematics
http://ib.berkeley.edu/courses/ib200a/index.shtml

Lab websites:
http://ib.berkeley.edu/people/lab_detail.php?lab=54
http://fisher.berkeley.edu/cteg/hlab.html
Dept. personal page: 
http://ib.berkeley.edu/people/students/person_detail.php?person=370
Lab personal page: 
http://fisher.berkeley.edu/cteg/members/matzke.html
Lab phone: 510-643-6299
Dept. fax: 510-643-6264
Cell phone: 510-301-0179
Email: matzke at berkeley.edu

Mailing address:
Department of Integrative Biology
3060 VLSB #3140
Berkeley, CA 94720-3140

-----------------------------------------------------
"[W]hen people thought the earth was flat, they were wrong. 
When people thought the earth was spherical, they were 
wrong. But if you think that thinking the earth is spherical 
is just as wrong as thinking the earth is flat, then your 
view is wronger than both of them put together."

Isaac Asimov (1989). "The Relativity of Wrong." The 
Skeptical Inquirer, 14(1), 35-44. Fall 1989.
http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm



More information about the R-sig-Geo mailing list