Loading...
Searching...
No Matches
adj_cellhd.c File Reference

GIS Library - CELL header adjustment. More...

`#include <math.h>`
`#include <string.h>`
`#include <grass/gis.h>`
`#include <grass/glocale.h>`
Include dependency graph for adj_cellhd.c:

Go to the source code of this file.

## Macros

#define | LL_TOLERANCE 10

## Functions

void | G_adjust_Cell_head (struct Cell_head *cellhd, int row_flag, int col_flag)
| Adjust cell header.
void | G_adjust_Cell_head3 (struct Cell_head *cellhd, int row_flag, int col_flag, int depth_flag)
| Adjust cell header for 3D values.
int | G_adjust_window_ll (struct Cell_head *cellhd)
| Adjust window for lat/lon.

## Detailed Description

GIS Library - CELL header adjustment.

(C) 2001-2009 by the GRASS Development Team

This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.

Author
  Original author CERL

Definition in file adj_cellhd.c.

## Macro Definition Documentation

## LL_TOLERANCE

#define LL_TOLERANCE 10

Definition at line 19 of file adj_cellhd.c.

Referenced by G_lat_scan(), and G_lon_scan().

## Function Documentation

## G_adjust_Cell_head()

void G_adjust_Cell_head | ( | struct Cell_head * | cellhd,
|  | int | row_flag,
|  | int | col_flag )

Adjust cell header.

This function fills in missing parts of the input cell header (or region). It also makes projection-specific adjustments. The cellhd structure must have its north, south, east, west, and proj fields set.

If row_flag is true, then the north-south resolution is computed from the number of rows in the cellhd structure. Otherwise the number of rows is computed from the north-south resolution in the structure, similarly for col_flag and the number of columns and the east-west resolution.

Note: 3D values are not adjusted.

Parameters

  [in,out] | cellhd | pointer to Cell_head structure
  | row_flag | compute n-s resolution
  | col_flag | compute e-w resolution

Definition at line 51 of file adj_cellhd.c.

References G_fatal_error(), and G_verbose_message().

Referenced by G__read_Cell_head_array(), and G_set_window().

## G_adjust_Cell_head3()

void G_adjust_Cell_head3 | ( | struct Cell_head * | cellhd,
|  | int | row_flag,
|  | int | col_flag,
|  | int | depth_flag )

Adjust cell header for 3D values.

This function fills in missing parts of the input cell header (or region). It also makes projection-specific adjustments. The cellhd structure must have its north, south, east, west, and proj fields set.

If row_flag is true, then the north-south resolution is computed from the number of rows in the cellhd structure. Otherwise the number of rows is computed from the north-south resolution in the structure, similarly for col_flag and the number of columns and the east-west resolution.

If depth_flag is true, top-bottom resolution is calculated from depths. If depth_flag are false, number of depths is calculated from top-bottom resolution.

Warning
  This function can cause segmentation fault without any warning when it is called with Cell_head top and bottom set to zero.

Parameters

  [in,out] | cellhd | pointer to Cell_head structure
  | row_flag | compute n-s resolution
  | col_flag | compute e-w resolution
  | depth_flag | compute t-b resolution

Definition at line 163 of file adj_cellhd.c.

References G_fatal_error(), and G_verbose_message().

## G_adjust_window_ll()

int G_adjust_window_ll | ( | struct Cell_head * | cellhd | ) |

Adjust window for lat/lon.

This function tries to automatically fix fp precision issues and adjust rounding errors for lat/lon.

Note: 3D values are not adjusted.

Parameters

  [in,out] | cellhd | pointer to Cell_head structure

Returns
  1 if window was adjusted
  0 if window was not adjusted

Definition at line 552 of file adj_cellhd.c.

References G_fatal_error(), G_lat_format(), G_lat_scan(), G_llres_format(), G_llres_scan(), G_lon_format(), G_lon_scan(), and G_verbose_message().