Programming Portfolio r01
-
Upload
michaelfotiadis -
Category
Documents
-
view
230 -
download
0
Transcript of Programming Portfolio r01
-
7/31/2019 Programming Portfolio r01
1/10
Michael
Fotiadis
Michael Fotiadis
MSc Geoinformatics
MEng Land Surveying
Maidenhead, United Kingdom
October 2012
Programming Portfolio
mailto:[email protected]:[email protected] -
7/31/2019 Programming Portfolio r01
2/10
Android Coordinate Reader
2012
Programming Language: Java
Process built to originally use in my work as a
Land Surveyor for Tube Lines. The surveying teamwas receiving updated control coordinate files by
email frequently and I wanted a viewer built into
my phone to have on the field.
Key Points Created a process built for Android 2.1 and
higher.
Can read a file located in the SD card with 4
columns , preferably of the format [ID, X, Y, H].
Uses an on click event to access the file.
Creates a spinner widget and populates it with
the IDs of the control points.
Displays the coordinates of each selected
point on the screen.
Implemented clauses to check whether the
file exists and is not null.
Key Points Created a process built for Android 2.1 and
higher.
Can read a file located in the SD card with 4
columns , preferably of the format [ID, X, Y, H].
Uses an on click event to access the file.
Creates a spinner widget and populates it with
the IDs of the control points.
Displays the coordinates of each selected
point on the screen.
Implemented clauses to check whether the
file exists and is not null.
-
7/31/2019 Programming Portfolio r01
3/10
Transformation and Visualization
Program for Android Tablets
(Work in Progress)
2012
Programming Language: Java
The purpose of this program is to convert
coordinates from the London Survey Grid to the
British National Grid (OSGB36) and then to
WGS84 for dynamic display in Google Maps given
that an internet connection is available.
Key Points This process can help engineers locate London
Survey Control Points easily on site.
The first part of the transformation (LS Grid to
BN Grid) will use topology to locate the
position of the point on the transformation
block map and select the appropriate
transformation parameters.
The second part will introduce the datum shift
between OSGB36 and WGS84 so that the
coordinates can be transformed to , for
display in an online mapping service or for
typing them in a GPS.
Heights will not be used as the London Survey
Grid height datums accuracy is under dispute
by engineers.
Key Points This process can help engineers locate London
Survey Control Points easily on site.
The first part of the transformation (LS Grid to
BN Grid) will use topology to locate the
position of the point on the transformation
block map and select the appropriate
transformation parameters.
The second part will introduce the datum shift
between OSGB36 and WGS84 so that the
coordinates can be transformed to , for
display in an online mapping service or for
typing them in a GPS.
Heights will not be used as the London Survey
Grid height datums accuracy is under dispute
by engineers.
841
1
361
1
1
1
1
1
WGS
shift
OSGBBNGridLSGridy
x
y
x
-
7/31/2019 Programming Portfolio r01
4/10
Coordinate Converters Part 1
2005
Programming Language: Visual Basic
Set of processes built for my dissertation
Reverse Engineering of the GeometricCharacteristics of the Athens Tram Railway
Tracks Horizontal Alignment by Using the GPS
System.
Key Points The first process uses higher geodesy
calculations to convert data between the
Greek Geodetic Reference System 1987
(GGRS87) and its corresponding geoid
Geodetic Reference System 1980 (GRS80).
Reads ASCII files with planar coordinates [ID,
x, y, Geometric Height] and converts them to
geographic coordinate files of the format [ID,
Latitude , Longitude , Geometric Height]
and vice versa.
The second process converts GRS80 ellipsoid
coordinates to geocentric coordinates.
Reads ASCII files of the format [ID, Latitude
Longitude , Geometric Height and converts
them to geocentric coordinate files of the
format [ID, X, Y, Z] and vice versa.
Key Points The first process uses higher geodesy
calculations to convert data between the
Greek Geodetic Reference System 1987
(GGRS87) and its corresponding geoid
Geodetic Reference System 1980 (GRS80).
Reads ASCII files with planar coordinates [ID,
x, y, Geometric Height] and converts them to
geographic coordinate files of the format [ID,
Latitude , Longitude , Geometric Height]
and vice versa.
The second process converts GRS80 ellipsoid
coordinates to geocentric coordinates.
Reads ASCII files of the format [ID, Latitude
Longitude , Geometric Height and converts
them to geocentric coordinate files of the
format [ID, X, Y, Z] and vice versa.
87'1
1
1
80
87'1
1
1
87'1
1
1
GGRS
GRS
GGRSGGRShh
y
x
-
7/31/2019 Programming Portfolio r01
5/10
Coordinate Converters Part 2
2005
Programming Language: Visual Basic
Set of processes built for my dissertation
Reverse Engineering of the GeometricCharacteristics of the Athens Tram Railway
Tracks Horizontal Alignment by Using the GPS
System.
Key Points These processes are used to create a loca
topocentric system so that deformations can
be minimised when working over a small area.
The first process deducts the geocentric
vector [X,Y,Z] of the topocentric central point
from the rest of the coordinates.
Reads ASCII geocentric coordinate files of the
format [ID, X, Y, Z] and outputs files with
differences [ID, DX, DY, DZ] from the centra
point Xo, Yo, Zo.
The second process uses the output file from
process one and creates a topocentric
reference system on a central ,.
Outputs topocentric coordinates [ID, E, N, U]
and also supports the creation of an [E, N, U]
AutoCAD formatted point file for quickinsertion in a drawing.
Key Points These processes are used to create a loca
topocentric system so that deformations can
be minimised when working over a small area.
The first process deducts the geocentric
vector [X,Y,Z] of the topocentric central point
from the rest of the coordinates.
Reads ASCII geocentric coordinate files of the
format [ID, X, Y, Z] and outputs files with
differences [ID, DX, DY, DZ] from the centra
point Xo, Yo, Zo.
The second process uses the output file from
process one and creates a topocentric
reference system on a central ,.
Outputs topocentric coordinates [ID, E, N, U]
and also supports the creation of an [E, N, U]
AutoCAD formatted point file for quickinsertion in a drawing.
-
7/31/2019 Programming Portfolio r01
6/10
Clock Synchroniser and
GPS Inclinometer Data Merger
2005
Programming Language: Basic and Visual Basic
Set of processes built for my dissertationReverse Engineering of the Geometric
Characteristics of the Athens Tram Railway
Tracks Horizontal Alignment by Using the GPS
System.
Key Points A Basic routine was constructed in order to
synchronise the internal clock of a laptop to
the time string sent directly to its COM port by
a geodetic GPS sensor.
This was done in order to synchronise the
GPS recorded position data with the data of
an inclinometer which had different recording
frequency. It also eliminates null entries.
A second Visual Basic process was created to
eliminate the asynchronous observations and
to append the inclinometer data to the GPS
data as 2 extra columns.
Inputs are a converted topocentric GPS file
[Time Stamp, x, y, h] and an inclinometer file
[Time Stamp, Inclination x, Inclination y]. A
merged file is given as output.
Key Points A Basic routine was constructed in order to
synchronise the internal clock of a laptop to
the time string sent directly to its COM port by
a geodetic GPS sensor.
This was done in order to synchronise the
GPS recorded position data with the data of
an inclinometer which had different recording
frequency. It also eliminates null entries.
A second Visual Basic process was created to
eliminate the asynchronous observations and
to append the inclinometer data to the GPS
data as 2 extra columns.
Inputs are a converted topocentric GPS file
[Time Stamp, x, y, h] and an inclinometer file
[Time Stamp, Inclination x, Inclination y]. A
merged file is given as output.
t (sec) x (m) y (m) h (m) t (sec) Ix (degrees) Iy (degrees)
431710.0 476704.327 4191036.714 0.995 431710.0 0.16 0.65431710.5 476704.334 4191036.687 1.003 431710.5 0.16 0.81
431711.0 476704.345 4191036.654 1.004 431711.0 - -
431711.5 476704.350 4191036.632 0.999 431711.5 0.17 0.90
t (sec) x (m) y (m) h (m) Ix (degrees) Iy (degrees)
431710.0 476704.327 4191036.714 0.995 0.16 0.65
431710.5 476704.334 4191036.687 1.003 0.16 0.81
431711.5 476704.350 4191036.632 0.999 0.17 0.90
-
7/31/2019 Programming Portfolio r01
7/10
Adjusted Axis Calculation
2005
Programming Language: Visual Basic
Process built for my dissertation Reverse
Engineering of the Geometric Characteristics ofthe Athens Tram Railway Tracks Horizontal
Alignment by Using the GPS System.
Key Points My dissertation involved the calculation of the
design axis, which is the line drawn by the
designer prior to constructing the left and
right railway tracks and can be calculated by
measuring the tracks on site.
Having measured the tramway tracks and
processed the positioning data, a routine was
coded in order to reverse engineer the axis.
This process calculates the adjusted position
of each track by combining the inclinometer
data with the positioning data.
It then goes on to calculate the axis between
the two tracks by moving on the right track
and finding the minimum distance to the left
track from each observed point.
Key Points My dissertation involved the calculation of the
design axis, which is the line drawn by the
designer prior to constructing the left and
right railway tracks and can be calculated by
measuring the tracks on site.
Having measured the tramway tracks and
processed the positioning data, a routine was
coded in order to reverse engineer the axis.
This process calculates the adjusted position
of each track by combining the inclinometer
data with the positioning data.
It then goes on to calculate the axis between
the two tracks by moving on the right track
and finding the minimum distance to the left
track from each observed point.
-
7/31/2019 Programming Portfolio r01
8/10
Moving Average Filter
2005
Programming Language: Visual Basic
Process built for my dissertation Reverse
Engineering of the Geometric Characteristics ofthe Athens Tram Railway Tracks Horizontal
Alignment by Using the GPS System.
Key Points This process was created for the smoothing of
the bearing diagram of the calculated axis. The
smoothing was crucial for the next step of
reverse engineering its geometric
characteristics because it would make more
accurate the locating of positions of curvature
changes.
A moving average window was used with
parameters of size in points (N) and number of
points it would move by after each repetition
(Step).
Two extra parameters were introduced: the
deviation of a point from the window average
axis and the acceptable gap between two
points that would have to be filled in if no
point was found.
Key Points This process was created for the smoothing of
the bearing diagram of the calculated axis. The
smoothing was crucial for the next step of
reverse engineering its geometric
characteristics because it would make more
accurate the locating of positions of curvature
changes.
A moving average window was used with
parameters of size in points (N) and number of
points it would move by after each repetition
(Step).
Two extra parameters were introduced: the
deviation of a point from the window average
axis and the acceptable gap between two
points that would have to be filled in if no
point was found.
-
7/31/2019 Programming Portfolio r01
9/10
Least Squares Curve Fitting
2005
Programming Language: Visual Basic
Process built for my dissertation Reverse
Engineering of the Geometric Characteristics ofthe Athens Tram Railway Tracks Horizontal
Alignment by Using the GPS System.
Key Points This was the main process of the dissertation.
It used user input to reverse engineer the
geometric design characteristics of the railway
axis.
Input file used was the adjusted axis
positioning file which contained [Kilometric
position, E, N, U, Track Width, Pitch, Roll
Superelevation, Bearing Azimuth].
The process used ActiveX components to draw
results in AutoCAD 2004 in real time and give
the user dynamic control over the results and
required adjustments.
Initial parameters were inferred from the axis
bearing diagram and were corrected by the
user.
Circular and spiral curves were reverse
engineered through the use of Jacobi Matricesand errors were calculated from the least
square adjustment of the estimated curves.
Key Points This was the main process of the dissertation.
It used user input to reverse engineer the
geometric design characteristics of the railway
axis.
Input file used was the adjusted axis
positioning file which contained [Kilometric
position, E, N, U, Track Width, Pitch, Roll
Superelevation, Bearing Azimuth].
The process used ActiveX components to draw
results in AutoCAD 2004 in real time and give
the user dynamic control over the results and
required adjustments.
Initial parameters were inferred from the axis
bearing diagram and were corrected by the
user.
Circular and spiral curves were reverse
engineered through the use of Jacobi Matricesand errors were calculated from the least
square adjustment of the estimated curves.
-
7/31/2019 Programming Portfolio r01
10/10
Miscellaneous Programs
2012
Programming Language: Visual Basic
Programs built to experiment with different
functions of Visual Studio 11.
Key Points Experimented with a picture browser / viewer
and how it can be implemented in a working
program.
Created a graphic program that could create a
random X by Y hexagonal grid, color the
shapes randomly and allocate user selected
labels to the shapes. The purpose of the
process was to be used to complement
tabletop strategy board games which require
the creation of random hex playing boards.
Key Points Experimented with a picture browser / viewer
and how it can be implemented in a working
program.
Created a graphic program that could create a
random X by Y hexagonal grid, color the
shapes randomly and allocate user selected
labels to the shapes. The purpose of the
process was to be used to complement
tabletop strategy board games which require
the creation of random hex playing boards.