1
0
Fork 0

OVERVIEW:

For the time being of VMap0-data in FlightGear Scenery, there have been
two cases of simplification, where different types of landcover usage
have been stuffed into the same TerraGear work directories:

1.) VMap0 "Glacier" and VMap0 "Polar Ice" have been accumulated in the
    'LandCover/Glacier' directory,
2.) VMap0 "Wet Sand" and VMap0 "Marsh" have been mapped together in
    'VPF-LandCover/Marsh'.

These have been defined in the 'TGVPF/process.sh' for a long time and
we simply ported the identical mapping over to 'ShapeFile/process.sh',
in order to provide an exact image of what had been done previously
with the TGVPF reader, when we did all those funny ShapeFile thingies.

When I started storing all the landcover data in a PostGIS DB, one goal
I had in mind was to understand and clean up the structure of all those
different layers.

Now, after many hours of reading VMap specs and dealing with this data,
I have come to the point where we could merge VMap1 data into the VMap0
stuff where VMap1 is available and I'd like to have those duplicates
cleaned up before we're getting into an even bigger mess.

This means, and this is what the patch implements, that we're going to
handle "Polar Ice" landcover data separately from "Glacier" as well as
"Wet Sand" (which apparently means "Littoral" in our case) separately
from "Marsh" - in TerraGear. In order to let FlightGear behave the same
as previously, the two mentione mappings are now implemented by
respective additional "name" entries in the 'materials.xml' file. I
already committed these entries.

I'd like to progress with the task of adding improvements to our
landcover data set because I consider it as one of the vital goals of
further development to add more and more diversity to The Scenery. So
I'm eager to see these really small but significant issues resolved.
This commit is contained in:
curt 2006-11-29 22:19:33 +00:00
parent 3911a656b5
commit 01ba584d2e
5 changed files with 19 additions and 17 deletions

View file

@ -450,6 +450,7 @@ is_water_area (AreaType type)
case OceanArea: case OceanArea:
case BogArea: case BogArea:
case MarshArea: case MarshArea:
case LittoralArea:
case WaterBodyCover: case WaterBodyCover:
return true; return true;
default: default:
@ -516,9 +517,6 @@ bool TGClipper::clip_all(const point2d& min, const point2d& max) {
for ( i = 0; i < TG_MAX_AREA_TYPES; ++i ) { for ( i = 0; i < TG_MAX_AREA_TYPES; ++i ) {
cout << "num polys of type (" << i << ") = " cout << "num polys of type (" << i << ") = "
<< polys_in.polys[i].size() << endl; << polys_in.polys[i].size() << endl;
// current = polys_in.polys[i].begin();
// last = polys_in.polys[i].end();
// for ( ; current != last; ++current ) {
for( j = 0; j < (int)polys_in.polys[i].size(); ++j ) { for( j = 0; j < (int)polys_in.polys[i].size(); ++j ) {
TGPolygon current = polys_in.polys[i][j]; TGPolygon current = polys_in.polys[i][j];
SG_LOG( SG_CLIPPER, SG_INFO, get_area_name( (AreaType)i ) SG_LOG( SG_CLIPPER, SG_INFO, get_area_name( (AreaType)i )
@ -577,13 +575,14 @@ bool TGClipper::clip_all(const point2d& min, const point2d& max) {
// move_slivers) to the clipped polys list // move_slivers) to the clipped polys list
if ( result_diff.contours() > 0 ) { if ( result_diff.contours() > 0 ) {
polys_clipped.polys[i].push_back(result_diff); polys_clipped.polys[i].push_back(result_diff);
}
// char filename[256]; // static int count = 0;
// sprintf(filename, "next-result-%02d", count++); // cout << "Writing clipped polygon to next-result" << count
// FILE *tmpfp= fopen(filename, "w"); // << endl;
// gpc_write_polygon(tmpfp, 1, result_diff); // char filename[256];
// fclose(tmpfp); // sprintf(filename, "next-result-%02d-%02d", i, count++);
// result_diff.write(filename);
}
} }
accum = result_union; accum = result_union;
} }

View file

@ -60,6 +60,7 @@ inline static void init ()
set_area("Pond", PondArea); set_area("Pond", PondArea);
set_area("Swamp or Marsh", MarshArea); set_area("Swamp or Marsh", MarshArea);
set_area("Marsh", MarshArea); set_area("Marsh", MarshArea);
set_area("Littoral", LittoralArea);
set_area("Bog", BogArea); set_area("Bog", BogArea);
set_area("Sand", SandArea); set_area("Sand", SandArea);
set_area("Lava", LavaArea); set_area("Lava", LavaArea);
@ -80,6 +81,7 @@ inline static void init ()
set_area("Canal", CanalArea); set_area("Canal", CanalArea);
set_area("Glacier", GlacierArea); set_area("Glacier", GlacierArea);
set_area("PackIce", PackIceArea); set_area("PackIce", PackIceArea);
set_area("PolarIce", PolarIceArea);
set_area("Urban", UrbanArea); set_area("Urban", UrbanArea);
set_area("Town", TownArea); set_area("Town", TownArea);
set_area("BuiltUpCover", BuiltUpCover); set_area("BuiltUpCover", BuiltUpCover);

View file

@ -51,8 +51,9 @@ enum AreaType {
StreamArea, StreamArea,
IntStreamArea, IntStreamArea,
CanalArea, CanalArea,
GlacierArea, // Any solid ice/snow GlacierArea, // Solid ice/snow
PackIceArea, // Water with ice packs PackIceArea, // Water with ice packs
PolarIceArea,
OceanArea, OceanArea,
UrbanArea, // Densely-populated city or large town UrbanArea, // Densely-populated city or large town
TownArea, // Small town or village TownArea, // Small town or village
@ -60,6 +61,7 @@ enum AreaType {
BogArea, // Bog BogArea, // Bog
MarshArea, // Marshland or swamp MarshArea, // Marshland or swamp
SandArea, // Sand-covered area SandArea, // Sand-covered area
LittoralArea, // Tidal, Sand-covered area
LavaArea, // Lava-covered area LavaArea, // Lava-covered area
// USGS Land Covers // USGS Land Covers

View file

@ -13,7 +13,7 @@ ${SHAPEDECODE} ${SHAPEBASE}/landmass_default ${WORKBASE}/Shape-LandMass Default
# Inland moving water: rivers/streams, intermittent streams, and canals # Inland moving water: rivers/streams, intermittent streams, and canals
${SHAPEDECODE} --line-width 40 ${SHAPEBASE}/rivers_stream ${WORKBASE}/Shape-Rivers Stream ${SHAPEDECODE} --line-width 40 ${SHAPEBASE}/rivers_stream ${WORKBASE}/Shape-Rivers Stream
${SHAPEDECODE} --line-width 30 ${SHAPEBASE}/rivers_intermittentstream ${WORKBASE}/Shape-Rivers IntermittentStream ${SHAPEDECODE} --line-width 30 ${SHAPEBASE}/rivers_intermittentstream ${WORKBASE}/Shape-Rivers IntermittentStream
${SHAPEDECODE} --line-width 50 ${SHAPEBASE}/canals_stream ${WORKBASE}/Shape-Canals Stream ${SHAPEDECODE} --line-width 50 ${SHAPEBASE}/canals_stream ${WORKBASE}/Shape-Canals Canal
# Inland still water: lakes, intermittent lakes, and flood land # Inland still water: lakes, intermittent lakes, and flood land
${SHAPEDECODE} ${SHAPEBASE}/lakes_lake ${WORKBASE}/Shape-Lakes Lake ${SHAPEDECODE} ${SHAPEBASE}/lakes_lake ${WORKBASE}/Shape-Lakes Lake
@ -31,7 +31,7 @@ ${SHAPEDECODE} ${SHAPEBASE}/landcover_mixedforestcover ${WORKBASE}/Shape-LandCov
# Ground cover: sand, tidal, lava, barren, grass, shrub, herb-tundra # Ground cover: sand, tidal, lava, barren, grass, shrub, herb-tundra
${SHAPEDECODE} ${SHAPEBASE}/landcover_sand ${WORKBASE}/Shape-LandCover Sand ${SHAPEDECODE} ${SHAPEBASE}/landcover_sand ${WORKBASE}/Shape-LandCover Sand
${SHAPEDECODE} ${SHAPEBASE}/landcover_marsh ${WORKBASE}/Shape-LandCover Marsh ${SHAPEDECODE} ${SHAPEBASE}/landcover_marsh ${WORKBASE}/Shape-LandCover Littoral
${SHAPEDECODE} ${SHAPEBASE}/landcover_lava ${WORKBASE}/Shape-LandCover Lava ${SHAPEDECODE} ${SHAPEBASE}/landcover_lava ${WORKBASE}/Shape-LandCover Lava
${SHAPEDECODE} ${SHAPEBASE}/landcover_barrencover ${WORKBASE}/Shape-LandCover BarrenCover ${SHAPEDECODE} ${SHAPEBASE}/landcover_barrencover ${WORKBASE}/Shape-LandCover BarrenCover
${SHAPEDECODE} ${SHAPEBASE}/landcover_grasscover ${WORKBASE}/Shape-LandCover GrassCover ${SHAPEDECODE} ${SHAPEBASE}/landcover_grasscover ${WORKBASE}/Shape-LandCover GrassCover
@ -41,8 +41,7 @@ ${SHAPEDECODE} ${SHAPEBASE}/landcover_herbtundracover ${WORKBASE}/Shape-LandCove
# Ice cover: glaciers, pack ice, and sea ice # Ice cover: glaciers, pack ice, and sea ice
${SHAPEDECODE} ${SHAPEBASE}/landcover_glacier ${WORKBASE}/Shape-LandCover Glacier ${SHAPEDECODE} ${SHAPEBASE}/landcover_glacier ${WORKBASE}/Shape-LandCover Glacier
${SHAPEDECODE} ${SHAPEBASE}/landcover_packice ${WORKBASE}/Shape-LandCover PackIce ${SHAPEDECODE} ${SHAPEBASE}/landcover_packice ${WORKBASE}/Shape-LandCover PackIce
# FiXME: Two glacier themes; have same name in database ${SHAPEDECODE} ${SHAPEBASE}/landcover_glacier ${WORKBASE}/Shape-LandCover PolarIce
# ${SHAPEDECODE} ${SHAPEBASE}/landcover_glacier ${WORKBASE}/Shape-LandCover Glacier
# Marshes: marsh and bog # Marshes: marsh and bog
${SHAPEDECODE} ${SHAPEBASE}/landcover_marsh ${WORKBASE}/Shape-LandCover Marsh ${SHAPEDECODE} ${SHAPEBASE}/landcover_marsh ${WORKBASE}/Shape-LandCover Marsh

View file

@ -39,7 +39,7 @@ for REGION in $REGIONS; do
# Inland moving water: rivers/streams, intermittent streams, and canals # Inland moving water: rivers/streams, intermittent streams, and canals
${TGVPF} --work-dir=${WORKBASE}/VPF-Rivers --material=Stream --width=40 --att=hyc:8 --max-segment=400 $V0PATH $REGION hydro watrcrsl ${TGVPF} --work-dir=${WORKBASE}/VPF-Rivers --material=Stream --width=40 --att=hyc:8 --max-segment=400 $V0PATH $REGION hydro watrcrsl
${TGVPF} --work-dir=${WORKBASE}/VPF-Rivers --material=IntermittentStream --width=30 --att=hyc:6 --max-segment=400 $V0PATH $REGION hydro watrcrsl ${TGVPF} --work-dir=${WORKBASE}/VPF-Rivers --material=IntermittentStream --width=30 --att=hyc:6 --max-segment=400 $V0PATH $REGION hydro watrcrsl
${TGVPF} --work-dir=${WORKBASE}/VPF-Canals --material=Stream --width=50 --att=exs:1 --att=loc:8 --max-segment=400 $V0PATH $REGION hydro aquecanl ${TGVPF} --work-dir=${WORKBASE}/VPF-Canals --material=Canal --width=50 --att=exs:1 --att=loc:8 --max-segment=400 $V0PATH $REGION hydro aquecanl
# Inland still water: lakes, intermittent lakes, and flood land # Inland still water: lakes, intermittent lakes, and flood land
${TGVPF} --work-dir=${WORKBASE}/VPF-Lakes --material=Lake --att=f_code:BH000 --att=hyc:8 --max-segment=400 $V0PATH $REGION hydro inwatera ${TGVPF} --work-dir=${WORKBASE}/VPF-Lakes --material=Lake --att=f_code:BH000 --att=hyc:8 --max-segment=400 $V0PATH $REGION hydro inwatera
@ -57,7 +57,7 @@ for REGION in $REGIONS; do
# Ground cover: sand, tidal, lava, barren, grass, shrub, herb-tundra # Ground cover: sand, tidal, lava, barren, grass, shrub, herb-tundra
${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=Sand --att=smc:88 --att=swc:0 --max-segment=400 $V0PATH $REGION phys grounda ${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=Sand --att=smc:88 --att=swc:0 --max-segment=400 $V0PATH $REGION phys grounda
${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=Marsh --att=smc:88 --att=swc:3 --max-segment=400 $V0PATH $REGION phys grounda ${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=Littoral --att=smc:88 --att=swc:3 --max-segment=400 $V0PATH $REGION phys grounda
${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=Lava --att=smc:52 --max-segment=400 $V0PATH $REGION phys grounda ${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=Lava --att=smc:52 --max-segment=400 $V0PATH $REGION phys grounda
${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=BarrenCover --att=smc:119 --max-segment=400 $V0PATH $REGION phys grounda ${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=BarrenCover --att=smc:119 --max-segment=400 $V0PATH $REGION phys grounda
${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=GrassCover --att=f_code:EB010 --max-segment=400 $V0PATH $REGION veg grassa ${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=GrassCover --att=f_code:EB010 --max-segment=400 $V0PATH $REGION veg grassa
@ -67,7 +67,7 @@ for REGION in $REGIONS; do
# Ice cover: glaciers, pack ice, and sea ice # Ice cover: glaciers, pack ice, and sea ice
${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=Glacier --max-segment=400 $V0PATH $REGION phys landicea ${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=Glacier --max-segment=400 $V0PATH $REGION phys landicea
${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=PackIce --att=f_code:BJ070 --max-segment=400 $V0PATH $REGION phys seaicea ${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=PackIce --att=f_code:BJ070 --max-segment=400 $V0PATH $REGION phys seaicea
${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=Glacier --att=f_code:BJ080 --max-segment=400 $V0PATH $REGION phys seaicea ${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=PolarIce --att=f_code:BJ080 --max-segment=400 $V0PATH $REGION phys seaicea
# Marshes: marsh and bog # Marshes: marsh and bog
${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=Marsh --att=f_code:BH095 --max-segment=400 $V0PATH $REGION veg swampa ${TGVPF} --work-dir=${WORKBASE}/VPF-LandCover --material=Marsh --att=f_code:BH095 --max-segment=400 $V0PATH $REGION veg swampa