Programming Portfolio r01

download Programming Portfolio r01

of 10

Transcript of Programming Portfolio r01

  • 7/31/2019 Programming Portfolio r01

    1/10

    Michael

    Fotiadis

    Michael Fotiadis

    MSc Geoinformatics

    MEng Land Surveying

    [email protected]

    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.