essays

My Love-Hate Relationship with Albany Pine Bush

I have a Love-Hate Relationship with the Albany Pine Bush. It is an …

  • urban unique
  • wildlife preserve

Out in the Pine Bush

The Albany Pine Bush’s strengths are are ..

  • It is conviently located near the city of Albany, you can take either take a bus and walk to get there, or drive a short distance from the city
  • It is a fascinating Pine Bush/sand-dune ecosystem, with fantastic views of the Heldebergs and Catskills and wildlife close to the city.

Overlook Dune 2

At the same time those strengths are it’s greatest weakness …

  • In many ways the preserve is over-regulated and over-governed by the overbearing Albany Pine Bush Commission
  • The Madison Avenue and Karner East Barriens are overused, dominated by joggers and those walking dogs
  • There are too many restrictions on hunting, camping, and even hiking and nature observation — such as a ban on traveling off of trails except in the taking of wildlife.

Stop! Trail Closed

The Adirondack Forest Preserve model might not work in Albany Pine Bush Preserve, but a hybrid model could work. The Commission should try to work more with the public’s desires and demands, and have friendly processes and policies that show that they are there to work with the public rather then restrict access.

Untitled

Urban preserves are a tricky balancing act. It means easy access to yahoos and those who don’t know basic respect. There are far greater human demands compared to relatively unknown state forests, far off the beaten track.

Pitch Pine Outline

A Script to Make Pretty Political Google Maps

A while back I wrote I script for converting and styling KML files from ERSI Shapefiles, like you might download or export form a program like Quantum GIS. It requires you have the web programming language PHP 5 installed, along with the ogr2ogr command.

‘ ?>


View Larger Map ‘ ?>

This program extensively uses the PHP/DOM model, to read and write the XML file. I am not an expert programmer — it’s a hobby, but I am very happy with the results. You might consider using the LATFOR data and Census TIGER/Line for this if your a New York State resident.


#!/usr/bin/php -q
<?php
// POLITICAL STYLING FOR KML
// Converts a Shapefile with Election Results in Percentage
// 
// Input:
//      File_Title = Title for KML Name Field (as Seen in Google Maps)
//      District_Name = Field with District Name In It
//      Percent_as_Decimal = Election Result with Percent. 
//      0.00 - 0.49 = Shade of Red
//      0.50 = White
//      0.50 - 1.00 = Blue
//      Shapefile_Name = Path to Shapefile
//
// Output:
//      Google Maps KML File, Nicely Styled

if (!isset($argv[4])) {
        echo "usage: php politicalKML.php [File_Title] [District_Name] [Percent_as_Decimal]  [Shapefile_Name]\n";
        exit;
}

// required fields
$fileTitle = $argv[1];
$nameField = $argv[2];
$percentField = $argv[3];

// filename
$filename = $argv[4];
$KMLfileName = substr($filename,0,-4).'.kml';

// convert shapefile to kml using ogr2ogr
system("ogr2ogr -f \"KML\" -sql \"SELECT * FROM ". substr($filename,0,-4)." ORDER BY $fileTitle ASC\" $KMLfileName $filename -dsco NameField=$nameField -dsco DescriptionField=$percentField");

// load our new kml file
$doc = new DOMDocument();
$doc->load($KMLfileName);

// first let's replace the name field with a nicer one
$oldnode = $doc->getElementsByTagName('name')->item(0);
$node = $doc->createElement('name', $fileTitle);
$doc->getElementsByTagName('Folder')->item(0)->replaceChild($node, $oldnode);

// delete schema field to save space
$oldnode = $doc->getElementsByTagName('Schema')->item(0);
$doc->getElementsByTagName('Folder')->item(0)->removeChild($oldnode);


// load each placemark, search for maximum — used for making color judgements
foreach ($doc->getElementsByTagName('SimpleData') as $data) {
        if( $data->getAttribute('name') == $percentField) {
                $max[] = abs(substr($data->nodeValue,0)-0.5);
        }
}

// maximum in the political race
sort($max); $max = array_pop($max);
        
// calcuate multiplier for each race
$multiple = 255/$max;

// load each placemark, then set styling and percentage description
foreach ($doc->getElementsByTagName('Placemark') as $placemark) {
        foreach ($placemark->getElementsByTagName('SimpleData') as $data) {
                if( $data->getAttribute('name') == $percentField) {
                        $value = $data->nodeValue;
                        $color = substr($value,0);
                }
        }
        
        // decide if we want to do this blue or red, and then calculate
        // the amount of color versus white
        
        // republican leaning
        if ($color <= 0.5) {
                $colorStr = sprintf('%02x', 255-floor(abs($color-0.5)*$multiple));
                $colorStr = "a0{$colorStr}{$colorStr}ff";
        }
        
        // democratic leaning
        if ($color > 0.5) {
                $colorStr = sprintf('%02x', 255-floor(abs($color-0.5)*$multiple));
                $colorStr = "a0ff{$colorStr}{$colorStr}";
        }
        
        if ($color == 0) {
                $colorStr = '00ffffff';
        }
        
        // stylize the node based on color
        $node = $doc->createElement('Style');

        $linestyle = $doc->createElement('LineStyle');
        $node->appendChild($linestyle);
        $linestyle->appendChild($doc->createElement('width', 0.1));
        $linestyle->appendChild($doc->createElement('color', 'ffffffff'));
        
        $polystyle = $doc->createElement('PolyStyle');
        $node->appendChild($polystyle);
        $polystyle->appendChild($doc->createElement('color', $colorStr));       

        $oldnode = $placemark->getElementsByTagName('Style')->item(0); 
        
        $placemark->replaceChild($node, $oldnode);
                        
        // delete extended data to save KML space
        $data = $placemark->getElementsByTagName('ExtendedData')->item(0);
        $placemark->removeChild($data);
        
        // update the description
        $oldnode = $placemark->getElementsByTagName('description')->item(0); 
        $node = $doc->createElement('description', 'Recieved '.($color*100).'% of the vote.');
        $placemark->replaceChild($node, $oldnode); 
}

// finally write to the file
$doc->save($KMLfileName);

// calculate size in MB
$filesize = filesize($KMLfileName)/1024/1024;
if ( $filesize < 10) {
        $zipCommand = "zip ".substr($KMLfileName,0,-4).".kmz $KMLfileName";
        system($zipCommand);
        
        $kmzfilesize = filesize(substr($KMLfileName,0,-4).".kmz")/1024/1024;
        echo "KMZ is " .sprintf('%01.2f', $kmzfilesize)." MB, while the KML file is ".sprintf('%01.2f',$filesize)." MB.\n"; 
}
else {
        echo "Woah Horsey! The produced file is greater then 10 MB, at a size of ".sprintf('%01.2f',$filesize)." MB uncompressed. You need to simply your polygons before proceeding, otherwise Google Maps won't be able to read it. \n";
}

>

Population Density of Albany County and New York State

Albany County.

This Google Maps is based on the block level 2010 Census Population Counts. Census Blocks with no residents appear 100% clear.

Regardless, zoom in, to see how many people live in a particular block, and the density of residency of poeple in various communities. Compared to the city, the suburbs, and rural areas all seem depopulated.

‘; ?>


View Larger Map


View Larger Map‘; ?>

New York State.

The population density of New York State. Notice this is a totally different scale, and is by per square miles, per Census Tract rather then block. Makes all of upstate look rural compared to New York City. Zero population blocks are not clear on this map.

‘ ?>


View Larger Map‘; ?>

Ranking the Size of State Parks, Wild Forests, Wilderness, Other Lands

For the sake of comparison, I made up maps ranking Wilderness, Wild Forests, other DEC Lands (State Forests/WMAs, etc), and State Parks. The largest parcels to smallest parcels are pink, then red, orange, yellow, green, blue, purple — colored based on comparison to other parcels of the same class. Click on them to see acreages, or click on the link below to see on Google Maps, which includes each parcel sorted by acreage.

‘ ?>

Wilderness Areas Ranked.


View Larger Map

Wild Forests Areas Ranked.


View Larger Map

Other DEC Lands Ranked.


View Larger Map

State Parks Areas Ranked.


View Larger Map ‘ ?>

Why I Like Mapping

Doing GIS Mapping has become quite the hobby of mine. Especially when it comes to generating maps of public lands, I am endlessly fascinated by exploring the lands that we, the public own.

rentny

Rendering maps is mostly about loading layers, and zooming in. Yet, the effort to put together a map teaches you a little bit about the land you are rendering and its features. Mapping can teach you about a land where you have never been before, and prepare you and interest you in a future trip.there. Mapping requires you to pay attention to the landscape, correcting invalid data, and trying to create the best possible presentation of the landscape’s natural and man-made features.

Mountains

Even when you’ve never been on a piece of land, making a map can teach you much about the landscape and how it’s laid out. A map can tell you many details both by the features on the map and the implied features that you calcuate based on the relation of one land form to another piece of land.

Another Choppy Day on the Lake

A map makes it possible to better understand a piece of land, without ever putting a foot on it. While maps aren’t always accurate, and sometimes they can be confusing on an unfamiliar piece of land, they do provide context. Maps are a great source of exploring the unknown and unfamiliar.

Twenty-Nine

Today is my twenty-nineth birthday. Last year before turning 30. While people assure me that turning 30 is not a big deal, and everybody goes through it, somehow I feel like I got to make my 29th birthday, and make my 29th year something special.

End of the Day

Everytime around this time of year, I like to take a few minutes to think back about the past year and the coming year. In many ways this year is kind of a blank slate, something to be planned as things go along.

Looking Back to Wakely Dam

Not having big plans doesn’t mean I won’t do big things…

Stratton Mountain From a Recently Cleared Area

I already are thinking about many weekend and longer road trips, hikes, and camping trips. I at least don’t have to worry too much about my truck breaking down. I probably won’t set anything down in stone for sure, but I do want to get back to some of my favorite spots in the Adirondacks, the Green Mountains, Central NY, Finger Lakes, and the Allegheny Mountains of Pennsylvania.

Oil Heating in NY State

I got to get a truck cap this spring, and kayak racks for my truck. Hopefully by mid-summer, I can my truck wired up with a second battery to power my camping gear without fears of running my main battery dead. I need to work to build up my savings, a lot of which went into purchasing my pickup truck last year.

Northern Most Ridges of Catskills

I also got to look forward to future years. This year I will become vested in the State Employee Pension Plan, which means I will have other options opening. I might consider going back to college, or even moving out of the state. I look forward to the adventures of the coming year.

The Six Step Plan for Summer

Step 1: January

Play in the snow, celebrate the fact that the snow will only be around for three more months …

Abbie Covered with Snow

Step 2: February.

Try to stay warm during the shortest but most depressing month of the year.

Chopped

Step 3: March.

If were lucky, the snow will begin to melt away in the lower elevations.

Western Catskills

Step 4: April.

Come to the realization that even in late April, the Adirondacks can still have a lot of snow and ice.

White Birch

Step 5: May.

Happy May! Happy Black Fly Season! And finally some green when your not being eaten alive.

Made It Over That Beaver Dam

Step 6: June.

And finally June will roll around, the blackflies will be gone. We will be able to enjoy the summer time once again.

New York State and New England Media Markets