[GRASS-dev] Re: [GRASS GIS] #668: export and share region settings
Michael Barton
michael.barton at asu.edu
Sun Jul 5 16:35:09 EDT 2009
On Jul 5, 2009, at 2:52 AM, grass-dev-request at lists.osgeo.org wrote:
> Date: Sat, 04 Jul 2009 23:28:46 +0200
> From: Tim Michelsen <timmichelsen at gmx-topmail.de>
> Subject: [GRASS-dev] Re: [GRASS GIS] #668: export and share region
> settings
> To: grass-dev at lists.osgeo.org
> Cc: grass-user at lists.osgeo.org
> Message-ID: <h2ohie$4iu$3 at ger.gmane.org>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
>> I don't understand what you want to do here.
> Image the following use case:
> You have project location.
> Then you would like to test out some new processing workflows or
> developed a new methodology.
> In order not to pollute the project location with a lot of test
> rasters,
> you start a new location to do the testing.
>
> It would be nice to have the save region settings available for /all/
> locations with the same projection.
>
>> If you are trying to use a region defined in one location within
>> another
>> location, you can do that--at your own risk. Just copy the region def
>> file from location1/mapset1 to location2/mapset2.
> What is wrong with making the files in
> location1/PERMANENT/windows
> available to all locations with the same project in the GRASS
> database?
>
> The region settings do not contain projection information.
> This may be changed in GRASS 7. Then, the GUI could show a list of
> region settings with the same projection when zooming to a saveed
> region
> setting.
>
> There may be many users (regional government offices, unis with
> studies
> in their neighborhood) how may also want this kind of sharing feature.
> This could increase usability of the map display in the GUI.
>
> The work the coders of the wxGUI did was a tremendous step towards
> this
> direction!
>
>> care. I know it can be annoying sometimes for people coming from
>> other
>> GIS programs, but GRASS has long had a philosophy of emphasizing the
>> importance of accurate digital mapping and cartography--something
>> that
>> is probably tied to its primarily scientific, rather than commercial,
>> development and use.
> Commercial users do also need the best accuracies.
> But they seem to have also a high focus on the usability and
> effectivity
> of use when performing all day tasks.
> And I cannot imagine that academia can affort wasting time in
> long-winded workflows.
>
>> The location/mapset structure is an important
>> aspect of maintaining that accuracy.
> Please let's not start flame wars here and put efforts & creativity
> in a
> concept on how to increase the usability and effectivity while
> maintaining the great flexibility, accuracy and traceability of GRASS.
>
>
>> As I tell frustrated students, a GIS is not like a word processor or
>> even a graphics program.
>
>
>
>> Although I, too, was initially turned off by this, I've become an
>> increasingly strong supporter of this approach over time. Sometimes I
>> even think that we would be better off to get away from all
>> semblance of
>> word processor and graphic programs in the UI in order to make
>> users to
>> think about GIS software differently.
> The problem is that creating some simple polygons in Google Earth and
> converting them to shapefiles via ogr2ogr gets you faster to a new
> layer
> (e.g. for masking) than digitizing with traditional GIS programs.
> Also, not geo-educated staff understands Geobrowser. And geographical
> analysis often relys in interdisciplinary exchange.
>
> Thanks for your views as experienced user.
>
> Best regards,
> Timmie
>
>
>
>
>
> ------------------------------
>
> Message: 6
> Date: Sat, 04 Jul 2009 13:16:51 +0200
> From: Tim Michelsen <timmichelsen at gmx-topmail.de>
> Subject: [GRASS-dev] Re: [GRASS GIS] #668: export and share region
> settings
> To: grass-dev at lists.osgeo.org
> Cc: grass-user at lists.osgeo.org
> Message-ID: <h2ogtl$3v0$3 at ger.gmane.org>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
>> I don't understand what you want to do here.
> Image the following use case:
> You have project location.
> Then you would like to test out some new processing workflows or
> developed a new methodology.
> In order not to pollute the project location with a lot of test
> rasters,
> you start a new location to do the testing.
>
> It would be nice to have the save region settings available for /all/
> locations with the same projection.
>
>> If you are trying to use a region defined in one location within
>> another
>> location, you can do that--at your own risk. Just copy the region def
>> file from location1/mapset1 to location2/mapset2.
> What is wrong with making the files in
> location1/PERMANENT/windows
> available to all locations with the same project in the GRASS
> database?
>
> The region settings do not contain projection information.
> This may be changed in GRASS 7. Then, the GUI could show a list of
> region settings with the same projection when zooming to a saveed
> region
> setting.
>
> There may be many users (regional government offices, unis with
> studies
> in their neighborhood) how may also want this kind of sharing feature.
> This could increase usability of the map display in the GUI.
>
> The work the coders of the wxGUI did was a tremendous step towards
> this
> direction!
>
>> care. I know it can be annoying sometimes for people coming from
>> other
>> GIS programs, but GRASS has long had a philosophy of emphasizing the
>> importance of accurate digital mapping and cartography--something
>> that
>> is probably tied to its primarily scientific, rather than commercial,
>> development and use.
> Commercial users do also need the best accuracies.
> But they seem to have also a high focus on the usability and
> effectivity
> of use when performing all day tasks.
> And I cannot imagine that academia can affort wasting time in
> long-winded workflows.
>
>> The location/mapset structure is an important
>> aspect of maintaining that accuracy.
> Please let's not start flame wars here and put efforts & creativity
> in a
> concept on how to increase the usability and effectivity while
> maintaining the great flexibility, accuracy and traceability of GRASS.
>
>
>> As I tell frustrated students, a GIS is not like a word processor or
>> even a graphics program.
>
>
>
>> Although I, too, was initially turned off by this, I've become an
>> increasingly strong supporter of this approach over time. Sometimes I
>> even think that we would be better off to get away from all
>> semblance of
>> word processor and graphic programs in the UI in order to make
>> users to
>> think about GIS software differently.
> The problem is that creating some simple polygons in Google Earth and
> converting them to shapefiles via ogr2ogr gets you faster to a new
> layer
> (e.g. for masking) than digitizing with traditional GIS programs.
> Also, not geo-educated staff understands Geobrowser. And geographical
> analysis often relys in interdisciplinary exchange.
>
> Thanks for your views as experienced user.
>
> Best regards,
> Timmie
>
I don't want to sound grouchy and so start with a couple of disclaimers.
1. One of the features of GRASS that I often tout to others is the
extent to which its capabilities are driven by the needs of the user
base. GRASS users are important for generating ideas for improvements
and new features, and for testing features. So I think that all user
suggestions should be carefully considered.
2. I'm a very strong proponent of a rich GUI environment for GRASS--
and have written a lot of the code to create such environments in
TclTk and wxPython
That said, I need to caution that just because something can be done
in the GUI, doesn't necessarily mean that it should be done. And just
because one user asks for a feature doesn't necessarily mean that this
is best for the larger GRASS user community.
In the last few days, a lot of requests for GUI features have been
made that implications for how users interact with the GIS Database/
Location/Mapset/region structure of GRASS. With GRASS 7 in
development, this is a good time to think about and discuss this
structure again. However, I'm not sure that simply responding
incrementally to feature requests is a good way to go about this. One
of the down sides of the way that GRASS has been developed is that a
historical lack of coordination in the development of modules,
libraries, and GUI has led to inconsistencies, hidden bugs, barely
comprehensible code, and other such problems. A lot of effort is being
made now to try and correct such problems.
If we want to consider loosening current restrictions on the way GRASS
works with its file structure, projections, and regions, that's fine.
But IMHO, we should do that explicitly rather than simply letting it
evolve as it will. Do we want to allow users to more easily switch
between locations or access files from multiple locations? If so, we
should probably find a way to build in safeguards to ensure
compatibility in projections so that we don't have to say 'do it at
your own risk'. If we don't want to do this, then we should not
implement backdoor methods via the GUI.
EPSG codes are a great convenience for setting projections
**sometimes** but not always. Do we want to make more use of these? If
so, then we should probably store the EPSG code in the PROJ_INFO file,
where it is available to any module that needs it rather than using
the GUI to track it.
Region portability could be useful. But how useful for how many users?
It can also be dangerous since region extents in one projection will
not correspond with the same extents in a different projection. If we
want to make regions more portable, it might be better to alter
g.region than to do this via the GUI.
Raster portability is also on the horizon with the restructuring of
the file structure. But we need to do this in a coordinated way rather
than hack it through the GUI.
Given the connection between the GRASS file structure and the way the
software manages projections and maintains geospatial accuracy, asking
that we consider these issues more carefully is not starting a flame
war. It is simply prudent.
The other issue to consider is GUI complexity. Over the 5 years I've
been coding the GUI, I've learned that it is a very tightly integrated
and very complex system. Adding or changing a feature in one place
runs a very real risk of breaking something somewhere else. And the
more features added, the greater the risk--and the harder it becomes
to track down the source of a broken feature. As much as I continue to
support the ongoing development of a rich GUI, we don't want a buggy
one. All changes need to be tested across multiple platforms now. And
with Martin as still the only one actively coding the GUI right now
since my summer research/travel schedule has changed, we're pretty
short handed. So while Martin should get to choose what he wants to
work on and do things that he enjoys, it's getting to a point that we
might want to start setting some priorities for GUI coding--both bug
fixing and enhancements. For example, there are still features that we
are losing with the interactive xwin interface that have not yet been
reimplemented in wxPython (e.g., training set creation for image
classification and orthophoto rectification). Should these get a
higher priority? In last year's Google SoC, Martin produced a
fantastic, integrated 3D display. A lot of the initially bugs have
been resolved, but it still doesn't work in Windows and is lacking
many of the features of NVIZ. Should this be prioritized? Which GUI
bugs should take the highest priority? And should bug fixing take
precedence over rounding out the GUI features? That is, it is now time
for the wxPython GUI to switch from experimental to developmental
mode. Adding at least a little bit of structure would help me decide
where to start and be most effective, at least, when I have time to do
some more coding. It would also be helpful to anyone else who is able
to help with the GUI coding. In appealing for a little more structure
for continued GUI development, I think it would be best if this could
be more of a group effort among the dev team. I'm not sure how best to
organize this but think I should at least put the idea out there. We
started a list in the WIKI when the new GUI project launched. We've
accomplished a lot of this, but not all--and the new GUI has opened up
new possibilities. GRASS has come a long way in usability in the last
few years and I'd hate to lose the momentum and direction we've
achieved.
Cheers
Michael
More information about the grass-dev
mailing list