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.
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.
Not having big plans doesn’t mean I won’t do big things…
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.
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.
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.
I often prefer to use Net Votes per Election District, as this more clearly shows were a person lost and won the race, because Turn out can very quite widely from Election District to Election District. Moreover, some Election Districts are more populus then others.
Turn out was particularly high in districts that Sandy lost, particularly in Westerlo ED 3 (Dormansville), one of most conservative EDs in Albany County currently.
This map shows the Average Democratic Preformance of Statewide candidates by 2010 Voting Tabulation District, with the 2011 County Leg districts superimposed. Be aware that all statewide Democratic candidates preformed quite well across 2010 Albany County,but it also shows the weakness in Dormansville (Westerlo ED 3), and Cooksburg-Preston Hollow-Potters Hollow (Rensselearville ED 2). The entire district was and is marginal Democratic, and can easily swing into the Republican column.
.
While Sandy Gordon got a higher percentage of votes on Democratic line then Debra Bush on the Republican line, the heavy Conservative-block vote in Renselearville EDs and South Westerlo (ED 1) provided a margin of victory for Debra Bush.
Sandy Gordon lost 2/3rds of Knox in the redistricting. He preformed worst in the new portion of the district — specifically Westerlo — and failed to hold onto Renselearville.
While he faced a Tea-Party Movement in Renselearville that organized against him, if he had spent more time going door-to-door in this portion of district, along with introducing himself to Westerlo voters, he may have been able to hold on to his seat.
Regardless, it was tough year for Democratic Incumbents, especially those with a long record and many difficult votes to face, such as over-riding the tax-cap, which will hurt rural residents and those of the hilltowns who own a lot of land hardest.
It was the comedian and sometimes political comenator that once P.J O’Rouke who described the Democratic Party as being a “Bunch of Fun Suckers”. Democrats generally advocate policies that are anti-fun, usually to save small children or the whales. They want new restrictions on what people can do — how fast they can drive, how much they can drink, and even more odiously, what they can drive, or what they can eat.
In contrast are the Republicans. Most good Republicans don’t really care what you eat or drive, or how fast you drive, or if you drink and drive. That said, Republicans are what Mario Cuomo once called the “Big Mean”. They are big and mean to people. They’re anti-welfare, and generally against people who are working class folks. They don’t like taxes, especially if they hit the rich, but watch out working folks, as they probably don’t care that much for you either.
The reality is neither party offers wonderful options. You get to choose between screwed by left or the right. You end up chosing the best of two bad options.
About a year ago, in the Capital Region Solid Waste Plan, the City of Albany proposed creating a mega-solid waste authority to manage the Solid Waste for most of the Eastern Half of New York State. The plan specifically called for creating a regional authority — to service up to nine counties, and cover an area of 100 miles from the center point of the Rapp Road Landfill.
So I decided to make a map, and run some numbers…
100 square miles equals roughly 30,500 square miles, with 21,500 sq miles in New York State and 9,000 sq miles out of State — primarily Southern Vermont, but also most of Western Massachussets, roughly 3/4th of Connecicut, and part of Pennsylvania in the Poconos.
In contrast to 30,500 square miles, Adirondack Park “Blue Line” covers roughly 9,100 sq miles in NY State and the Catskill Park “Blue Line” covers roughly 1,100 sq miles. That includes all land within those parks, publicly and privately owned.
That area, within NY State, covers an area were 2,957,993 persons reported residing in the 2010 census.
That is 2.95 million people, or almost 3 million people, a population greater then Manhattan at 1.5 million persons, and even Brooklyn at 2.5 million.
While no one town or city in the proposed in Authorty is particularly large — the City of Albany is the largest population center at 97,856 followed by Colonie at 81,591, the reality is those numbers add up, when you include the 406 towns and cities in NY State that fall within the 100 mile distance from the Rapp Road Landfill.
Large Cities and Towns in Proposed Authority.
Town /City
Population
Albany city
97,856
Colonie town
81,591
Schenectady city
66,135
Utica city
62,235
Troy city
50,129
Poughkeepsie town
43,341
Cortlandt town
41,592
Monroe town
39,912
Clifton Park town
36,705
Yorktown town
36,081
Guilderland town
35,303
Carmel town
34,305
Rome city
33,725
Bethlehem town
33,656
Poughkeepsie city
32,736
Warwick town
32,065
Newburgh town
29,801
Glenville town
29,480
Rotterdam town
29,094
All Towns and Cities in NY State within 100 miles of Rapp Road Landfill.
Here is entire list of towns partially or wholely contained in the proposed jurisdiction of the Albany Solid Waste Authority (including large cities and towns listed above)…
I needed an easy way to create contours to add to my topographic maps. Creating major and minor contours for each quad seemed like such a pain, as did loading individual quads into Quantum GIS, then styling them. So I wrote this script that largely automates the process, generating the minor and major (defined as 5x minor) contours from Digital Elevation Model files and combining them into one Shapefile.
I was more familiar with PHP then BASH, so I used php-cli to write this script. Writing a command line script in PHP is a bit werid, but it’s what I did. I you don’t like it, write your own script. It works well for me, but I also have PHP on my laptop for web development stuff, so your milage will vary. I store the complete set of Digital Elevation Models for NY State compressed on my laptop as BZip 2 files.
Obviously you’ll have to change paths and other minor things to make it work on your machine. Be aware you will have to install the dbase module from PECL for this script to work, as it directly reads each contour shapefile’s .dbf to convert it over to feet. I could not figure out how to do this directly with ogr2ogr, and it just seemed easier to use PHP for this task.
Output for the script is two shapefiles, the major and minor contours, as two files, consisting of all requested quads merged into major and minor shapefiles.
#!/usr/bin/php -q
<?php
array_shift($argv); // remove program name
if (!$argv || !is_numeric($argv[0]) ) echo "usage: php dbupdate.php [contour_feet] [contour1] ... [contourx]\n";
$minor = array_shift($argv);
$major = $minor*5;
$minorMeters = $minor * 0.3048;
$majorMeters = $major * 0.3048;
foreach ($argv as $quad) {
# uncompress digital elevation model
$dem = "/home/andy/Documents/GIS.Data/digital.elevation.model/{$quad}elu.dem";
system("bzip2 -dkv $dem.bz2");
$conDir = "/home/andy/Documents/GIS.Data/dem.contours";
if (!file_exists($dem)) {
echo "Digital Elevation Model for $quad NOT FOUND! \n\n";
continue;
}
$files = glob("{$conDir}/{$quad}.{$major}ft.*");
array_map('unlink', $files);
$files = glob("{$conDir}/{$quad}.{$minor}ft.*");
array_map('unlink', $files);
system("gdal_contour -a elev -i {$majorMeters} {$dem} {$conDir}/{$quad}.{$major}ft.shp");
system("gdal_contour -a elev -i {$minorMeters} {$dem} {$conDir}/{$quad}.{$minor}ft.shp");
#### convert meters to feet in minor and major contour elevations
foreach (array("{$conDir}/{$quad}.{$minor}ft.dbf", "{$conDir}/{$quad}.{$major}ft.dbf") as $file) {
$db = dbase_open("$file", 2);
if ($db) {
$record_numbers = dbase_numrecords($db);
for ($i = 1; $i <= $record_numbers; $i++) {
// gets the old row
$row = dbase_get_record($db, $i);
// Update the date field with feet instead of meters
$row[1] = ceil($row[1] *3.280839);
// remove the 'deleted' entry
// to understand this, read the dbase man page
unset($row['deleted']);
// replace record and save
dbase_replace_record($db, $row, $i);
}
}
dbase_close($db);
}
// remove uncompressed dem
unlink($dem);
}
// put together filename of merged file
$merged = '';
foreach ($argv as $quad) { $merged .= ".$quad"; }
$merged = 'merged'.$merged;
$quads = $argv;
$files = glob("{$conDir}/{$merged}.{$major}ft.*");
array_map('unlink', $files);
$files = glob("{$conDir}/{$merged}.{$minor}ft.*");
array_map('unlink', $files);
system("ogr2ogr {$conDir}/{$merged}.{$major}ft.shp {$conDir}/{$quads[0]}.{$major}ft.shp");
system("ogr2ogr {$conDir}/{$merged}.{$minor}ft.shp {$conDir}/{$quads[0]}.{$minor}ft.shp");
$files = glob("{$conDir}/{$quads[0]}.{$major}ft.*");
array_map('unlink', $files);
$files = glob("{$conDir}/{$quads[0]}.{$minor}ft.*");
array_map('unlink', $files);
array_shift($quads);
foreach ($quads as $quad) {
if (!file_exists("{$conDir}/{$quad}.{$major}ft.shp")) continue;
system("ogr2ogr -update -append {$conDir}/{$merged}.{$major}ft.shp {$conDir}/{$quad}.{$major}ft.shp");
system("ogr2ogr -update -append {$conDir}/{$merged}.{$minor}ft.shp {$conDir}/{$quad}.{$minor}ft.shp");
$files = glob("{$conDir}/{$quad}.{$major}ft.*");
array_map('unlink', $files);
$files = glob("{$conDir}/{$quad}.{$minor}ft.*");
array_map('unlink', $files);
}
?>