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" <[EMAIL PROTECTED]>
To: <[email protected]>
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

Reply via email to