Greetings all
I want to develop a few functions that I probably will need in a few months. So I decided to learn with r.example.
One of my first doubts is regarding functions name. For instance if I want to open a old file I use:
G_open_cell_old
But if I want to open a new file I use
G_open_raster_new
My question is why I use in one case “cell” and in the other case “raster” since they both refer to the same type of data (RASTER)? Because it exists a G_open_cell_new(). and it’s not being used.
Another question is regarding the functions: open(path, 0), refered by lots of functions from gis/open.c (e.g. G__open). I cannot find this function and fdopen(return fdopen(fd, “w”).
Where can I find these functions?
Thanks
Luis
Luis Lisboa wrote:
I want to develop a few functions that I probably will need in a few months.
So I decided to learn with r.example.
One of my first doubts is regarding functions name. For instance if I want
to open a old file I use:
G_open_cell_old
But if I want to open a new file I use
G_open_raster_new
My question is why I use in one case "cell" and in the other case "raster"
since they both refer to the same type of data (RASTER)? Because it exists
a G_open_cell_new() and it's not being used.
Historical reasons.
When you open an existing map, GRASS knows what type the map is
(integer or FP). When you open a new map, you have to specify whether
you want integer or FP.
Originally, GRASS only supported integer (CELL) rasters, with zero
often used as a "null" value. When FP and null support was added,
G_open_cell_old() was extended to handle FP rasters and integer
rasters with a null bitmap, as well as the old integer format (with
zero as null). For creating new maps, G_open_raster_new() was added,
which allows you to choose integer or FP, while the old
G_open_cell_new() was retained.
The same issue applies to e.g. G_get_map_row() (integer only, zero is
null) versus G_get_raster_row() etc (integer or FP, with distinct null
values).
Another question is regarding the functions: open(path, 0), refered by lots
of functions from gis/open.c (e.g. G__open). I cannot find this function and
fdopen(return fdopen(fd, "w").
Where can I find these functions?
open() and fdopen() are POSIX functions, provided by the OS's standard
C library (libc on Unix, MSVCRT on Windows).
--
Glynn Clements <glynn@gclements.plus.com>