[GRASS-user] open rasters at r.example

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>