Archive
MapInfo Tools published on Codeplex
I published tfw2tab.ps1 along with a new script for creating seamless tab files on codeplex today. The project is called MapInfo Tools.
Create MapInfo TAB files from TFW files
A simple powershell script to create .tab files from .tfw files. Inspiration from http://free-zg.t-com.hr/gorantt/geo/tfw2tab.htm.
# sample usage: dir *.tfw | & c:\scripts\tfw2tab.ps1
param($coordsys = “CoordSys Earth Projection 8, 1000, `”m`”, 15, 0, 1, 5500000, 0″)
# parse coefficients from .tfw file
$tfw = Get-Content $_
$dx = [double]$tfw[0];
$dy = [double]$tfw[3];
$x0 = [double]$tfw[4];
$y0 = [double]$tfw[5];
# calculate additional points for .tab file
$x1 = $x0 + $dx
$y1 = $y0
$x2 = $x0
$y2 = $y0 + $dy
# figure out filenames for target
$tab = $_.FullName.SubString(0, $_.Fullname.Length – $_.Extension.Length) + “.tab”
$tif = $_.Name.SubString(0, $_.Name.Length – $_.Extension.Length) + “.tif”
# create tab file content
$text = @”
!table
!version 300
!charset WindowsLatin2
Definition Table
File “$tif”
Type “RASTER”
($x0,$y0) (0,0) Label “Pt 1”,
($x1,$y1) (1,0) Label “Pt 2”,
($x2,$y2) (0,1) Label “Pt 3”
$coordsys
Units “m”
“@
# create tab file and set content
new-item -path $tab -type file -force -value $text
}
EDIT: Do not use this code. Download the latest version from http://mapinfotools.codeplex.com instead.
Padding numbers with zeros using regular expressions and powershell
I had a very small scripting task today. A bunch of text files contained numbers that should be padded with initial zeros.
For example, the following text:
some text
identifier: “12”
some text
identifier: “8”
some text
Should be replaced by:
some text
identifier: “012”
some text
identifier: “008”
some text
Using regular expressions this task can be accomplished by:
function Pad-Numbers
{
process
{
$text = Get-Content $_.FullName
$text = $text -creplace “identifier: `”(\d)`””, “identifier: `”00`$1`””
$text = $text -creplace “identifier: `”(\d\d)`””, “identifier: `”0`$1`””
Set-Content -path $_.FullName -value $text
}
}
Get-ChildItem -path data -filter *.txt | Pad-Numbers
A good source for regular expressions for powershell users is http://www.regular-expressions.info/powershell.html.