Fix for properly handling SRTM voids ... terrafit.py rescales the data range
so that all the values are positive this make things a little trickier inside terra.
This commit is contained in:
parent
9ab16521f4
commit
d0f17a2cd7
1 changed files with 13 additions and 2 deletions
|
@ -21,15 +21,26 @@ GreedySubdivision::GreedySubdivision(Map *map)
|
||||||
|
|
||||||
int w = H->width;
|
int w = H->width;
|
||||||
int h = H->height;
|
int h = H->height;
|
||||||
|
real range = H->max - H->min;
|
||||||
|
|
||||||
is_used.init(w, h);
|
is_used.init(w, h);
|
||||||
int x,y;
|
int x,y;
|
||||||
for(x=0;x<w;x++)
|
for(x=0;x<w;x++)
|
||||||
for(y=0;y<h;y++) {
|
for(y=0;y<h;y++) {
|
||||||
if ( map->eval(x,y) > 10 ) {
|
if ( range < 30000 ) {
|
||||||
is_used(x,y) = DATA_POINT_UNUSED;
|
is_used(x,y) = DATA_POINT_UNUSED;
|
||||||
} else {
|
} else {
|
||||||
is_used(x,y) = DATA_VALUE_UNKNOWN;
|
// data includes SRTM void's
|
||||||
|
// cout << "marking " << x << "," << y << " = "
|
||||||
|
// << map->eval(x,y) << " as ";
|
||||||
|
if ( map->eval(x,y) > (H->min + 1) ) {
|
||||||
|
is_used(x,y) = DATA_POINT_UNUSED;
|
||||||
|
// cout << "UNUSED";
|
||||||
|
} else {
|
||||||
|
is_used(x,y) = DATA_VALUE_UNKNOWN;
|
||||||
|
// cout << "UNKNOWN";
|
||||||
|
}
|
||||||
|
// cout << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue