Raster Soviet Topo Maps

Stephen Woodbridge woodbri at SWOODBRIDGE.COM
Wed Dec 20 12:04:30 EST 2006


Hi Brent,

Thank you for the response. A few Qs below ...

Brent Fraser wrote:
> Steve,
> 
>   The short answer is it depends how accurate you want the result to be.

I would like this to be reasonably accurate, so digitizing over the map 
gives good results.

> My usual steps to get an accurate result are:
>     Rectify,
>         - removes skew (makes the pixel axis line up with the projected
> coord axis)
>     Clip the collars to the curved Lat/Lon extents,
>         - removes margin info right along the mapped extent
>     Merge the mapped pixels from adjacent maps,
>         - fills in map data along perimeter slivers nulled by the above step
>     Clip to the original (projected coordinate) extents (plus a 50 pixel
> buffer)
>         - makes the file a nice size for good performance

I am writing some code that will clip the collars. So from your 
description above it is not clear, but it would seem that all you images 
  are identical height and width when you are done.

One thing that I am worried about is that the aspect ratio of the map 
areas is not the same as the lat/lon coverage and sizes very somewhat.

    ie: h_img/w_img != h_lat/w_lon

So, I am assuming that my Rectify step also needs to scale the image to 
some standard size that has an aspect ratio of 15x10 mins for the 50K maps.

> While it's possible to remove the skew with a paint program and calculate
> the the world file values by hand, the quality of the results are generally
> poor.  If you've got access to a Windows computer, buy a copy of
> GlobalMapper (www.globalmapper.com).  It also clips along Lat/Lon boundaries
> which is critical.  And iit can do the loading of adjacent maps and save the
> result, although not in an automated fashion unless you use it's scripting
> capability.  There's a "limited feature" version at
> http://mcmcweb.er.usgs.gov/drc/dlgv32pro/

The one you copy below is the second not third choice :), but just 
checking. The math indicates second choice.

>     - if you want to have the same coordinate system as the Soviet map's
> projected grid, use your third choice:
> # Pulkovo 1942 / Gauss-Kruger zone 6
> <28406> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=6500000 +y_0=0
> +ellps=krass +units=m +no_defs  <>
> 
> Note the x_0 value.  The Soviet maps use a false easting that depends on the
> zone number (mult the zone number by 1 million, then add 500k).

Do you have these up and running somewhere that I can browse them?

I hope to have code that will automate processing these, but it will 
take through the holidays to scrape together enough evenings and 
weekends to get it working. Finding the clip corners has been a 
challenge but I might have that whipped. There is still a lot to sort out.

I really appreciate the help and suggestions.

Thank you,
   -Steve

> Brent Fraser
> GeoAnalytic Inc
> Calgary, Alberta, Canada
> 
> 
> ----- Original Message ----- 
> From: "Stephen Woodbridge" <woodbri at SWOODBRIDGE.COM>
> To: <MAPSERVER-USERS at LISTS.UMN.EDU>
> Sent: Tuesday, December 19, 2006 10:17 PM
> Subject: [UMN_MAPSERVER-USERS] Raster Soviet Topo Maps
> 
> 
>> Hi all,
>>
>> I have downloaded some Soviet Topo maps and I want to use them with
>> mapserver. I can clip the collar off them, and probably shove the pixels
>> into a rectangle, the scans are slightly rotated.
>>
>> so for example a 50K Topo 050k--h36-022-2.gif
>>
>> Processing file: 050k--h36-022-2.gif
>>    Width=2949, Height=2340
>>       top: 2793, off: 6
>>     right: 2192, off: -1
>>    bottom: 2798, off: -8
>>     right: 2190, off: 6
>>
>> where the numbers above are in pixels and the off: value is offset for
>> that edge from horizontal or vertical wrt the opposite end.
>>
>> It has corner values in lat/lons.
>>    34.750000, 31.500000, 35.000000, 31.666667
>>
>> Projection: Gauss Kruger
>> Datum: Pulkovo 1942
>> Ellipsoid: Krassovsky 1940
>>
>> I assume this is a UTM projection, so how would I convert these values
>> for use in a wld file?
>>
>> What values should go into the world file? degrees or meters?
>>   pixel X size = 0.25 / 2793 degrees
>>   rotation about the Y axis (usually 0.0)
>>   rotation about the X axis (usually 0.0)
>>   negative pixel Y size = - (10./60.) / 2192 degrees
>>   X coordinate of upper left pixel center = 35.0 degrees
>>   Y coordinate of upper left pixel center = 31.5 degrees
>>
>> What should the mapserver projection be?
>>
>> # Pulkovo 1942 / Gauss-Kruger CM 33E
>> <2496> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=500000 +y_0=0
>> +ellps=krass +units=m +no_defs  <>
>>
>> # Pulkovo 1942 / Gauss-Kruger zone 6
>> <28406> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=6500000 +y_0=0
>> +ellps=krass +units=m +no_defs  <>
>>
>> # Pulkovo 1942 / Gauss-Kruger 6N
>> <28466> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=500000 +y_0=0
>> +ellps=krass +units=m +no_defs  <>
>>
>> or a 3-degree variant?
>>
>> If I have a bunch of these, do they all need to be the same size in
>> pixels or can I just square up the corners as scanned and compute x-cell
>> size and y-cell sizes based on the scanned size?
>>
>> I could use a little help on this one, I think I am close.
>>
>> Thanks,
>>    -Steve W
> 



More information about the mapserver-users mailing list