[postgis-devel] [PostGIS] #1584: [raster] Improve raster documentation terminology and consistency
PostGIS
trac at osgeo.org
Fri Feb 17 08:57:02 PST 2012
#1584: [raster] Improve raster documentation terminology and consistency
-------------------------+--------------------------------------------------
Reporter: pracine | Owner: pracine
Type: enhancement | Status: new
Priority: medium | Milestone: PostGIS 2.0.0
Component: raster | Version: trunk
Keywords: |
-------------------------+--------------------------------------------------
If you have any opinion any of the 9 items below, please comment.
In the doc we often speak about the same concept in very different and
confounding terminology. I think it's about time we agree on some
definitions and terms and stick with them in the future. I could identify
many concepts with fuzzy definitions or terminology:
1) "scale", "skew", "rotation", "pixel width", "pixel height", "pixel
size" and "alignment"
Some sentences examples that seems misleading to me since "skew" is not
necessarily synonymous with "rotation":
-"Returns basic meta data about a raster object such as pixel size,
rotation (skew), upper, lower left, etc."
-"Returns the georeference X skew (or rotation parameter). "
Some examples of sentences that I have to scratch my head to understand:
-"In the common case where there is no skew, the pixel width is just the
scale ratio between geometric coordinates and raster pixels... "
-"Returns the uniform rotation of the raster" What is the meaning of
uniform?
Let me suggest some definitions for those terms so we can use them or
short version of them when appropriate in the doc. Let me know if you
think there are wrong or if you have a better set. they are all very much
linked together.
- "scalex": X component of the pixel width
- "scaley": Y component of the pixel height
- "skewx": X component of the pixel height
- "skewy": Y component of the pixel width
- "rotation": angle formed by the combination of scalex, scaley, skewx and
skewy when they do not twist the squared shape of the pixel
- "pixel width": horizontal length of a pixel formed by the scalex and the
skewy of the pixel
- "pixel height": vertical length of a pixel formed by the scaley and the
skewx of the pixel
- "pixel size": pixel width and pixel height of a pixel
- "uniform rotation": same as "rotation"
In ST_AsRaster we also introduce the "gridx" and "gridy" parameters which
are different from "upperleftx" and "upperlefty". I suggest we define them
like this:
-"upperleftx": X world coordinate of the upper left corner of a raster.
-"upperlefty": Y world coordinate of the upper left corner of a raster.
- gridx: X world coordinate of an arbitrary corner of an infinite grid
defining its location in space. Used with scale and skew to define a
general and infinite grid on which to align a raster.
- gridy: Y world coordinate of an arbitrary corner of an infinite grid
defining its location in space. Used with scale and skew to define a
general and infinite grid on which to align a raster.
That allows me to define alignment:
- "alignment": combination of gridx, gridy, scalex, scaley, skex and skewy
defining a general and infinite grid on which the borders of all the pixel
of a raster are aligned.
and
- "georeference": combinaison of upperleftx, upperlefty, scalex, scaley,
skex and skewy defining the position of the upper left corner of a raster
and the shape of the pixels constituting it.
2) "raster coordinates", "row" and "column" vs "world coordinates"
In the ST_World2RasterCoord() and ST_Raster2WorldCoord() series of
function we speak about "geometric X coordinate" and "rows" and "columns".
I personally find "world coordinates" and "raster coordinates" are more
clear and more in link with the name of the functions. I think also that
"raster column" is confusing with a "raster table column".
I would define:
-"raster coordinates": X and Y coordinates (or index) of a pixel in the
raster world.
-"world coordinates": X and Y coordinates of a point in a system
referencing points in the real world.
3) "tile" vs "block"
Both terms are used very often, sometimes in the same context.
"regular_blocking" for example is used in the context of the loader.
raster2pgsql help speaks about tiles but the doc about blocksize. I know
"blocksize" and "regular_blocking" came from Mateusz and "gdal".
The ArcGIS doc seems to use "block" and "tile" invariably.
Seems to me that "block" stick more with the idea of a "block" of memory
and "tile" more with the idea of a subdivided raster coverage, this is why
I prefer "tile".
Should we stick to one term in the doc? Which one do you prefer? Should we
change "regular_blocking" to "regular_tiling"?
4) "geometric units" vs "measurement unit"
What is the meaning of "geometric units"? Why not just "units" or
"measurement units"?
5) "nodata value" and "withdata value"
I think I invented the term "withdata value" in opposition to "nodata
value". Can we or not use it?
6) "variant" & "version"
Both term are used to describe an overload of a function. I think we
should stick with only one. Which one? I prefer "variant"...
7) "meta data" & "metadata"
I used to write "metadata" without space. Any opinion on that?
8) "PostgreSQL algebraic operation" vs "PostgreSQL SQL expression"
Seems to me that "PostgreSQL SQL expression" is more explicit?
9) Another thing is that rtpostgis.sql contains documentation, in form of
comments, for some function. Shall we remove them all or shall we add
commented documentation for every functions (at the risk of being
desynchronized with the official documentation)?
I volunteer to make changes to the documentation once we come to definite
definitions and terminology.
Thanks for your inputs.
--
Ticket URL: <http://trac.osgeo.org/postgis/ticket/1584>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.
More information about the postgis-devel
mailing list