GRASS GIS 8 Programmer's Manual
8.5.0dev(2024)-57a646b4a4
|
GProj library - Functions for reading datum parameters from the location database. More...
#include <unistd.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <grass/gis.h>
#include <grass/glocale.h>
#include <grass/gprojects.h>
#include "local_proto.h"
Go to the source code of this file.
Functions | |
int | GPJ_get_datum_by_name (const char *name, struct gpj_datum *dstruct) |
Look up a string in datum.table file to see if it is a valid datum name and if so place its information into a gpj_datum struct. More... | |
int | GPJ_get_default_datum_params_by_name (const char *name, char **params) |
"Last resort" function to retrieve a "default" set of datum parameters for a datum (N.B. there really is no such thing as a catch-all default!) More... | |
int | GPJ_get_datum_params (char **name, char **params) |
Extract the datum transformation-related parameters for the current location. More... | |
int | GPJ__get_datum_params (const struct Key_Value *projinfo, char **datumname, char **params) |
Extract the datum transformation-related parameters from a set of general PROJ_INFO parameters. More... | |
struct gpj_datum_transform_list * | GPJ_get_datum_transform_by_name (const char *inputname) |
Internal function to find all possible sets of transformation parameters for a particular datum. More... | |
void | GPJ_free_datum_transform (struct gpj_datum_transform_list *item) |
Free the memory used by a gpj_datum_transform_list struct. More... | |
struct datum_list * | read_datum_table (void) |
Read the current GRASS datum.table from disk and store in memory. More... | |
void | GPJ_free_datum (struct gpj_datum *dstruct) |
Free the memory used for the strings in a gpj_datum struct. More... | |
void | free_datum_list (struct datum_list *dstruct) |
Free the memory used by a datum_list linked list structure. More... | |
GProj library - Functions for reading datum parameters from the location database.
(C) 2003-2008 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.
Definition in file proj/datum.c.
void free_datum_list | ( | struct datum_list * | dstruct | ) |
Free the memory used by a datum_list linked list structure.
dstruct | datum_list struct to be freed |
Definition at line 410 of file proj/datum.c.
References G_free(), and NULL.
Referenced by GPJ_get_datum_by_name().
int GPJ__get_datum_params | ( | const struct Key_Value * | projinfo, |
char ** | datumname, | ||
char ** | params | ||
) |
Extract the datum transformation-related parameters from a set of general PROJ_INFO parameters.
This function can be used to test if a location's co-ordinate system set-up supports datum transformation.
projinfo | Set of key_value pairs containing projection information in PROJ_INFO file format |
datumname | Pointer to a pointer which will have memory allocated and into which a string containing the datum name (if present) will be placed. Otherwise set to NULL. |
params | Pointer to a pointer which will have memory allocated and into which a string containing the datum parameters (if present) will be placed. Otherwise set to NULL. |
Definition at line 173 of file proj/datum.c.
References G_asprintf(), G_debug(), G_find_key_value(), G_store(), and NULL.
Referenced by GPJ_get_datum_params(), and GPJ_osr_to_grass().
void GPJ_free_datum | ( | struct gpj_datum * | dstruct | ) |
Free the memory used for the strings in a gpj_datum struct.
dstruct | gpj_datum struct to be freed |
Definition at line 396 of file proj/datum.c.
References gpj_datum::ellps, G_free(), gpj_datum::longname, and gpj_datum::name.
void GPJ_free_datum_transform | ( | struct gpj_datum_transform_list * | item | ) |
Free the memory used by a gpj_datum_transform_list struct.
item | gpj_datum_transform_list struct to be freed |
Definition at line 323 of file proj/datum.c.
References gpj_datum_transform_list::comment, G_free(), gpj_datum_transform_list::params, and gpj_datum_transform_list::where_used.
Referenced by GPJ_get_default_datum_params_by_name().
int GPJ_get_datum_by_name | ( | const char * | name, |
struct gpj_datum * | dstruct | ||
) |
Look up a string in datum.table file to see if it is a valid datum name and if so place its information into a gpj_datum struct.
name | String containing datum name to look up |
dstruct | gpj_datum struct into which datum parameters will be placed if found |
Definition at line 38 of file proj/datum.c.
References gpj_datum::dx, gpj_datum::dy, gpj_datum::dz, gpj_datum::ellps, free_datum_list(), G_store(), G_strcasecmp(), list, gpj_datum::longname, gpj_datum::name, name, NULL, and read_datum_table().
int GPJ_get_datum_params | ( | char ** | name, |
char ** | params | ||
) |
Extract the datum transformation-related parameters for the current location.
This function can be used to test if a location's co-ordinate system set-up supports datum transformation.
name | Pointer to a pointer which will have memory allocated and into which a string containing the datum name (if present) will be placed. Otherwise set to NULL. |
params | Pointer to a pointer which will have memory allocated and into which a string containing the datum parameters (if present) will be placed. Otherwise set to NULL. |
Definition at line 135 of file proj/datum.c.
References G_free_key_value(), G_get_projinfo(), GPJ__get_datum_params(), and name.
struct gpj_datum_transform_list* GPJ_get_datum_transform_by_name | ( | const char * | inputname | ) |
Internal function to find all possible sets of transformation parameters for a particular datum.
inputname | String containing the datum name we are going to look up parameters for |
Definition at line 237 of file proj/datum.c.
References file, and GPATH_MAX.
Referenced by GPJ_get_default_datum_params_by_name().
int GPJ_get_default_datum_params_by_name | ( | const char * | name, |
char ** | params | ||
) |
"Last resort" function to retrieve a "default" set of datum parameters for a datum (N.B. there really is no such thing as a catch-all default!)
Kind of a "last resort" function as there really is no such thing as a default set of datum transformation parameters. Only should really be used where user interaction to choose a set of parameters is not desirable. Use of this function is not likely to result in selection of the optimum set of datum transformation parameters for the location
name | String containing GRASS datum name for which default parameters are to be retrieved |
params | Pointer to a pointer which will have memory allocated and into which a string containing the datum parameters (if present) will be placed |
Definition at line 86 of file proj/datum.c.
References count, G_store(), GPJ_free_datum_transform(), GPJ_get_datum_transform_by_name(), list, name, NULL, and gpj_datum_transform_list::params.
struct datum_list* read_datum_table | ( | void | ) |
Read the current GRASS datum.table from disk and store in memory.
The datum information is stored in a datum_list linked list structure.
Definition at line 342 of file proj/datum.c.
References file, and GPATH_MAX.
Referenced by GPJ_get_datum_by_name().