netzel commited on 2024-11-18 12:37:21
Showing 1 changed files, with 22 additions and 14 deletions.
... | ... |
@@ -110,6 +110,9 @@ double calc(EZGDAL_FRAME *f, double **mtx, int **visible) { |
110 | 110 |
return v; |
111 | 111 |
} |
112 | 112 |
|
113 |
+int quiet_val = 0; |
|
114 |
+ |
|
115 |
+ |
|
113 | 116 |
/********************************** |
114 | 117 |
* Calculation sky brightness |
115 | 118 |
*/ |
... | ... |
@@ -125,18 +128,18 @@ void calc_model(EZGDAL_LAYER *ghsl_layer, EZGDAL_LAYER *dem_layer, EZGDAL_LAYER |
125 | 128 |
r1 = ghsl_layer->stripe->rows/2; |
126 | 129 |
r2 = ghsl_layer->rows - r1 + 1; |
127 | 130 |
|
128 |
- printf(" 0%%"); fflush(stdout); |
|
131 |
+ if(quiet_val!=1) ezgdal_show_progress(stderr,0,rN); |
|
129 | 132 |
|
130 | 133 |
for(c=0; c<out_layer->cols; c++) |
131 | 134 |
out_layer->buffer[c] = out_layer->no_data; |
132 | 135 |
for(r=0; r<=r1; r++) { |
133 |
- if(100*r/rN != prc) {prc=100*r/rN; printf("\b\b\b\b%3d%%",prc); fflush(stdout); } |
|
136 |
+ if(quiet_val!=1) ezgdal_show_progress(stderr,r,rN); |
|
134 | 137 |
ezgdal_write_buffer(out_layer,r); |
135 | 138 |
} |
136 | 139 |
|
137 | 140 |
|
138 | 141 |
for(r=r1+1; r<r2; r++) { |
139 |
- if(100*r/rN != prc) {prc=100*r/rN; printf("\b\b\b\b%3d%%",prc); fflush(stdout); } |
|
142 |
+ if(quiet_val!=1) ezgdal_show_progress(stderr,r,rN); |
|
140 | 143 |
|
141 | 144 |
ezgdal_load_stripe_data(ghsl_layer->stripe, r-r1); |
142 | 145 |
if(dem_layer!=NULL) ezgdal_load_stripe_data(dem_layer->stripe, r-r1); |
... | ... |
@@ -157,11 +160,11 @@ void calc_model(EZGDAL_LAYER *ghsl_layer, EZGDAL_LAYER *dem_layer, EZGDAL_LAYER |
157 | 160 |
for(c=0; c<out_layer->cols; c++) |
158 | 161 |
out_layer->buffer[c] = out_layer->no_data; |
159 | 162 |
for(r=r2; r<rN; r++) { |
163 |
+ if(quiet_val!=1) ezgdal_show_progress(stderr,r,rN); |
|
160 | 164 |
if(100*r/rN != prc) {prc=100*r/rN; printf("\b\b\b\b%3d%%",prc); fflush(stdout); } |
161 | 165 |
ezgdal_write_buffer(out_layer,r); |
162 | 166 |
} |
163 |
- printf("\b\b\b\b100%%"); |
|
164 |
- |
|
167 |
+ if(quiet_val!=1) ezgdal_show_progress(stderr,rN,rN); |
|
165 | 168 |
} |
166 | 169 |
|
167 | 170 |
/************************************* |
... | ... |
@@ -217,9 +220,10 @@ int main(int argc, char *argv[]) |
217 | 220 |
struct arg_dbl *p_resY = arg_dbl0(NULL,"res_y","<dbl>","scale factor: row to km (default: 0.1)"); |
218 | 221 |
struct arg_dbl *p_resH = arg_dbl0(NULL,"res_h","<dbl>","scale factor: height to km (default: 0.001)"); |
219 | 222 |
struct arg_int *th = arg_int0("t","threads","<n>","number of threads (default 1)"); |
223 |
+ struct arg_lit *quiet = arg_litn("q","quiet",0,2,"print help and exit"); |
|
220 | 224 |
struct arg_lit *help = arg_lit0(NULL,"help","print help and exit"); |
221 | 225 |
struct arg_end *end = arg_end(20); |
222 |
- void* argtable[] = {ghsl,dem,out,p_par_a,p_par_U,p_par_V,p_par_h,p_par_k,p_par_N,p_resX,p_resY,p_resH,th,help,end}; |
|
226 |
+ void* argtable[] = {ghsl,dem,out,p_par_a,p_par_U,p_par_V,p_par_h,p_par_k,p_par_N,p_resX,p_resY,p_resH,th,quiet,help,end}; |
|
223 | 227 |
|
224 | 228 |
int nerrors = arg_parse(argc,argv,argtable); |
225 | 229 |
|
... | ... |
@@ -229,6 +233,8 @@ int main(int argc, char *argv[]) |
229 | 233 |
if(nerrors != 0) |
230 | 234 |
usage(argv[0],argtable); |
231 | 235 |
|
236 |
+ quiet_val = quiet->count; |
|
237 |
+ |
|
232 | 238 |
if(!file_exists(ghsl->sval[0])) { |
233 | 239 |
printf("\nInput file [%s] does not exists!\n\n",ghsl->sval[0]); |
234 | 240 |
exit(1); |
... | ... |
@@ -255,12 +261,14 @@ int main(int argc, char *argv[]) |
255 | 261 |
omp_set_num_threads(1); |
256 | 262 |
|
257 | 263 |
|
264 |
+ if(quiet_val==0) { |
|
258 | 265 |
printf("\nInput file (GHSL): %s\n",ghsl->sval[0]); |
259 | 266 |
if(dem->count>0) |
260 | 267 |
printf("Input file (DEM): %s\n",dem->sval[0]); |
261 | 268 |
printf("Output file (sky brightness): %s\n",out->sval[0]); |
262 | 269 |
printf("Berry's model parameters: a=%lf, U=%lf, V=%lf, h=%lf, k=%lf\n",par_a,par_U,par_V,par_h,par_k); |
263 | 270 |
printf(" radius: %d\n\n",par_N); |
271 |
+ } |
|
264 | 272 |
|
265 | 273 |
|
266 | 274 |
int no_data; |
... | ... |
@@ -273,7 +281,7 @@ int main(int argc, char *argv[]) |
273 | 281 |
int **visibility; |
274 | 282 |
|
275 | 283 |
|
276 |
- printf(" - preparing environment ... "); |
|
284 |
+ if(quiet_val==0) ezgdal_show_message_nolf(stdout, " - preparing environment ... "); |
|
277 | 285 |
no_data = -9999; |
278 | 286 |
|
279 | 287 |
if(dem->count>0) { |
... | ... |
@@ -302,14 +310,14 @@ int main(int argc, char *argv[]) |
302 | 310 |
|
303 | 311 |
if(p_resX->count==0) { |
304 | 312 |
if(at[2]!=0.0) { |
305 |
- printf("\n\nYou have to provide 'res_x' parameter\n\n"); |
|
313 |
+ ezgdal_show_message(stderr,"\n\nYou have to provide 'res_x' parameter\n\n"); |
|
306 | 314 |
exit(1); |
307 | 315 |
} else |
308 | 316 |
resX = 0.001*fabs(at[1]); |
309 | 317 |
} |
310 | 318 |
if(p_resY->count==0) { |
311 | 319 |
if(at[4]!=0.0) { |
312 |
- printf("\n\nYou have to provide 'res_y' parameter\n\n"); |
|
320 |
+ ezgdal_show_message(stderr,"\n\nYou have to provide 'res_y' parameter\n\n"); |
|
313 | 321 |
exit(1); |
314 | 322 |
} else |
315 | 323 |
resY = 0.001*fabs(at[5]); |
... | ... |
@@ -320,19 +328,19 @@ int main(int argc, char *argv[]) |
320 | 328 |
model_matrix = init_model_matrix(par_a,par_U,par_V,par_h,par_k,par_N,resX,resY); |
321 | 329 |
distance = create_dist(2*par_N+1,resX); |
322 | 330 |
visibility = create_mask(2*par_N+1,distance,par_N*resX); |
323 |
- printf("OK\n"); |
|
331 |
+ if(quiet_val==0) ezgdal_show_message(stdout,"OK"); |
|
324 | 332 |
|
325 | 333 |
|
326 |
- printf(" - calculating ... "); fflush(stdout); |
|
334 |
+ if(quiet_val==0) ezgdal_show_message_nolf(stdout," - calculating ... "); |
|
327 | 335 |
|
328 | 336 |
calc_model(ghsl_layer, dem_layer, out_layer, |
329 | 337 |
model_matrix, distance, visibility, |
330 | 338 |
par_h, par_N*resX, resH); |
331 | 339 |
|
332 |
- printf(" ... OK\n"); |
|
340 |
+ if(quiet_val==0) ezgdal_show_message(stdout," ... OK"); |
|
333 | 341 |
|
334 | 342 |
|
335 |
- printf(" - closing environment ... "); fflush(stdout); |
|
343 |
+ if(quiet_val==0) ezgdal_show_message_nolf(stdout," - closing environment ... "); |
|
336 | 344 |
ezgdal_close_layer(ghsl_layer); |
337 | 345 |
if(dem->count>0) |
338 | 346 |
ezgdal_close_layer(dem_layer); |
... | ... |
@@ -340,7 +348,7 @@ int main(int argc, char *argv[]) |
340 | 348 |
free_model_matrix(model_matrix, par_N); |
341 | 349 |
free_array((void **)distance, 2*par_N+1); |
342 | 350 |
free_array((void **)visibility, 2*par_N+1); |
343 |
- printf("OK\n"); |
|
351 |
+ if(quiet_val==0) ezgdal_show_message(stdout,"OK"); |
|
344 | 352 |
|
345 | 353 |
arg_freetable(argtable, sizeof(argtable) / sizeof(argtable[0])); |
346 | 354 |
|
347 | 355 |