3D Printing the Mountains


Hanging on the wall, under the low ceiling in the basement of my childhood home was a map. It was plastic, and it had a 3D texture of the Colorado Rocky Mountains. Flying over the range in my imagination I could see the high mountain valleys bowled in by the snowcapped peaks.

As an adult I want a map of the Sandia Mountains that I watch from my window. Mountains with all the moods of an impressionist painter. Sunshine illuminating the mountain, standing proud before a black cumulus mountain range. With a 3D printer, and the wonderful availability of open source software, I can. Here is the recipe.

First acquire digital elevation model (DEM) data from the source of your choice. I got my data from viewfinderpanoramas.org, you have to drill down to the coverage map. I like these data, at 3 arcsecond resolution each pixel represents roughly a 30 meter square. Most publically available DEM data is coarser, which is fine if you are printing large areas.

Download the data, unzip it, and add the data to your QGIS session. With a text layer, I loaded a reference location so I could select the printable region. A screenshot of my loaded map appears below.


Certainly the region you want to print is smaller than the DEM file tiles. To extract a region of the DEM file, use the Raster > Extraction > Clipper tool. Choose the rectangular region, draw what you want, and save the new file as a GeoTIFF. Load the new GeoTIFF into QGIS. Scale the vertical range of the new layer so that all values are between 0 and 255. Go to Raster > Raster Calculator and then use the layer’s minimum and maximum values to apply a formula

255*(value – minimum)/(maximum – minimum)

The layer summary shows the minimum and maximum values. In this screencap the values range between 1648 and 3091.


Convert the scaled GeoTIFF to PNG with Raster > Conversion > Translate. OpenSCAD can import PNGs and generate the STL file that most slicing programs want. I needed a recent version of OpenSCAD to load PNGs successfully, the following screenshot was made with 2015-03.1.


The OpenSCAD code is relatively straightforward, the only difficult part is getting the scales correct. You need the pixel extents of the image and the geographic extent (km) of the print area.

// OpenSCAD file to scale and display a raster

vert_min = 1.609; // km
vert_max = 3.255; // km
horiz_x_extent_km = 14.335; // km
horiz_x_extent_px = 154; // 
horiz_y_extent_px = 150; // pixels

h_factor = (1/horiz_x_extent_px)*horiz_x_extent_km;//puts it in km
v_factor = (vert_max - vert_min)/100;

// To keep the object manifold I had to impose a lower layer, this
// also provides strength for the thinnest parts of the plot.
	  horiz_x_extent_km * horiz_y_extent_px/horiz_x_extent_px,
scale([h_factor, h_factor, v_factor]){
    surface(file = "myrasterclipped4.png", 
            center = true);

From OpenSCAD you can render and export an STL. I print with the excellent Repetier Host software. Repetier loads the STL to produce something like the following screenshot.


And finally 3D print it.


This image is the Sandia Mountains crest, my house is located approximately at the lower right of the print. Each day I look out my back window at the this scene.

Thistle and The Bear on Writing

We talk about writing, and answer listener mail.


A few books we reference:

Regrets that I had to disable comments, the spam was overwhelming.

Thistle and The Bear on Hens

Thistle and The Bear talk about a few of the facets of urban living with chickens. Links from the podcast:

BackyardChickens.com is a great resource, as is Backyard Poultry Magazine. Dan’s Boots and Saddles is the local feed store where we acquired our chicks and buy our chicken food.

Thanks to our musicians, Keytronic.


Thistle and The Bear on Ritual in Our Lives

Thistle and The Bear talk about important rituals, like a daily cup of tea. How rituals  are important to us, and why.


Lawn Irrigation in the Desert

In central New Mexico there is not enough rainfall to grow a lawn. Water is precious—and expensive. A responsible homeowner maintains his lawn with no more water than required. But how much is required?

You can calculate the amount. Guide H-504 from the New Mexico State University cooperative extension How to Water Your Lawn shows how to calculate water usage, but it is confusing. To make this easier, I approach the problem from the point of view of a homeowner. A homeowner controls two things in an established lawn:

Watering frequency
Duration of each watering

The duration of each watering depends on how much water the soil can hold down to the root depth, how much water is in the soil when watering starts, and how fast the sprinklers deliver the water. The watering frequency depends on the rate water leaves the soil.

Water enters the lawn mainly from irrigation, but it leaves the lawn into the earth through seepage and into the air through transpiration and evaporation. Water leaves both up and down, but most of the loss is upward through transpiration and I will neglect downward loss.


Of the two controls, the watering duration requires knowing the how fast the sprinklers deliver water, and how much water is needed to soak the ground to the root depth. First, the speed at which the sprinklers deliver water. I measured this by putting eleven tuna cans distributed over the surface of the lawn, and letting the sprinklers run for 25 minutes. I measured the amount of water in each can, and calculated the average flow rate and the standard deviation over the surface of the lawn. My sprinklers deliver 0.75 ±0.28 inches per hour. A standard deviation of almost 30% is fairly uneven coverage, so the best strategy for me is to assume the low end of the range, about 0.5 inches per hour.


The next question is how much water is needed to soak the ground. The amount of water depends on the rooting depth—how deep the water has to go, and on the amount of water the soil can hold, both properties of the soil. The grass’ rooting depth depends on the grass type. Turf grass types in New Mexico are classified as cool season or warm season. Warm season grasses will stay brown longer into the spring, tolerate less foot traffic, and use less water over the year than cool season grasses. My lawn includes a section of grass with short leaves that grows long runners. It stays brown until the middle of May and turns brown in November. I’ve always called it Bermuda grass because it looks like the Bermuda grass I see in San Diego, but I’m no botanist. The majority of my small lawn is cool season, it stays green throughout the year, though it is not vibrant through the winter. Kentucky bluegrass and tall fescue are cool season grasses. According to New Mexico State University’s Circular 660, cool season grass has a rooting depth of about 18 inches.

The soil type governs three important parameters: the water holding capacity, the infiltration rate, and the management allowed depletion. The infiltration rate is only important to control puddling, and I have never been able to form puddles on my lawn with a sprinkler. The other parameters, however, are important. Therefore I set out to measure my soil’s type.

Soils are defined by a three-element mixture model; that is, a soil is defined by what fraction is clay, sand, or silt. One way to measure the soil content is to make a suspension and measure the layers that precipitate. I put about three quarters of a liter of soil in a jar, filled it with water, and shook it. The jar resulted in three layers.

Clay 15%
Silt 49%
Sand 36%


Purdue defines soil type by a mixture model and also shows a technique for determining soil type based on mud plasticity. I used the layer thickness in the photo along with the ternary plot from Purdue to determine that my soil is a medium loam. I estimated the parameters of the soil and used Purdue’s soil model ternary plot to estimate the soil type.


With my soil type, medium loam, I looked up the soil properties in Circular 660 to get infiltration rate (0.75 in/hr), available water (1.5 in/ft), and management allowed depletion (50%). Management allowed depletion is the fraction of the soil’s water capacity that can be lost before plants are stressed.

Infiltration Rate 0.75 in/hour
Available Water 1.4 in/foot
Allowable Depletion 50%

I believe my measurement overestimates the clay content, and that my soil’s behavior is more sand-like. To address this I use a water capacity margin factor to reduce the assumed available water content by half.

The amount of water to apply during a cycle is the amount needed to increase the soil moisture from its management allowed depletion up to capacity. In formula it is

Water to Apply [in] =

(Available Water [in/ft]) × (MAD [%]) × (Root Depth [ft])

To calculate the duration of the sprinkler run, just divide the
applied water by the sprinkler rate

Duration [min] = (Sprinkler Rate [in/min]) × (Water to Apply [in])

I calculate that an irrigation should last 67 minutes, the
necessary time to get 0.5 inches.

Finally, I need to determine the frequency of watering. Frequency of watering depends mainly on the rate water leaves the soil. In turn, the rate water leaves depends on the climate. The following schematic shows the process. The transpiration depletes the soil of moisture. The rate of moisture loss is, probably, non-linear in general but approximately linear at first.


The evaporation and transpiration rates are estimated in Circular 660
for Albuquerque. The following figure shows the data, and shows
that the peak rate of loss is in the first or second week of June.

By using the assumption of linearity, I can calculate the days between
watering. If ET is the evaporation and transpiration rate, then the
days between watering can be estimated as

Watering Interval [day] = (Water to Apply [in]) × (ET [in/day])

My watering interval, in the following figure, shows the variation over the course of the year. Albuquerque public works recommends  watering three times a week at the peak of the season. My calculations suggest watering only twice a week. Albuquerque’s recommendations
conspicuously lack a recommended time, or amount of water. Perhaps my calculation recommends a longer time than the Albuquerque.

Very Bad Food

Welcome to Ink of Park’s new home. I’m kicking off this site transition with another first. My wife and I recorded our first podcast under nom de plume Thistle and The Bear. Enjoy it!

You can listen in-browser (below) or download the file.


My Daughter’s Nightstand

This week I finished a cabinet carpentry project started after Thanksgiving in 2014. It was a stretch of my skills, the first time building a project with full panel construction, where all the panels were solid wood. Except for the bottom of the drawer, the entire structure is made of solid wood. To control cost, the choice of wood was pine and fir. The legs and rails are made from fir, bought as a 2×8 and re-milled by me with a tablesaw and a thickness planer. The top, panels, drawer sides, and the rest are made from 1×6 lumber.


I finished the wood with fourteen thousand coats of milk paint, sanding between each one. The milk paint, in cream color, was top-coated with Danish oil finish because milk paint’s rough finish can stain easily. The green glass knobs came from a collection of my grandfather’s.


The early design planned for through tenons, to leave little exposed pegs. I had also intended to carve a sun-and-moon theme, later to be painted with bright colors.


The panels were cut with the tablesaw. I mounted the panels in the tenoning jig. The runout was ridiculous. In spite of using a micrometer to true the tenoning jig, I had a very difficult time keeping the panel thickness constant. Next time I want to make panels I’ll buy a router jig for the purpose.

The drawer slides are also custom. I had roller suspended drawer slides, but neglected to design the drawer with enough clearance. The drawer front attaches to the drawer sides with hand-cut half-blind dovetails. I was pleased that my first attempt at half-blind dovetails worked out well.


The carcase is entirely mortise and tenon joints. I cut the tenons on the tablesaw wit the jig. In the entire cabinet the only metal fasteners are the clips that hold the table tops on, and the L-brackets that hold the draw slides on.


Dip Pens for the Backs of Photos

Quick Recommendation

Speedball B-5 nib

Rapidraw 3084-F or Reeves & Poole India Ink

The best solution I have found for writing on the back of plastic-coated photos, like those from Costco or most modern developers, is drafting ink. It would seem the inks are usually archival even though the paper is not. The writing is actually readable. When the ink is applied correctly it can be handled without risk of smearing in as little as a few minutes.

If you can’t stand my dip pen solution, more details are available here, where I recommended the Zig Millenium (blotted) or the Zig Photo Signature. The problem with drafting inks is that they cannot be applied with a Bic pen. The inks can by applied with technical pens or with dip pens. Technical pens are a delight, you can cap them—or rather you must cap them. They dry out and clog the pen if not cleaned properly. They are difficult to clean too.

When I’m writing on photos, I tend to do a batch at once, and then none for weeks. Filling a technical pen and cleaning it for an hour’s use is unsatisfying. The alternative to technical pens is the dip pen. Not all dip pens are created equally, or at least not for the same purpose. I had purchased a set of drawing nibs at the local hobby shop thinking I was all set. However, the drawing nibs left puddles of ink on, snagged, and spattered. The photo below shows the bumps and still-wet pools of ink when using some nibs and the smooth, even writing from others.


Different nibs, obviously, perform differently. I thought perhaps different inks would too, and set about to test the pair. A well-performing ink-and-nib combination should

  • apply legibly without spatter
  • leave writing that does not smear after a few minutes
  • be convenient to use

Three simple criteria. Five inks. Six nibs.


  • Higgins Black Magic (probably latex based) (left)
  • Reeves & Poole India Ink (shellac based)
  • Rapidograph Ultradraw 3085-F (acrylic or latex based)
  • Rapidograph Rapidraw 3084-F (acrylic or latex based)
  • Rapidograph Universal 3080-F (acrylic or latex based)


  • Hunt No. 104 (left)
  • Hunt No. 102
  • Hunt No. 56 School
  • Hunt No. 513EF
  • Speedball B-6
  • Speedball B-5

The test involved writing a the ink name and the nib name on the back of a Costco print. The paper is Fujifilm Crystal Archive, which seems to be a common print medium. I wrote each set on the back of the photos. About 24 hours later I scanned the images. After scanning I pressed a wadded facial tissue to the paper and wiped firmly from left to right. Each of the photos below shows the left side, before wiping, and the right side after wiping.

Higgins did not smear, but it did bleed. The detail zoom below is taken from the B-6 test, and the edges are fuzzy and bloomed. This ink, once my favorite, must now be relegated to the scrap.




Reeves & Poole had very minor smearing with the No. 56 nib. It puddled horribly with the 513EF and the No. 56. It worked beautifully with the B-5, B-6. The No. 104 and the No. 102 both scraped the paper and left little puddles, but might be acceptable.



The Ultra 3085-F smeared with the No. 56. It was otherwise a stable ink. It performed well with the B-5 and the B-6 nib. The other nibs either puddled or scratched the photo. The detail below is the with the B-5 nib, and though the line is wide, the mark is very well behaved.




The 3084-F is darker than the 3085-F, and the ink is as well behaved in the B-5 and the B-6 nibs. I see no reason, based on these data, to prefer the 3085. I should have called it Rapid, not Ultra.



The 3080-F is dark, which is good, but the lines are very broad and poorly controlled.



Summary of Ink Performance

Ink Rank Comment
Rapidraw 3084-F 1 (tie)  
Reeves & Poole 1 (tie)  
Ultradraw 3085-F 3 Not very black
Universal 3080-F 4 Poor line control
Higgins Black Magic 5 Bleeding

Summary of Nib Performance

Nib Rank Comment
Speedball B-5 1 Well controlled, wide lines
Speedball B-6 2 Well controlled, but very slight blobbing
Hunt No. 102 3 Scratches, lines blob when crossing
Hunt No. 104 4 Scratches, lines blob badly when crossing
Hunt 513EF 5 Puddles badly
Hunt No. 56 School 6 Puddles extremely badly