[GRASS-dev] [GRASS GIS] #804: Implemenation of the Pareto Boundary (to support accuracy assessment of low resolution thematic maps)

#804: Implemenation of the Pareto Boundary (to support accuracy assessment of low
resolution thematic maps)
-----------------------------------------------------------------------------------------------------------+
Reporter: nikos | Owner: grass-dev@lists.osgeo.org
     Type: enhancement | Status: new
Priority: minor | Milestone: 6.4.0
Component: default | Version: unspecified
Keywords: pareto boundary, accuracy assessment, low resolution thematic maps, high resolution reference | Platform: Unspecified
      Cpu: Unspecified |
-----------------------------------------------------------------------------------------------------------+
It would be nice to have an "i.pareto" (?) module in GRASS which will
implement the Pareto Boundary.[[BR]]

The Pareto Boundary can be useful for the accuracy assessment of (all
kinds of) low resolution dichotomic maps and theoretically even maps with
multiple classes.[[BR]] Details can be found in a paper of Boschetti et
al. [1].[[BR]]

I've wrote some python and R scripts (attached) for my own use which are
(very) far from being (what I call) a generally useful program. I wish
some real programmer could implement this within grass (and R).

Thanks, Nikos

---[[BR]]
[1] Analysis of the conflict between omission and commission in low
spatial resolution dichotomic thematic products: The Pareto Boundary
Luigi Boschetti, Stephane P. Flasse, Pietro A. Brivio; published in
Remote Sensing of Environment 91 (2004) 280 – 292

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/804&gt;
GRASS GIS <http://grass.osgeo.org>

#804: Implemenation of the Pareto Boundary (to support accuracy assessment of low
resolution thematic maps)
--------------------------+-------------------------------------------------
  Reporter: nikos | Owner: grass-dev@lists.osgeo.org
      Type: enhancement | Status: new
  Priority: minor | Milestone: 6.4.0
Component: default | Version: unspecified
Resolution: | Keywords: pareto boundary, accuracy assessment, low resolution thematic maps, high resolution reference
  Platform: Unspecified | Cpu: Unspecified
--------------------------+-------------------------------------------------
Comment (by nikos):

Testing the scripts within the spearfish60 dataset (warning: too many
comments and print-outs):

{{{
# testing with spearfish60 data
grass64 /geo/grassdb/spearfish60/user1/

# set region to
g.region s=4925000 e=593500 n=4927000 w=590000 res=30 -p

# use sqlite db-backend
db.connect driver=sqlite
database=/geo/grassdb/spearfish60/PERMANENT/sqlite.db
db.connect -p

### prepare input files

# high resolution reference raster map will be
g.copy rast=landcover.30m,landcover_ref

# high resolution reference Class of Interest (to be assessed) will be
(e.g. rangeland)
r.mapcalc "landcover_refcoi = if(landcover.30m == 51 || landcover.30m ==
71 || landcover.30m == 81 || landcover.30m == 92, 2, null())"

# low resolution classification map 1 (to be assessed for accuracy) will
be
g.region res=100 -pa
r.mapcalc "pareto_classification_rangeland_1 = if (vegcover == 2, 2,
null())"

# prepare a 2nd classification map
g.copy
rast=pareto_classification_rangeland_1,pareto_classification_rangeland_2

# edit/ change 2nd map
d.rast.edit pareto_classification_rangeland_2
out=pareto_classification_rangeland_2_edited
g.remove pareto_classification_rangeland_2
g.rename
rast=pareto_classification_rangeland_2_edited,pareto_classification_rangeland_2

### extract omission and commission errors for pareto-optimal maps and
classifications

# step 1
python pareto_1_vectorise_rasters.py reference_raster=landcover_ref \
reference_coi_rasters=landcover_refcoi \
classification_rasters=pareto_classification_rangeland_1,pareto_classification_rangeland_2
--o

# step 2
python pareto_2_create_lowres_vector_grid.py highres=30 lowres=100 --o

# step 3
python pareto_3_count_pixels_within_gridcells.py --v

# step 4
python pareto_4_calculate_coi_percentages.py --v

# step 5
python pareto_5_populate_thresholds_and_classifications.py lowres=100 --v

# step 6
python pareto_6_populate_pareto_errors.py --v

# step 7
python pareto_7_populate_classification_errors.py --v

# step 8
python pareto_8_export_csv___spearfish60.py --o

### use epoxrted csv files to plot the Pareto Boundary (using the R
scripts within R)
}}}

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/804#comment:1&gt;
GRASS GIS <http://grass.osgeo.org>

#804: Implemenation of the Pareto Boundary (to support accuracy assessment of low
resolution thematic maps)
--------------------------+-------------------------------------------------
  Reporter: nikos | Owner: grass-dev@lists.osgeo.org
      Type: enhancement | Status: new
  Priority: minor | Milestone: 7.0.0
Component: Imagery | Version: unspecified
Resolution: | Keywords: pareto boundary, accuracy assessment, low resolution thematic maps, high resolution reference
  Platform: Unspecified | Cpu: Unspecified
--------------------------+-------------------------------------------------
Changes (by martinl):

  * component: default => Imagery
  * milestone: 6.4.0 => 7.0.0

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/804#comment:2&gt;
GRASS GIS <http://grass.osgeo.org>