GRASS GIS 8 Programmer's Manual  8.2.2dev(2023)-3d2c704037
defs/imagery.h
Go to the documentation of this file.
1 #ifndef GRASS_IMAGEDEFS_H
2 #define GRASS_IMAGEDEFS_H
3 
4 /* alloc.c */
5 void *I_malloc(size_t);
6 void *I_realloc(void *, size_t);
7 int I_free(void *);
8 double **I_alloc_double2(int, int);
9 int *I_alloc_int(int);
10 int **I_alloc_int2(int, int);
11 int I_free_int2(int **);
12 int I_free_double2(double **);
13 double ***I_alloc_double3(int, int, int);
14 int I_free_double3(double ***);
15 
16 /* eol.c */
17 int I_get_to_eol(char *, int, FILE *);
18 
19 /* find.c */
20 int I_find_group(const char *);
21 int I_find_group2(const char *, const char *);
22 int I_find_group_file(const char *, const char *);
23 int I_find_group_file2(const char *, const char *, const char *);
24 int I_find_subgroup(const char *, const char *);
25 int I_find_subgroup2(const char *, const char *, const char *);
26 int I_find_subgroup_file(const char *, const char *, const char *);
27 int I_find_subgroup_file2(const char *, const char *, const char *, const char *);
28 const char *I_find_signature(I_SIGFILE_TYPE, char *, const char *);
29 const char *I_find_signature2(I_SIGFILE_TYPE, const char *, const char *);
30 
31 /* fopen.c */
32 FILE *I_fopen_group_file_new(const char *, const char *);
33 FILE *I_fopen_group_file_append(const char *, const char *);
34 FILE *I_fopen_group_file_old(const char *, const char *);
35 FILE *I_fopen_group_file_old2(const char *, const char *, const char *);
36 FILE *I_fopen_subgroup_file_new(const char *, const char *, const char *);
37 FILE *I_fopen_subgroup_file_append(const char *, const char *, const char *);
38 FILE *I_fopen_subgroup_file_old(const char *, const char *, const char *);
39 FILE *I_fopen_subgroup_file_old2(const char *, const char *, const char *, const char *);
40 
41 /* georef.c */
42 int I_compute_georef_equations(struct Control_Points *, double *, double *,
43  double *, double *, int);
44 int I_georef(double, double, double *, double *, double *, double *, int);
45 
46 /* georef_tps.c */
47 int I_compute_georef_equations_tps(struct Control_Points *, double **, double **,
48  double **, double **);
49 int I_georef_tps(double, double, double *, double *, double *, double *,
50  struct Control_Points *, int);
51 
52 /* group.c */
53 int I_get_group(char *);
54 int I_put_group(const char *);
55 int I_get_subgroup(const char *, char *);
56 int I_put_subgroup(const char *, const char *);
57 int I_get_group_ref(const char *, struct Ref *);
58 int I_get_group_ref2(const char *, const char *, struct Ref *);
59 int I_get_subgroup_ref(const char *, const char *, struct Ref *);
60 int I_get_subgroup_ref2(const char *, const char *, const char *, struct Ref *);
61 int I_init_ref_color_nums(struct Ref *);
62 int I_put_group_ref(const char *, const struct Ref *);
63 int I_put_subgroup_ref(const char *, const char *, const struct Ref *);
64 int I_add_file_to_group_ref(const char *, const char *, struct Ref *);
65 int I_transfer_group_ref_file(const struct Ref *, int, struct Ref *);
66 int I_init_group_ref(struct Ref *);
67 int I_free_group_ref(struct Ref *);
68 
69 /* iclass.c */
70 struct Map_info;
71 int I_iclass_analysis(IClass_statistics *, struct Ref *, struct Map_info *, const char *, const char *, const char *);
72 int I_iclass_init_group(const char *, const char *, struct Ref *);
73 void I_iclass_create_raster(IClass_statistics *, struct Ref *, const char *);
74 
75 /* iclass_statistics.c */
78 void I_iclass_statistics_get_name(IClass_statistics *, const char **);
90 int I_iclass_statistics_get_histo(IClass_statistics *, int, int, int *);
91 int I_iclass_statistics_get_product(IClass_statistics *, int, int, float *);
92 void I_iclass_init_statistics(IClass_statistics *, int, const char *, const char *, float);
94 
95 /* iclass_signatures.c */
96 int I_iclass_init_signatures(struct Signature *, struct Ref *);
98 int I_iclass_write_signatures(struct Signature *, const char *);
99 
100 /* list_gp.c */
101 int I_list_group(const char *, const struct Ref *, FILE *);
102 int I_list_group_simple(const struct Ref *, FILE *);
103 void I__list_group_name_fit(char *, const char *, const char *);
104 
105 /* list_subgp.c */
106 char ** I_list_subgroups(const char *, int *);
107 char ** I_list_subgroups2(const char *, const char *, int *);
108 int I_list_subgroup(const char *, const char *, const struct Ref *, FILE *);
109 int I_list_subgroup_simple(const struct Ref *, FILE *);
110 
111 /* loc_info.c */
112 char *I_location_info(const char *);
113 
114 /* points.c */
115 int I_new_control_point(struct Control_Points *, double, double, double,
116  double, int);
117 int I_get_control_points(const char *, struct Control_Points *);
118 int I_put_control_points(const char *, const struct Control_Points *);
119 
120 /* ref.c */
121 FILE *I_fopen_group_ref_new(const char *);
122 FILE *I_fopen_group_ref_old(const char *);
123 FILE *I_fopen_group_ref_old2(const char *, const char *);
124 FILE *I_fopen_subgroup_ref_new(const char *, const char *);
125 FILE *I_fopen_subgroup_ref_old(const char *, const char *);
126 FILE *I_fopen_subgroup_ref_old2(const char *, const char *, const char *);
127 
128 /* iscatt_structs.c */
129 void I_sc_init_cats(struct scCats *, int, int);
130 void I_sc_free_cats(struct scCats *);
131 int I_sc_add_cat(struct scCats *);
132 int I_sc_insert_scatt_data(struct scCats *, struct scdScattData *, int, int);
133 
134 void I_scd_init_scatt_data(struct scdScattData *, int, int, void *);
135 
136 /* iscatt_core.c */
137 int I_compute_scatts(struct Cell_head *, struct scCats *, const char **,
138  const char **, int, struct scCats *, const char **);
139 
140 int I_create_cat_rast(struct Cell_head *, const char *);
141 int I_insert_patch_to_cat_rast(const char *, struct Cell_head *, const char *);
142 
143 int I_id_scatt_to_bands(const int, const int, int *, int *);
144 int I_bands_to_id_scatt(const int, const int, const int, int *);
145 
146 int I_merge_arrays(unsigned char *, unsigned char *, unsigned, unsigned, double);
147 int I_apply_colormap(unsigned char *, unsigned char *, unsigned, unsigned char *, unsigned char *);
148 int I_rasterize(double *, int, unsigned char, struct Cell_head *, unsigned char *);
149 
150 /* manage_signatures.c */
153 int I_signatures_remove(I_SIGFILE_TYPE, const char *);
154 int I_signatures_copy(I_SIGFILE_TYPE, const char *, const char *, const char *);
155 int I_signatures_rename(I_SIGFILE_TYPE, const char *, const char *);
156 int I_signatures_list_by_type(I_SIGFILE_TYPE, const char *, char ***);
157 void I_free_signatures_list(int, char ***);
158 
159 /* sig.c */
160 int I_init_signatures(struct Signature *, int);
161 int I_new_signature(struct Signature *);
162 int I_free_signatures(struct Signature *);
163 int I_read_one_signature(FILE *, struct Signature *);
164 int I_read_signatures(FILE *, struct Signature *);
165 int I_write_signatures(FILE *, struct Signature *);
166 char **I_sort_signatures_by_semantic_label(struct Signature *, const struct Ref *);
167 
168 /* sigfile.c */
169 FILE *I_fopen_signature_file_new(const char *);
170 FILE *I_fopen_signature_file_old(const char *);
171 
172 /* sigset.c */
173 int I_SigSetNClasses(struct SigSet *);
174 struct ClassData *I_AllocClassData(struct SigSet *, struct ClassSig *, int);
175 int I_InitSigSet(struct SigSet *, int);
176 struct ClassSig *I_NewClassSig(struct SigSet *);
177 struct SubSig *I_NewSubSig(struct SigSet *, struct ClassSig *);
178 int I_ReadSigSet(FILE *, struct SigSet *) WARN_UNUSED_RESULT;
179 int I_SetSigTitle(struct SigSet *, const char *);
180 const char *I_GetSigTitle(const struct SigSet *);
181 int I_SetClassTitle(struct ClassSig *, const char *);
182 const char *I_GetClassTitle(const struct ClassSig *);
183 int I_WriteSigSet(FILE *, const struct SigSet *);
184 char **I_SortSigSetBySemanticLabel(struct SigSet *, const struct Ref *);
185 
186 /* sigsetfile.c */
187 FILE *I_fopen_sigset_file_new(const char *);
188 FILE *I_fopen_sigset_file_old(const char *);
189 
190 /* target.c */
191 int I_get_target(const char *, char *, char *);
192 int I_put_target(const char *, const char *, const char *);
193 
194 /* title.c */
195 int I_get_group_title(const char *, char *, int);
196 int I_put_group_title(const char *, const char *);
197 
198 /* var.c */
199 double I_variance(double, double, int);
200 double I_stddev(double, double, int);
201 
202 #endif
const char * I_GetClassTitle(const struct ClassSig *)
Definition: sigset.c:388
const char * I_find_signature2(I_SIGFILE_TYPE, const char *, const char *)
Find mapset containing signature (look but don't touch)
Definition: imagery/find.c:240
void I_scd_init_scatt_data(struct scdScattData *, int, int, void *)
Insert scatter plot data.
FILE * I_fopen_group_ref_old(const char *)
Definition: ref.c:30
char ** I_SortSigSetBySemanticLabel(struct SigSet *, const struct Ref *)
Reorder struct SigSet to match imagery group member order.
Definition: sigset.c:475
int I_get_target(const char *, char *, char *)
read target information
Definition: target.c:22
int I_iclass_statistics_get_max(IClass_statistics *, int, int *)
Get maximum value in band.
int I_find_group(const char *)
does group exist?
Definition: imagery/find.c:22
int I_free(void *)
Definition: imagery/alloc.c:24
int I_put_group_ref(const char *, const struct Ref *)
write group REF file
Definition: group.c:318
void I_iclass_statistics_get_ncells(IClass_statistics *, int *)
Get number of cells in training areas.
#define WARN_UNUSED_RESULT
Generate warning if function return value is unused.
Definition: gis.h:84
FILE * I_fopen_group_ref_old2(const char *, const char *)
Definition: ref.c:35
int I_InitSigSet(struct SigSet *, int)
Initialize struct SigSet before use.
Definition: sigset.c:65
int I_sc_insert_scatt_data(struct scCats *, struct scdScattData *, int, int)
Insert scatter plot data . Inserted scatt_data struct must have same type as cats struct (SC_SCATT_DA...
int I_transfer_group_ref_file(const struct Ref *, int, struct Ref *)
copy Ref lists
Definition: group.c:448
int I_read_signatures(FILE *, struct Signature *)
Read signatures from file.
Definition: sig.c:141
struct ClassSig * I_NewClassSig(struct SigSet *)
Definition: sigset.c:78
Definition: imagery.h:72
void I_iclass_add_signature(struct Signature *, IClass_statistics *)
Add one signature.
2D/3D raster map header (used also for region)
Definition: gis.h:423
int I_free_group_ref(struct Ref *)
free Ref structure
Definition: group.c:502
int I_compute_georef_equations_tps(struct Control_Points *, double **, double **, double **, double **)
Definition: georef_tps.c:113
int I_free_double3(double ***)
int ** I_alloc_int2(int, int)
Definition: imagery/alloc.c:67
int I_iclass_statistics_get_range_min(IClass_statistics *, int, int *)
Get minimum cell value based on mean and standard deviation for band.
int I_get_subgroup(const char *, char *)
Definition: group.c:68
int I_signatures_copy(I_SIGFILE_TYPE, const char *, const char *, const char *)
Copy a signature file.
int I_read_one_signature(FILE *, struct Signature *)
Definition: sig.c:84
struct ClassData * I_AllocClassData(struct SigSet *, struct ClassSig *, int)
Definition: sigset.c:44
void * I_realloc(void *, size_t)
Definition: imagery/alloc.c:16
FILE * I_fopen_group_file_old(const char *, const char *)
Open group file for reading.
Definition: fopen.c:105
Definition: imagery.h:26
int I_apply_colormap(unsigned char *, unsigned char *, unsigned, unsigned char *, unsigned char *)
Apply colromap to the raster.
Definition: iscatt_core.c:905
void I_iclass_create_raster(IClass_statistics *, struct Ref *, const char *)
Create raster map based on statistics.
Definition: iclass.c:163
double I_variance(double, double, int)
Definition: var.c:8
void I_iclass_init_statistics(IClass_statistics *, int, const char *, const char *, float)
Initialize statistics.
int I_find_subgroup_file(const char *, const char *, const char *)
Searches for a subgroup file in the current mapset.
Definition: imagery/find.c:135
void I_sc_init_cats(struct scCats *, int, int)
Initialize structure for storing scatter plots data.
int I_sc_add_cat(struct scCats *)
Add category.
int I_find_group_file(const char *, const char *)
Searches for a group file in the current mapset.
Definition: imagery/find.c:53
int I_iclass_statistics_get_product(IClass_statistics *, int, int, float *)
Get product value.
int I_georef_tps(double, double, double *, double *, double *, double *, struct Control_Points *, int)
Definition: georef_tps.c:65
void I_iclass_free_statistics(IClass_statistics *)
Free space allocated for statistics attributes.
int I_SetClassTitle(struct ClassSig *, const char *)
Definition: sigset.c:377
FILE * I_fopen_group_ref_new(const char *)
Definition: ref.c:25
int I_new_control_point(struct Control_Points *, double, double, double, double, int)
add new control point
Definition: points.c:57
FILE * I_fopen_subgroup_ref_old2(const char *, const char *, const char *)
Definition: ref.c:62
int I_find_subgroup_file2(const char *, const char *, const char *, const char *)
Searches for a subgroup file in the specified mapset.
Definition: imagery/find.c:163
int I_put_group(const char *)
Definition: group.c:55
int I_find_subgroup2(const char *, const char *, const char *)
Searches for a subgroup in specified mapset or any mapset if mapset is not set.
Definition: imagery/find.c:111
void I_iclass_statistics_get_name(IClass_statistics *, const char **)
Get category (class) name.
int I_iclass_write_signatures(struct Signature *, const char *)
Write signtures to signature file.
void I_iclass_statistics_get_nbands(IClass_statistics *, int *)
Get number of bands.
int I_signatures_rename(I_SIGFILE_TYPE, const char *, const char *)
Rename a signature file.
int I_find_group_file2(const char *, const char *, const char *)
Searches for a group file in the specified mapset.
Definition: imagery/find.c:70
int I_SigSetNClasses(struct SigSet *)
Definition: sigset.c:32
int I_WriteSigSet(FILE *, const struct SigSet *)
Definition: sigset.c:396
int I_get_group_ref2(const char *, const char *, struct Ref *)
read group REF file
Definition: group.c:133
int I_put_target(const char *, const char *, const char *)
write target information
Definition: target.c:62
int I_merge_arrays(unsigned char *, unsigned char *, unsigned, unsigned, double)
Merge arrays according to opacity. Every pixel in array must be represented by 4 values (RGBA)...
Definition: iscatt_core.c:862
int I_signatures_remove(I_SIGFILE_TYPE, const char *)
Remove a signature file.
int I_iclass_statistics_get_stddev(IClass_statistics *, int, float *)
Get standard deviation of cell category values in band.
int I_list_subgroup_simple(const struct Ref *, FILE *)
Prints maps in a subgroup (simple version)
Definition: list_subgp.c:134
int I_put_subgroup(const char *, const char *)
Definition: group.c:87
int I_put_control_points(const char *, const struct Control_Points *)
write group control points
Definition: points.c:153
int I_list_subgroup(const char *, const char *, const struct Ref *, FILE *)
Prints maps in a subgroup (fancy version)
Definition: list_subgp.c:82
int I_list_group(const char *, const struct Ref *, FILE *)
Prints maps in a group (fancy version)
Definition: list_gp.c:26
void I_iclass_statistics_get_nstd(IClass_statistics *, float *)
Get the multiplier of standard deviation.
int I_compute_scatts(struct Cell_head *, struct scCats *, const char **, const char **, int, struct scCats *, const char **)
Compute scatter plots data.
Definition: iscatt_core.c:695
int I_iclass_statistics_get_sum(IClass_statistics *, int, float *)
Get sum of values in band.
int I_get_subgroup_ref(const char *, const char *, struct Ref *)
read subgroup REF file
Definition: group.c:153
char ** I_list_subgroups(const char *, int *)
Get list of subgroups which a group contatins.
Definition: list_subgp.c:52
void I_free_signatures_list(int, char ***)
Free memory allocated by I_signatures_list_by_type.
int I_iclass_statistics_get_histo(IClass_statistics *, int, int, int *)
Get histogram value in band.
int I_free_int2(int **)
Definition: imagery/alloc.c:86
int I_compute_georef_equations(struct Control_Points *, double *, double *, double *, double *, int)
FILE * I_fopen_signature_file_new(const char *)
Create signature file.
Definition: sigfile.c:28
void I_sc_free_cats(struct scCats *)
Free data of struct scCats, the structure itself remains allocated.
int I_put_subgroup_ref(const char *, const char *, const struct Ref *)
write subgroup REF file
Definition: group.c:340
void I_iclass_statistics_get_cat(IClass_statistics *, int *)
Get category (class).
void I_iclass_statistics_get_color(IClass_statistics *, const char **)
Get category (class) color.
char ** I_list_subgroups2(const char *, const char *, int *)
Get list of subgroups which a group contatins.
Definition: list_subgp.c:67
int I_init_ref_color_nums(struct Ref *)
Definition: group.c:260
int I_find_group2(const char *, const char *)
Does the group exists?
Definition: imagery/find.c:41
FILE * I_fopen_subgroup_file_old(const char *, const char *, const char *)
Definition: fopen.c:171
int * I_alloc_int(int)
Definition: imagery/alloc.c:54
FILE * I_fopen_subgroup_ref_old(const char *, const char *)
Definition: ref.c:54
int I_bands_to_id_scatt(const int, const int, const int, int *)
Compute scatter plot id from band ids.
int I_id_scatt_to_bands(const int, const int, int *, int *)
Compute band ids from scatter plot id.
char * I_location_info(const char *)
Definition: loc_info.c:6
FILE * I_fopen_subgroup_file_append(const char *, const char *, const char *)
Definition: fopen.c:149
Vector map info.
Definition: dig_structs.h:1259
FILE * I_fopen_signature_file_old(const char *)
Open existing signature file.
Definition: sigfile.c:54
int I_iclass_statistics_get_mean(IClass_statistics *, int, float *)
Get mean of cell category values in band.
FILE * I_fopen_group_file_new(const char *, const char *)
Definition: fopen.c:70
int I_add_file_to_group_ref(const char *, const char *, struct Ref *)
add file name to Ref structure
Definition: group.c:396
int I_get_group(char *)
Definition: group.c:38
int I_free_signatures(struct Signature *)
Free memory allocated for struct Signature.
Definition: sig.c:59
double I_stddev(double, double, int)
Definition: var.c:16
FILE * I_fopen_sigset_file_new(const char *)
Create new sigset file.
Definition: sigsetfile.c:28
char ** I_sort_signatures_by_semantic_label(struct Signature *, const struct Ref *)
Reorder struct Signature to match imagery group member order.
Definition: sig.c:300
int I_iclass_init_group(const char *, const char *, struct Ref *)
Read files for the specified group subgroup into the Ref structure.
Definition: iclass.c:110
struct SubSig * I_NewSubSig(struct SigSet *, struct ClassSig *)
Definition: sigset.c:98
int I_iclass_statistics_get_min(IClass_statistics *, int, int *)
Get minimum value in band.
int I_get_group_title(const char *, char *, int)
Definition: title.c:5
int I_signatures_list_by_type(I_SIGFILE_TYPE, const char *, char ***)
Get list of existing signatures by type.
int I_put_group_title(const char *, const char *)
Definition: title.c:22
int I_get_subgroup_ref2(const char *, const char *, const char *, struct Ref *)
read subgroup REF file
Definition: group.c:174
void I_make_signatures_dir(I_SIGFILE_TYPE)
Make signature dir.
int I_rasterize(double *, int, unsigned char, struct Cell_head *, unsigned char *)
Wrapper for using of iclass perimeter rasterization by scatter plot. Warning: calls Rast_set_window...
Definition: iscatt_core.c:948
int I_list_group_simple(const struct Ref *, FILE *)
Prints maps in a group (simple version)
Definition: list_gp.c:74
FILE * I_fopen_subgroup_ref_new(const char *, const char *)
Definition: ref.c:49
void I_get_signatures_dir(char *, I_SIGFILE_TYPE)
Get signature directory.
const char * I_find_signature(I_SIGFILE_TYPE, char *, const char *)
Find mapset containing signature file.
Definition: imagery/find.c:205
FILE * I_fopen_group_file_old2(const char *, const char *, const char *)
Open group file for reading.
Definition: fopen.c:121
double *** I_alloc_double3(int, int, int)
FILE * I_fopen_sigset_file_old(const char *)
Open existing sigset signature file.
Definition: sigsetfile.c:50
int I_ReadSigSet(FILE *, struct SigSet *) WARN_UNUSED_RESULT
Read sigset signatures from file.
Definition: sigset.c:144
int I_init_group_ref(struct Ref *)
initialize Ref structure
Definition: group.c:483
int I_insert_patch_to_cat_rast(const char *, struct Cell_head *, const char *)
Insert raster map patch into pgm file.
Definition: iscatt_core.c:236
FILE * I_fopen_subgroup_file_new(const char *, const char *, const char *)
Definition: fopen.c:127
int I_SetSigTitle(struct SigSet *, const char *)
Definition: sigset.c:358
int I_new_signature(struct Signature *)
Definition: sig.c:29
void I_iclass_statistics_set_nstd(IClass_statistics *, float)
Set the multiplier of standard deviation.
FILE * I_fopen_subgroup_file_old2(const char *, const char *, const char *, const char *)
Definition: fopen.c:177
int I_georef(double, double, double *, double *, double *, double *, int)
int I_get_to_eol(char *, int, FILE *)
Definition: eol.c:12
int I_get_group_ref(const char *, struct Ref *)
read group REF file
Definition: group.c:114
void * I_malloc(size_t)
Definition: imagery/alloc.c:6
int I_iclass_init_signatures(struct Signature *, struct Ref *)
Initialize signatures.
int I_free_double2(double **)
const char * I_GetSigTitle(const struct SigSet *)
Definition: sigset.c:369
int I_create_cat_rast(struct Cell_head *, const char *)
Create category raster conditions file. The file is used for holding selected areas from mapwindow...
Definition: iscatt_core.c:58
int I_find_subgroup(const char *, const char *)
Searches for a subgroup in the current mapset.
Definition: imagery/find.c:88
void I__list_group_name_fit(char *, const char *, const char *)
Formats map name to fit in a 80 column layout.
Definition: list_gp.c:98
int I_init_signatures(struct Signature *, int)
Initialize struct Signature before use.
Definition: sig.c:14
double ** I_alloc_double2(int, int)
Definition: imagery/alloc.c:33
int I_write_signatures(FILE *, struct Signature *)
Write signatures to file.
Definition: sig.c:228
I_SIGFILE_TYPE
Definition: imagery.h:202
FILE * I_fopen_group_file_append(const char *, const char *)
Definition: fopen.c:83
int I_iclass_analysis(IClass_statistics *, struct Ref *, struct Map_info *, const char *, const char *, const char *)
Calculates statistical values for one class and multiple bands based on training areas.
Definition: iclass.c:50
int I_iclass_statistics_get_range_max(IClass_statistics *, int, int *)
Get maximum cell value based on mean and standard deviation for band.
int I_get_control_points(const char *, struct Control_Points *)
read group control points
Definition: points.c:117