Jump to content
  • the7trumpets
    the7trumpets

    How To Make Scale Accurate Realistic Regions from USGS Data

    First, let me give huge thanks Rybolton, for creating the original instructions on how to use the USGS data, without which I would have never even thought this project to be possible. Many of the instructions here are taken from his excellent omnibus article. Also, a big thanks goes out to Odd8ball for helping me so diligently with the calculations and DarkMatter and ExtinctSKB for finally getting through to my thick skull on how SC4 does its 3D projection. I apologize for the length and complexity, but it should be fairly easy to follow.

    Part 1 - Getting the USGS data

    First you will need to get a program called MICRODEM. Get it here. Follow the link ’Complete Install’. Now install MICRODEM.

    Now that you’ve installed MICRODEM you will need to get a DEM (Digital Elevation Model). You can download them from this site. When the page loads, click on one of the two buttons entitled ’View and Order Data Sets’, corresponding to whether you want to download maps of the US or of the World (currently only North and South America are available). That will take you to this page:

    USGS_Map_Start.jpg

    you should see this map once the applet loads

    In the "Download Layers" section at the top right corner (boxed in blue in this screenshot), select only NED and 1/3" NED for US maps. If you are downloading Canadian, Central American, or South American terrain, you will need SRTM 30m and SRTM 90m selected. The toolbar on the left hand side of the screen allows you to move around the map, zoom in and out, and select area to download. The zoom in tool is default. After you’ve found the location that you want to download, select an area to download using the download by rectangle tool in the lower left hand of the toolbar. To get an idea of the size of your selection, you can click on the ruler icon above the download section and change the scale to kilometers. Using the download by rectangle tool, select an area a little bigger than how big you want your region to be.

    USGS_select_area.jpg

    your download selection is shown by this green box

    Once the new window has finished loading, you will see the following page. Click on the "Modify Data Request" Button at the right.

    USGS_request_summary.jpg

    summary page

    This will load the next page, where we will select our preferred format. Select TIFF in the data format column of all available resolutions: NED, 1/3" NED, etc.

    USGS_Request_options.jpg

    request options page

    Now click on "Save Changes and Return To Summary" button on the bottom right. It will now take you back to the previous page. In order of most preferred (highest detail) to least preferred (lowest detail), the possible download choices you may have are: 1/3" NED - ArcGrid Format; NED - ArcGrid Format; SRTM 30m; SRTM 90m. You only need one of these. Simply download the most preferred (highest resolution) option available.

    Note:
    When trying to download large areas, the 1/3" NED may be broken up into several files because the system cannot generate any files over 100MB. If this occurs, and you really want to download this large of an area (which will be larger than a 16km by 16km standard sized region), simply download all the 1/3" DEM's that are listed, and you can piece them together later.

    Once you click the download link, a new window will pop up that shows the status. The server has to compile the information in the format you requested, and then compress it in a zip, so it might take a minute or two for larger files. Remember where you download this file, and unzip it.

    Part 2 - Working in the MICRODEM program

    Start MICRODEM and select File-> Open DEM. Find where you unzipped the DEM you just downloaded and open the tiff file, which will be named some eight digit number.

    DEM_Right_Click_Display_Parameter.jpg

    right click sub-menu

    Once the DEM is opened, right click on the picture and click on "Display Parameter". Then on the next menu that pops up, click on "Reflectance". The following dialog box will open:

    DEM_Reflectance_Options_window.jpg

    reflectance options dialog box

    Here, you need to ensure two things. First, make sure ocean check is on. Then click on the button that says "Water" with the color block next to it. Change the color to RGB=65, and click OK in both dialog boxes. Next, right click on the image again, select "Display Parameter" and then "Elevation" The map should now look something like this:

    DEM_Elevation.jpg

    elevation view

    Now right click on the image, select "Elevation colors" and then "Colors". The following dialog box will appear:

    DEM_Elevation_Map_Options.jpg

    elevation map options

    Make sure to select "Grey scale" as well as checking "Ocean check". Then click on the button named "Missing" and change its color to RGB=65. Now click OK in both dialog boxes. The map should now look like this:

    DEM_Elevation_Grey.jpg

    map after greyscale is selected

    Next we need to set the altitude scale. When importing greyscale images to terraform regions, the SC4 map has a total altitude change of 933 meters. Sea level is at RGB=83. However, when the land level is RGB=84, SC4 seems to slope the land down slightly at the edge of the map which causes weird behavior (sand or water) at the border of your cities. Also, when the lowest land value is set to RGB=85, about 100 meters of coastline is eaten away by the interpolation of the greyscale image. At RGB=86, only about 30m (two tiles) of coastline is eaten away, which is a good compromise. This means 0m elevation needs to equal RGB=86. To accomplish this, right click on the image and select "Elevation colors" and then "Specify". This will bring up the following dialog boxes (one first and then the other):

    DEM_min_z.jpg

    the altitude where RGB=0

    DEM_max_z.jpg

    the altitude where RGB=255

    If this is an ocean region, use the shown numbers (-314 and 619) to set land at RGB=86. However, if this is a map with a lake instead of an ocean, place your cursor over the surface of the water. In the lower middle of the DEM window on the status bar, it will give you the elevation in "z= 385m" format. Add that value to both -314 and 619. So, if the lake had an elevation of 385 meters, you would type in 71 for min Z and 1004 for max Z. If it is a map with no lakes or ocean in it, you need to get the whole map above sea level. To do this, select "Elevation Colors" --> "Specify", but do not change the values that are there yet. Take whatever is shown in the first dialog box (min Z) and add it to both -311 and 622 to get the values to use. Remember, very mountainous maps may be difficult or impossible since they may have more elevation change than we can import from greyscale images.

    Now your map should looks something like this:

    DEM_Elevation_Grey_adjused.jpg

    map after altitude scale is adjusted

    Next, we need to turn the grid on so that we have something to set the North/South and East/West scale to. Right click on the map and select "Grid" which will bring up the following dialog box:

    DEM_Grid_Options_window.jpg

    grid dialog box

    Make the window look like the one above. Ensure that "Grid" is set to UTM, and "Label Grid" has neither UTM or Lat/Long selected. Under "UTM grid interval (m)", enter either 1024, 2048, or 4096. These correspond to the widths of a small, medium, and large city, but this does not mean your cities must be that size, it will simply be used for measuring the scale. Click "OK".

    Next, in order to save the file with its full resolution, you need to zoom in full. To do this, simply click on the magnifying glass with a 1 inside it on the toolbar of the DEM:

    DEM_select_no_zoom.jpg

    A confirmation message will likely pop up that asks you if you want to do this. Click OK, and you should see something that is obviously zoomed in:

    Note:
    If you are working with the standard DEM instead of the higher resolution 1/3" DEM, this message may not come up and your window may not zoom in as much simply because there is not that much resolution to the image.

    DEM_Elevation_Grey_adjusted_grid_zoom_1.jpg

    fully zoomed in 1/3" DEM

    Now select "File" --> "Save map as GEOTIFF". Save it as something like "region name with grid", because we will now turn the grid off to save the real image we are going to use. Right click on the DEM again and select "Grid". In the dialog box, under "Grid", select "neither".

    Grid_Options_Select_Neither.jpg

    Now save it again via "Save map as GEOTIFF" giving it a different name like "region name without grid". You are now done with the MICRODEM program.

    Part 3 - Image Editing

    Close Microdem and open up your image editing program. The first thing you need to do is measure the North/South and East/West scale. To do this, open up the tiff file with the grid that you saved from Microdem. Zoom in close enough to see the pixel which is at the intersection between grid points. Either by writing down coordinate points, which should be shown in a status bar somewhere, or by using a pixel ruler, measure how many pixels in the direction of measure it takes to go 4096 meters in both the North/South direction and the East/West direction.

    Depending on what the latitude is of the area you are terraforming, these numbers will probably not be the same. Divide 257 by both the EW distance and the NS distance to get the ratio you need to multiply the image size by, in each direction, to get the desired size for your image.For example: Measuring the East/West distance, point number one is at (285, 346) and the point 4km east of that is at (807, 349). Subtract X1 from X2 and you get an East/West distance of (807-285) = 522 pixels. To measure the North/South distance, return to Point one (285, 346), and move up to the grid intersection 4km north of the first point. You find this point to be at (281, 858). Now subtract Y1 from Y2 to get the North/South distance of (858-346) = 512 pixels. Now divide 257 by the East/West distance to get the East/West coefficient (257/522 = 0.4923), and divide 257 by the North/South distance to get the North/South coefficient (257/512 = 0.5020).

    These are the coefficients you need to multiply the current image size by to make it scale accurate in the North/South and East/West direction. If the image size were 3450(width) x 3844(height), you would multiply 3450 (current East/West distance) by 0.4923 (East/West coefficient) which is 1699 and multiply 3844 (current North/South Distance) by 0.5020 (North/South coefficient), which is 1930. So, you need to resize your image to 1699 by 1930. Open up the tiff file you saved from Microdem without the grid, and resize it to the needed size (1699x1930 in this example).

    Note: I suggest measuring a minimum of 4096m distance to get descent accuracy. You may measure a larger distance than this, just take the number of meters you measured according to your grid divided by 16 and add one to the result. Then divide that by your pixel distance. So, if you measured 16,384 meters, you would divide (16384/16) + 1, which is 1025 by your pixel distance to get the desired image width in that direction. Do the same for the other direction.

    Since these DEMs are derived from satellite photos, docks, shipyards, and ports appear as coastline instead of seaports. I typically go in and simply "paint" water (RGB=65) over these obvious rectangular protrusions from the coast.

    PSP_Docks_Before.jpg

    before

    PSP_Docks_After.jpg

    after

    Also, small rivers are not accurately interpreted. The smallest river that I have been able to make by importing from a greyscale image is about 100 meters from shore to shore. For this reason, any rivers that are not necessary for the look and function of the region and are narrower than 4 or 5 pixels I usually paint in with the surrounding elevation level (almost always RGB=86). Here is a screenshot of the creeks that I deleted:

    PSP_River_Before.jpg

    before

    PSP_River_After.jpg

    after

    However, some rivers or areas of ocean are necessary for the look of the region even if their final width will be slightly larger than in reality. Here is an example from our Manhattan region:

    PSP_Do_not_fill.jpg

    The area highlighted by the green rectangle is the small stream of ocean that I did not fill in with RGB=86 because it would have connected this island to the mainland.

    The next step is quite possibly the trickiest and the most subjective. Unfortunately, the DEM data does not have underwater depths. Because of this, we were forced to choose an arbitrary depth for all of the water (RGB=65). However, the way SC4 interprets these greyscale images when it imports them is not absolute, it interpolates them. Depending on the RGB difference between the coast and the sea floor it is ajacent to, it either causes an extremely sharp dropoff cliff, or it creates a more gradual elevation change by eating away at the shoreline, making your land masses smaller. The steep cliff looks really bad on a coastline, and that's why we chose RGB=65 for the ocean floor instead of something deeper. The end result is that if you import the map as it is now, the shorelines will be receded from where it appears they should be on the jpeg you imported. If you don't care about preserving these last 50 meters of shoreline, don't worry about it. However, if you want it to be as accurate as possible, or you have small islands (less than 250m across, or less about 16 pixels) that could turn into stumps or completely disappear, this is what I recommend doing:

    You basically need to extend the shoreline gradually into the water so that when it is interpolated, the resulting shoreline will be in the right place. The best way I've found to do this is to select the water with the magic wand tool and do an edge-->dilate effect enough so that it adds about 3 pixels to your shorelines. This can still fill up some small water channels though, so after I do that, I simply go in and redraw the small waterways that need to be there with a very small Width = 1 pixel paintbrush painting RGB=65.

    Now is the easy part. Simply decide how big you want your region to be (16km by 16km is standard) and crop an area out of your tiff that corresponds to that much area. For each direction, you multiply the number of kilometers you want the region to be in that direction by 64 and then add one. The region sizes must be in multiples of 4 kilometers, so you cannot have a 15km by 13km region. Each dimension must be evenly divisible by 4km. I chose to use a 16km by 24km area to fit all of Manhattan island into my region. So, my image size was 1025 by 1537:

    PSP_Crop_selection.jpg

    crop the selection out of your tiff file

    Now you convert it to a greyscale image (gif, bmp, or jpg). I usually use bmp because I'm terrified of jpeg or gif compression messing up my hours of work. You will probably want to create a custom config.bmp file to control where different sized cities in your region are. Ordio has created an amazing program that allows you to overlay city sizes on top of your greyscale image so you can easily plan where to put your small, medium, and large sized cities. Find the program here.

    First open up Simcity 4 and create a new region, name it what you want, and exit Simcity. There is not much documentation on the program, but it is fairly straight forward. Once you start the program, select Map-->Open. Find your greyscale image and select it. Now click on the "Overlay Config Over Region" button on the top (highlighted green in the screenshot below). The map should look something like this:

    ORDIO_Create_Config.jpg

    create your config.bmp file

    Use the controls in the program to customize where which sized city goes. Blue is large cities, green is medium cities, and red is small cities. When you are happy with the way it looks, select "Config-->Save". Navigate to your "My DocumentsSimcity 4Regions{YOUR NEW REGION NAME}" directory and save the config as "config.bmp" in that directory.

    Start up SimCity 4 and load the region that you just created. At the main region view (not inside a city), press Ctrl+Shift+Alt+R and it will bring up this screen:

    SC4_Import_Image.jpg

    import your greyscale image

    Find the greyscale image you are using, select it, and click 'ok'. While it is working, it will show you flat city squares for the size city it is currently working on, as if you are opening a city of that size. If this does not happen, most likely the image is not converted to greyscale, or it is the wrong size. Also, sometimes I have to physically type the name of the image into the dialog box instead of double clicking on it.

    It will take quite some time to calculate the region's terrain. In my experience, it takes roughly 3-5 minutes per 4km squared block, or 12-20 minutes for a standard 16km by 16km region. However, the speed of this is dependent on the speed of your computer. Once it is done, you will have a brand new scale accurate region!!!

    SC4_region_view.jpg

    You will probably notice that most of the coastlines will look sort of rough. Unfortunately there is no good remedy for that. It is another disadvantage of the satellite data not having ocean and lake depths. If you want it to look more like the "smooth" tool instead of the "erode" tool in god mode, simply use the smooth tool on each city before you start building on it.



    User Feedback


    great tutorial, but i don't get how to merge multiple tif's into one. when i open just the tif, it's a black/white picture. the additional data in the respective folders are needed as well. maybe i overlook something or am just too stupid...

    apart from that, some links are dead and the interface of some sites have changed as well, which makes it kinda hard to follow this tutorial. updating maybe required, otherwise good work and thx!

    Share this comment


    Link to comment
    Share on other sites

    don't pick terrain with a total change in elevation much more 6000 feet(including under water), the terrain can not be built any higher. In most cases the grayscale won't work ether.  Also to keep the area to scale it can only about be 9 miles long and wide.

     

    By the way you can still make DEM based maps, you have to uses different ways to actually acquire the maps, which can be more time consuming, but most of the steps are about the same.  

    Share this comment


    Link to comment
    Share on other sites

    Not only are the links and programs outdated, but I just can't make heads or tails of this stuff. I guess I'll just stick to making maps from scratch in SC4 Terraformer. It's a lot easier.

    Share this comment


    Link to comment
    Share on other sites


    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an Account  

    Sign up to join our friendly community. It's easy!  

    Register a New Account

    Sign In  

    Already have an account? Sign in here.

    Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×

volume5_md.pngPlease help us reach our September Goal!

Your contribution helps keep Simtropolis up and running!

Please consider a donation today.

We need to continue to raise enough money each month to pay for expenses which includes hardware, bandwidth, software licenses, support licenses and other necessary 3rd party costs.

By way of a "Thank You" gift, we'd like to send you our STEX Collector's DVD. It's some of the best buildings, lots, maps and mods collected for you over the years. Check out the STEX Collections for more info.

Each donation goes to help us keep the site running free.

Enjoy the site!

OK - See STEX Collections