CORA 198 Final Report

200
CAE Inc. 1135 Innovation Drive Ottawa, Ont., K2K 3G7 Canada Tel: 613-247-0342 Fax: 613-271-0963 DRDC CORA TASK 198 IMPLEMENTING A PARAMETRIC MODEL FOR SATELLITE AIS CONTRACT #: W7714-083663/001/SV PREPARED FOR: CHERYL EISLER Defence Scientist, MARPAC OR Team Defence Research and Development Canada Centre for Operational Research and Analysis Victoria, BC 24 March 2016 Document No. 5888-001 Version 02 © Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016 PREPARED BY: Contract Report DRDC-RDDC-2015-C137 The scientific or technical validity of this Contract Report is entirely the responsibility of the Contractor and the contents do not necessarily have the approval or endorsement of the Department of National Defence of Canada.

Transcript of CORA 198 Final Report

Page 1: CORA 198 Final Report

CAE Inc. 1135 Innovation Drive

Ottawa, Ont., K2K 3G7 Canada Tel: 613-247-0342 Fax: 613-271-0963

DRDC CORA TASK 198 IMPLEMENTING A PARAMETRIC MODEL FOR SATELLITE AIS

CONTRACT #: W7714-083663/001/SV

PREPARED FOR:

CHERYL EISLER

Defence Scientist, MARPAC OR Team Defence Research and Development Canada Centre for Operational Research and Analysis

Victoria, BC

2 4 M a r c h 2 0 1 6

Document No. 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016

© Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

PREPARED BY:

Contract ReportDRDC-RDDC-2015-C137

The scientific or technical validity of this Contract Report is entirely the responsibility of the Contractor and the contents do not necessarily have the approval or endorsement of the Department of National Defence of Canada.

Page 2: CORA 198 Final Report
Page 3: CORA 198 Final Report

DRDC CORA Task 198 Implementing a Parametric Model for Satellite AIS

R E V I S I O N H I S T O R Y

Revision Reason for Change Origin Date

Version 01 DRAFT A Draft document issued for comment. 26 February 2016

Version 01 Initial version, incorporating feedback. 16 March 2016

Version 02 Minor typographical corrections. 24 March 2016

24 March 2016 – iii – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 4: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

T A B L E O F C O N T E N T S

1 INTRODUCTION ..................................................................................................... 1 1.1 Background .......................................................................................................... 1 1.2 Objective .............................................................................................................. 1 1.3 Scope ................................................................................................................... 1 1.4 Outline .................................................................................................................. 2

2 MODEL DESIGN .................................................................................................... 4 2.1 Background .......................................................................................................... 4 2.2 MATLAB/STK Model Design ................................................................................ 6 2.2.1 Partition GeoJSON S-AIS Data ......................................................................... 6 2.2.2 Generate STK Ephemeris and Interval Constraint Files .................................... 6 2.2.3 Determine the Probability of Extracting Uncorrupted AIS Messages ............... 10

3 MATLAB IMPLEMENTATION .............................................................................. 13 3.1 Deliverable A ...................................................................................................... 13 3.1.1 Script CORA_198_Deliverable_A .................................................................... 13 3.2 Deliverable B ...................................................................................................... 14 3.2.1 Function isGeoInAOR ...................................................................................... 15 3.2.2 Script CORA_198_Deliverable_B_Generate_Ephemeris ................................ 16 3.2.3 Script CORA_198_Deliverable_B_Import_Ship ............................................... 17 3.3 Deliverable C ...................................................................................................... 18 3.3.1 Function convertAccessStringCellToDateTime ................................................ 18 3.3.2 Function createNewCora198Scenario ............................................................. 19 3.3.3 Function getAllFilesOfType .............................................................................. 20 3.3.4 Function isGeoInAOA ...................................................................................... 21 3.3.5 Function isTimeInAccessInterval ..................................................................... 21 3.3.6 Function processAisMessageArray.................................................................. 22 3.3.7 Script CORA_198_Deliverable_C_Process_AIS_Data .................................... 23 3.3.8 Script CORA_198_Deliverable_C_Generate_STK_Files ................................. 24 3.3.9 Script CORA_198_Deliverable_C_Create_Analyze_STK_Model .................... 25 3.3.10 Script CORA_198_Deliverable_C_Analyze_STK_Model................................. 27 3.3.11 Script CORA_198_Deliverable_C_Execute_All ............................................... 28 3.4 Deliverable D ...................................................................................................... 28

4 RESULTS ............................................................................................................. 30 4.1 GeoJSON Data Analysis .................................................................................... 31 4.2 Model Results ..................................................................................................... 31

5 DISCUSSION ........................................................................................................ 41 5.1 GeoJSON Data Issues ....................................................................................... 41

24 March 2016 – iv – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 5: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

5.2 Potential Future Work ......................................................................................... 45

6 CONCLUSION ...................................................................................................... 47

APPENDIX A ACRONYMS AND ABBREVIATIONS ............................................. A-1

APPENDIX B REFERENCES ................................................................................. B-1

APPENDIX C AREAS OF ANALYSIS DEFINITIONS ............................................ C-1

APPENDIX D EXACTVIEW1_38709 SATELLITE ALTITUDE ............................... D-1

APPENDIX E MATLAB SCRIPTS ...........................................................................E-1 E.1 CORA_198_Deliverable_A .............................................................................E-1 E.2 CORA_198_Deliverable_B_Generate_Ephemeris ....................................... E-16 E.3 CORA_198_Deliverable_B_Import_Ship ...................................................... E-33 E.4 CORA_198_Deliverable_C_Analyze_STK_Model ........................................ E-37 E.5 CORA_198_Deliverable_C_Create_Analyze_STK_Model ........................... E-45 E.6 CORA_198_Deliverable_C_Execute_All ...................................................... E-56 E.7 CORA_198_Deliverable_C_Generate_STK_Files ........................................ E-57 E.8 CORA_198_Deliverable_C_Process_AIS_Data ........................................... E-66

APPENDIX F MATLAB FUNCTIONS ..................................................................... F-1 F.1 convertAccessStringCellToDateTime ............................................................. F-1 F.2 createNewCora198Scenario ........................................................................... F-2 F.3 getAllFilesOfType.......................................................................................... F-29 F.4 isGeoInAOA .................................................................................................. F-30 F.5 isGeoInAOR .................................................................................................. F-33 F.6 isTimeInAccessInterval ................................................................................. F-59 F.7 processAisMessageArray ............................................................................. F-61

24 March 2016 – v – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 6: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

L I S T O F F I G U R E S

Figure 2-1: JTFA AOR (white) and AOA (green) ............................................................. 8 Figure 2-2: JTFN AOR (white) and AOA (green) ............................................................. 8 Figure 2-3: JTFP AOR (white) and AOA (green) ............................................................. 9 Figure 2-4: JTFA, JTFN and JTFP AORs (white) and AOAs (cyan) .............................. 10 Figure 4-1: Probability as a Function of Number of Ships for the JTFA......................... 34 Figure 4-2: Probability as a Function of Transmissions per second for the JTFA ......... 35 Figure 4-3: Probability as a Function of Number of Ships for the JTFN ........................ 37 Figure 4-4: Probability as a Function of Transmissions per second for the JTFN ......... 37 Figure 4-5: Probability as a Function of Number of Ships for the JTFP......................... 39 Figure 4-6: Probability as a Function of Transmissions per second for the JTFP ......... 39 Figure 5-1: Ship 323453 Route Data ............................................................................. 42 Figure 5-2: Ship 324685 Route Data ............................................................................. 42 Figure 5-3: Ship 326966_NORDIC_OLYMPIC Route Data ........................................... 43 Figure 5-4: Ship 333429_ALASKA_PIONEER Route Data ........................................... 44 Figure 5-5: Ship 392098_MSC_MANDRAKI Route Data .............................................. 44 Figure 5-6: Ship 485983_KV_SVALBARD Route Data ................................................. 45

24 March 2016 – vi – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 7: CORA 198 Final Report

DRDC CORA Task 198 Implementing a Parametric Model for Satellite AIS

L I S T O F T A B L E S

Table 2-1: Equation 1 Variable Description ..................................................................... 4 Table 2-2: List of Overlap Factors given Satellite Altitude ............................................... 5 Table 2-3: Variable Values used in MATLAB Model...................................................... 11 Table 3-1: Input Parameters for isGeoInAOR ............................................................... 16 Table 3-2: Input Parameters for convertAccessStringCellToDateTime ......................... 19 Table 3-3: Cell Array Output for convertAccessStringCellToDateTime ......................... 19 Table 3-4: Input Parameters for createNewCora198Scenario ....................................... 20 Table 3-5: Input Parameters for getAllFilesOfType ....................................................... 21 Table 3-6: Input Parameters for isGeoInAOA ................................................................ 21 Table 3-7: Input Parameters for isTimeInAccessInterval ............................................... 22 Table 3-8: Input Parameters for processAisMessageArray ........................................... 22 Table 3-9: Output of processAisMessageArray ............................................................. 23 Table 4-1: exactView-1 STK TLE Report ....................................................................... 30 Table 4-2: exactView-1 Sensor Parameters .................................................................. 31 Table 4-3: Task 198 Platform Specifications ................................................................. 32 Table 4-4: Variable Values Used in Probability Calculations ......................................... 32 Table 4-5: Results for JTFA during 31 Aug 2015 .......................................................... 33 Table 4-6: Results for JTFN during 31 Aug 2015 .......................................................... 35 Table 4-7: Results for JTFP during 31 Aug 2015 .......................................................... 38

24 March 2016 – vii – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 8: CORA 198 Final Report

DRDC CORA Task 198 Implementing a Parametric Model for Satellite AIS

E X E C U T I V E S U M M A R Y

The Defence Research and Development Canada’s (DRDC) Centre for Operational Research and Analysis (CORA) Maritime Forces Pacific (MARPAC) Operational Research Team had a requirement to develop and implement a parametric model for reception of uncorrupted messages with the Satellite Automatic Identification System (S-AIS) using the exactView-1 satellite from the exactEarth™ satellite constellation. This parametric model is based on the works of James K.E. Tunaley’s 2011 technical report “The Performance of a Space-Based AIS System”, [5]. The model was developed in MathWork’s MATLAB R2015a script language. The MATLAB script made use of the Systems Tool Kit (STK) software package version 10.1.3 and STK Connect commands.

We implemented the required model in a series of MATLAB scripts and functions. These scripts and functions were designed to break down a series of marine-based GeoJSON S-AIS Class A Position Report messages into STK ephemeris and interval constraint files, use these files in STK to perform access analysis between ship objects and the exactEarth™ satellite’s AIS sensor, and then apply that information into an adapted version of the equations in [5] to determine the probability of receiving an uncorrupted S-AIS message. These scripts and functions were delivered to the Technical Authority (TA) along with a list of known limitations and issues.

The model was used to determine the probability of receiving uncorrupted S-AIS messages, given a set of real-world GeoJSON S-AIS messages from the exactView-1 satellite. The model performed analysis for the scenario period 31 Aug 2015 00:00:00.000 UTCG to 31 Aug 2015 23:59:59.999 UTCG, and determined a set of probabilities for the extraction of an uncorrupted S-AIS message in the Joint Task Force Atlantic, Northern and Pacific areas of responsibility (AOR).

24 March 2016 – viii – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 9: CORA 198 Final Report

DRDC CORA Task 198 Implementing a Parametric Model for Satellite AIS

1 INTRODUCTION

This document is the final report developed for the project entitled “Implementing a Parametric Model for Satellite AIS.” This report was completed by CAE Canada under Task 198 for contract #W7714-083663/001/SV to Defence Research and Development Canada (DRDC) Centre for Operational Research and Analysis (CORA).

1.1 Background

In support to the Coastal Surveillance on Approaches to Canada task (RCN Institution project, WBE 1.2.2 and Maritime Information Warfare, WBE 1.6), the Maritime Forces Pacific (MARPAC) Operational Research Team had a requirement to develop models of current and potential platforms that could be used for coastal surveillance. In support of this task, it was necessary to implement a parametric model for reception of uncorrupted messages with Satellite Automatic Identification System (S-AIS) with the exactView-1 satellite from the exactEarth™ satellite constellation. A single satellite was chosen for the initial implementation to demonstrate the utility of the model. In future, a more complex model with multiple satellites may be implemented.

1.2 Objective

The objective of this task was to develop and implement a parametric model of reception of uncorrupted messages with Satellite Automatic Identification System (S-AIS) for the exactView-1 satellite from the exactEarth™ satellite constellation. The model is based on James K.E. Tunaley’s 2011 technical report “The Performance of a Space-Based AIS System”, [5], which outlines the probability of receiving an uncorrupted AIS message.

The model uses the Analytical Graphics Inc. (AGI) Systems Tool Kit (STK) application to perform its satellite modelling and line-of-sight calculations. The model uses MathWorks’s MATLAB scripting language as it integrates well with STK and automates the execution of STK commands through MATLAB scripts and functions. The model implementation is driven by a series of MATLAB scripts to perform line-of-sight (LOS) analysis in STK between a satellite sensor and three predefined area of responsibility (AOR) regions. These line-of-sight analyses are referred to in STK as access calculations.

The data from STK is imported back into MATLAB where the data is then used to determine the probability of receiving an uncorrupted AIS message for a specific AOR time period.

1.3 Scope

In the model that was developed, the deliverable minimum requirements were stated as:

• Connect to an existing STK session using STK Connect commands with MATLAB.

24 March 2016 – 1 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 10: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

• Create a MATLAB script using STK Connect commands to automatically set the scenario time frame to 31 Aug 2015 00:00:00.000 UTCG to 31 Aug 2015 23:59.59.999 UTCG and generate a new satellite object with the properties of the exactView-1 satellite (with sensor) as defined in DRDC CORA Task 192 [1], ensuring that the satellite database is up-to-date before doing so.

• Create a MATLAB script using STK Connect commands to generate the West Coast of Canada AOR from DRDC CORA Task 192 to define area targets, and save the STK file.

• Create a MATLAB script to convert raw positional ship reports from S-AIS data (provided by the technical authority (TA)) to ephemeris files. Automatically create a ship object for each ephemeris file for detection purposes and save the STK file using Connect commands in MATLAB.

• Implement the parametric model defined in [5] for the probability of extraction of uncorrupted messages based on the number of ship detections in the sensor swath and save the STK file using STK Connect commands in MATLAB.

• Create a MATLAB script using STK Connect commands to run a report to obtain the probability of extraction of non-collided messages over the scenario time frame, obtain the minimum, maximum and average values, save the STK file, and disconnect from the STK session.

1.4 Outline

This document contains the following sections:

• Section 1. Introduction: A brief description of the background, objective, and scope of the work conducted during this task.

• Section 2. Model Design: Background and description of the model for finding the probability of receiving an uncorrupted AIS message.

• Section 3. MATLAB Implementation: Descriptions of the MATLAB scripts, functions, their activities, and their outcomes associated with the execution of the model developed under this task.

• Section 4. Results: A summary of the results from the execution of the model developed under this task.

• Section 5. Discussion: A brief description of the limitations, known issues, and potential future work associated with the model developed under this task.

• Section 6. Conclusion: A brief summary of this task and its results.

24 March 2016 – 2 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 11: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

• Appendix A. Acronyms and Abbreviations: A list of the acronyms and abbreviations used in this document.

• Appendix B. References: A list of references used during this task.

• Appendix C. Areas of Analysis Definitions: Description of the positional data for the areas of analysis (AOA) developed under this task.

• Appendix D. exactview1_38709 Satellite Altitude: A time step depiction of the STK exactview1_38709 satellite object’s altitude during the scenario period.

• Appendix E. MATLAB Scripts: The source code for the MATLAB scripts developed under this task.

• Appendix F. MATLAB Functions: The source code for the MATLAB functions developed under this task.

24 March 2016 – 3 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 12: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

2 MODEL DESIGN

This section contains a description of the model for the reception of uncorrupted messages with S-AIS, presented by James K.E. Tunaley in “The Performance of a Space-Based AIS System” [5], which was used in this task. Section 2.1 contains a brief summary of the original model presented in [5]. Section 2.2 contains a high level description of the model, adapted from [5], which is used to calculate the probability of extracting uncorrupted messages with S-AIS for predefined AORs.

2.1 Background

The initial model used in this task was presented by James K.E. Tunaley in “The Performance of a Space-Based AIS System”, [5]. The paper is focused on a number of different parameters and equations which are used to determine the probability of extracting spaced-based AIS (S-AIS) Class A messages given AIS Self-Organized Time Division Multiple Access (SOTDMA) cell collisions, message corruption due to thermal noise, and interference from other transmitters.

Equation 1, which was presented in [5], is used to compute the probability of extracting an uncorrupted S-AIS message given the mean rate of random messages arriving in an AIS SOTDMA time slot. The terms and variables used in Equation 1, from [5], are listed in Table 2-1.

Table 2-1: Equation 1 Variable Description

Variable Description

𝛾𝛾 The probability of extracting an uncorrupted message given that messages can be corrupted by thermal noise, interference from neighboring channels or interference in the same channel from terrestrial transmitters.

𝛾𝛾0

The probability of receiving an uncorrupted message at the input of the receiving system regardless of collisions. In [5], this value is calculated by taking the intercept of a trend line in a plot of 𝑙𝑙𝑙𝑙(𝛾𝛾) against the number of ships in the FOV. Its value is 0.2683.

𝛾𝛾 = 𝛾𝛾0𝑒𝑒−𝜆𝜆𝜏𝜏0(1−𝑞𝑞)(1+𝑠𝑠) ( 1 )

24 March 2016 – 4 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 13: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Variable Description

𝜆𝜆

The average rate of random AIS messages arriving in an AIS SOTDMA time slot.

In [5], this value is calculated using the equation 𝜆𝜆 = 𝑁𝑁−𝑀𝑀𝑛𝑛𝑐𝑐ℎ ∆𝑇𝑇

, where 𝑁𝑁 is the average number of ships in the AIS sensor’s FOV, 𝑀𝑀 is the average number of ships inside a SOTDMA cell, 𝑙𝑙𝑐𝑐ℎ is the number of AIS VHF channels, and ∆𝑇𝑇 is the average time between ship message transmissions. According to [4], messages are transmitted on two maritime VHF channels: 161.950 MHz and 162.050 MHz. According to [5], the average time interval between transmissions is 6 seconds.

𝑞𝑞

The probability that a single message will be uncorrupted by the simultaneous arrival of another singleton message.

In [5], this value is estimated using the equation 𝑞𝑞 = 1 − 𝑚𝑚 𝑛𝑛𝑐𝑐ℎ ∆𝑇𝑇𝜏𝜏0 (1+𝑠𝑠)

, where 𝑚𝑚 is the slope of a trend line in a plot of 𝑙𝑙𝑙𝑙(𝛾𝛾) against the number of ships in the FOV, 𝑙𝑙𝑐𝑐ℎ is (as above) the number of AIS VHF channels, ∆𝑇𝑇 is (as above) the average time between ship message transmissions, and 𝜏𝜏0 and 𝑠𝑠 are defined below. The trend line in [5] resulted in a value for 𝑚𝑚 of -0.000354. In [5], this resulted in a value for 𝑞𝑞 of 0.904 given values of 𝑚𝑚, 𝑙𝑙𝑐𝑐ℎ, ∆𝑇𝑇, 𝜏𝜏0 and 𝑠𝑠 of -0.000354, 2, 6, 0.0267 and 0.674 respectively.

𝑠𝑠

(1 + 𝑠𝑠) is a factor intended to model the effect of message overlap based on S-AIS sensor altitude and swath width. 𝑠𝑠 is calculated in [3] as a function of the altitude of the AIS sensor and the partition of the sensor’s detection area for AIS sensor FOV, which assumes that the FOV goes to the horizon. Table 2-3 contains a list of 𝑠𝑠 values from [3].

𝜏𝜏0

The time length of the AIS SOTDMA time slot. According to [4], the AIS TDMA time frame length is 60 seconds, and there are 2250 time slots where each message fits into a time slot. Therefore, the length of a single time slot is 26.667 milliseconds.

Table 2-2: List of Overlap Factors given Satellite Altitude

Satellite Altitude (km) 𝒔𝒔

400 0.5759

600 0.6362

800 0.6744

1000 0.6992

24 March 2016 – 5 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 14: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

2.2 MATLAB/STK Model Design

The parametric model for this task is designed to take real world S-AIS messages from the exactView-1 satellite and calculate the probability of extracting an uncorrupted message when the exactView-1 satellite has access to (overlaps with) an AOR defined in [6]. The model makes use of the concepts and equations outlined in [5], and takes into account the fact that AIS messages can be corrupted by thermal noise, interference from neighboring channels, or interference in the same channel from terrestrial transmitters.

In the model, only S-AIS Position Report Class A messages are used as part of the analysis. This limitation was imposed on the real world data, since the original model from [5] only applied to Class A AIS messages for a proposed exactEarth™ AIS receiver system. The execution of the model is broken down into three sequential operations:

1. partitioning the exactEarth™ satellite’s S-AIS data entries into separate ship files;

2. creating the relative STK ephemeris and interval constraint files; and

3. analyzing the STK satellite to ship access data to determine the probability of extracting an uncorrupted message.

2.2.1 Partition GeoJSON S-AIS Data

The MATLAB/STK model relies on real world S-AIS data. The real world S-AIS messages used in this model were delivered in GeoJSON format, an open standard format for encoding geographical data structures (such as points and polygon) based on the JavaScript Object Notation (JSON) [8]. The satellite S-AIS data was delivered by the TA as a single text file containing millions of GeoJSON formatted AIS Position Report Class A and Class B messages. Each row in the text file represents a different AIS position report from a ship.

In MATLAB, each row is inspected and the associated message report time, latitude, and longitude are extracted from the satellite data file and written into a separate text file according to the row’s ship ID and ship name.

This partitioning operation generates a single text file for each ship ID listed in the S-AIS data file. The MATLAB script also filters out the AIS Class B messages so that only the data from Class A messages appear in the partitioned ship files. The partitioning of the ship data is completed to organize the AIS position reports by ship so that other MATLAB scripts can generate the necessary STK ephemeris and temporal interval constraint files.

2.2.2 Generate STK Ephemeris and Interval Constraint Files

The next step in setting up the MATLAB/STK model is the creation of the STK ephemeris and temporal interval constraint files from the partitioned S-AIS ship data. In MATLAB, all the text files containing partitioned S-AIS data, within a selected folder, are read in. A single STK

24 March 2016 – 6 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 15: CORA 198 Final Report

DRDC CORA Task 198 Implementing a Parametric Model for Satellite AIS

ephemeris file and STK temporal interval constraint file are generated for each partitioned ship file.

The STK ephemeris file (*.e) is created using the report time, latitude, and longitude data from the partitioned ship file. The ephemeris file is designed to provide STK with the ship object’s position data for a given time in the scenario. In the script, the position data is converted from geodetic latitude/longitude to an earth-centred, earth-fixed (ECEF) Cartesian coordinate system for use in the STK ephemeris files. The report time data is also converted to an epoch time difference value, in seconds, based on a scenario start date/time value entered into MATLAB.

The STK temporal interval constraint file (*.int) is created using the report time data from the partitioned ship file and an AIS message transmission time slot constant defined in the MATLAB script. A set of start and stop date/times are calculated for each report time to simulate the transmission of the AIS message. The start time is calculated as report date/time minus the transmission time AIS message transmission time slot. The end time is assigned the report date/time value from the ship file. Once imported into STK, the ship object will only be visible to the satellite sensor access calculations during the intervals specified in the temporal interval constraint file.

NOTE: The AIS message transmission time slot is 0.026667 seconds and the S-AIS report time precision is only to the closest second. This causes multiple, different time slot transmissions to occur during the same S-AIS reported date/time.

Moreover, the MATLAB script can filter out entities based on position during the creation of the STK ephemeris and temporal interval constraint files. After discussions with the TA, it was determined that only AIS messages sent while the satellite sensor has access to an AOR area target were of import. As a result, a set of three AOAs were manually created, one for each AOR defined in [6]: Joint Task Force Atlantic (JTFA), Joint Task Force North (JTFN) and Joint Task Force Pacific (JTFP).

The AOAs were created by examining the swath positions that the exactView-1 satellite sensor had with the AORs during the scenario date/time of 31 Aug 2015 00:00:00 UTCG to 31 Aug 2015 23:59:59 UTCG. The AOA area targets were generated manually by taking the union of the areas that were covered by or had contact with the exactView-1 sensor swath when the sensor had access, or LOS, to the AOR in question during the scenario period. The AOAs are represented in green in Figure 2-1, Figure 2-2 and Figure 2-3. The position data for all three AOAs can be found in Appendix C.

24 March 2016 – 7 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 16: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Figure 2-1: JTFA AOR (white) and AOA (green)

Figure 2-2: JTFN AOR (white) and AOA (green)

24 March 2016 – 8 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 17: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Figure 2-3: JTFP AOR (white) and AOA (green)

If filtering is enabled, then the MATLAB script will only generate an ephemeris and temporal interval constraint file for a ship object if at least one of the ship object’s position reports resides within the specified AOA. The data for the ship objects outside of the AOA is dropped and no files are created. The script can also filter according to the union between all three AOAs, as depicted in Figure 2-4.

24 March 2016 – 9 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 18: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Figure 2-4: JTFA, JTFN and JTFP AORs (white) and AOAs (cyan)

2.2.3 Determine the Probability of Extracting Uncorrupted AIS Messages

Finally, using MATLAB, the access times between the exactView-1 satellite sensor and all of the available ship objects can be determined in STK. This is accomplished by sequentially adding each STK ephemeris file and associated STK temporal interval constraint file into an STK scenario as part of a single ship object. The access between the satellite sensor and the ship object is then calculated and imported back into MATLAB.

The MATLAB script iterates through the list of access times, which represent AIS message transmissions collected by the satellite, and determines if the access occurs when the satellite has access to an AOR. If it does, then the total number of received transmissions is increase by one for that AOR’s access time, otherwise the transmission is discarded from the model’s analysis. Once the STK access analysis portion of the model is complete, the MATLAB script will have the start date/time of the AOR access, the end date/time of the AOR access, and the number of transmissions that occurred during that access interval.

The probability of extracting an uncorrupted AIS message can now be calculated for each AOR’s access interval using Equation 1. The variables and values used in the model’s equation are specified in Table 2-2.

24 March 2016 – 10 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 19: CORA 198 Final Report

DRDC CORA Task 198 Implementing a Parametric Model for Satellite AIS

Table 2-3: Variable Values used in MATLAB Model

Variable Description

𝛾𝛾0

The probability of receiving an uncorrupted message at the input of the receiving system regardless of collisions. The estimated the value, in [5], of 𝛾𝛾0 was 0.2683 We use the estimated value in [5] in our model, replacing the 𝛾𝛾0 variable with the value 0.2683.

𝜆𝜆 ∗ 𝜏𝜏0 The average number of random AIS messages arriving per second. In our model, we determined the value of (𝜆𝜆 ∗ 𝜏𝜏0) by dividing the number of messages received during the STK access period by the duration of the STK access in seconds.

𝑞𝑞

The probability that a single message will be uncorrupted by the simultaneous arrival of another singleton message. In [5], 𝑞𝑞 is estimated to be 0.904 for a satellite with two AIS channels, an average transmission time of 6 seconds, and an altitude of 800 km. We use this value in our model since the exactview1_38709 satellite object’s properties in STK are comparable to those in [5]. The exactview1_38709 satellite object has an average altitude of 824.37 km (see Appendix D). We replace the 𝑞𝑞 variable with the value 0.904.

𝑠𝑠

The effect of message overlap based on S-AIS sensor altitude and swath width. The calculated the value, in [3], of 𝑠𝑠 is 0.6744 for a satellite with an altitude of 800 km. We use this value in our model since the exactview1_38709 satellite object has an average altitude of 824.37 km (see Appendix D). We replace the 𝑠𝑠 variable with the value 0.6744.

An analysis of the 𝑠𝑠 value revealed that the difference between a fixed and dynamic value is negligible. In [3], the difference in the 𝑠𝑠 values between 600 km and 800 km altitude is 0.0382, while the difference in the 𝑠𝑠 value between 800 km and 1000 km altitude is 0.0248. Therefore, the average difference between each 1 km of altitude is 0.0001575. This means the 5 km to 40 km offset in the STK exactview1_38709 satellite object’s altitude, listed in Appendix D, has a negligible effect on the 0.6744 value of 𝑠𝑠 for a satellite with 800 km altitude. As a result, we use a fixed 𝑠𝑠 value for this initial model.

Applying these values to Equation 1:

𝛾𝛾 = 𝛾𝛾0𝑒𝑒−𝜆𝜆𝜏𝜏0(1−𝑞𝑞)(1+𝑠𝑠)

= 0.2683𝑒𝑒−𝜆𝜆𝜏𝜏0(1−0.904)(1+0.6744 )

= 0.2683𝑒𝑒−𝜆𝜆𝜏𝜏0(0.096)(1.6744)

( 2 )

24 March 2016 – 11 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 20: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Implementing this equation in MATLAB, the MATLAB script determines the probability of extracting an uncorrupted AIS message from the exactView-1 satellite when it has access to an AOR. The MATLAB script also determines the minimum, maximum, and average probability for each AOR.

24 March 2016 – 12 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 21: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

3 MATLAB IMPLEMENTATION

This section contains descriptions of the MATLAB script and function deliverables developed as part of the model for this task.

NOTE: All of the delivered scripts for this task contain instance-dependent configuration variables listed at the beginning of the script. Modifying these variables will allow the user to customize the input, operation, and output of the script. These variables should always be inspected before executing any of the MATLAB scripts.

3.1 Deliverable A

This deliverable was composed of a single MATLAB script called CORA_198_Deliverable_A. This script was designed to satisfy the task requirements to:

• connect to STK through MATLAB;

• set the scenario time frame to 31 Aug 2015 00:00:00.000 UTCG to 31 Aug 2015 23:59.59.999 UTCG;

• create a new exactView-1 STK satellite object with sensor object as defined in [6];

• generate the west coast of Canada AOR area targets from [6]; and

• save the STK file.

3.1.1 Script CORA_198_Deliverable_A

The CORA_198_Deliverable_A script executes the following actions:

1. The script connects to an existing STK session.

2. The script sets the STK scenario time frame to start date/time of 31 Aug 2015 00:00:00.000 UTCG and end date/time of 31 Aug 2015 23:59.59.999 UTCG.

3. The script creates a new satellite object with the properties of the exactView-1 satellite (with sensor) as defined in CORA Task 192, [6]. The creation of this satellite object in STK can be performed by the script in one of four ways:

a. The satellite can be added through AGI’s online satellite database. This import method provides the most up-to-date and accurate satellite propagation.

b. The satellite can be added by importing an existing STK satellite file (*.sa). This import method can provide the most accurate option when the system in question does not have an Internet connection.

24 March 2016 – 13 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 22: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

c. The satellite can be added by importing an existing two-line element (TLE) satellite file.

d. The satellite can be added through the default, offline STK satellite database.

The method used to add the satellite to the scenario can be specified within the script’s internal parameters or selected by the user at the time of execution.

4. The script creates the west coast of Canada AOR area targets from DRDC CORA Task 192, [6]. This includes the following area targets:

a. AOR_MIDDLE_NORTH (AOR_MN);

b. AOR_MIDDLE_SOUTH (AOR_MS);

c. AOR_OUTER_NORTH (AOR_ON);

d. AOR_OUTER_SOUTH (AOR_OS);

e. AREA_OF_INTEREST (AOI);

f. CENTRAL_COAST (CC);

g. GULF_OF_ALASKA_EAST (GOAE);

h. GULF_OF_ALASKA_WEST (GOAW);

i. HAIDA_GWAI (HG);

j. JTFP;

k. NORTH_COAST (NC);

l. PACIFIC_COAST_NORTH (PC-N); and

m. PACIFIC_COAST_SOUTH (PC-S).

5. The script saves the STK scenario and disconnects from STK.

This script is designed to run in MATLAB R2015a and requires AGI STK 10.1.3, STK Pro, and STK Integration. The MATLAB code for Deliverable A can be found in Appendix E.1.

3.2 Deliverable B

This deliverable was composed of two MATLAB scripts and a single MATLAB function called CORA_198_Deliverable_B_Generate_Ephemeris, CORA_198_Deliverable_B_Import_Ship and isGeoInAOR, respectively. These scripts and function are designed to satisfy the task

24 March 2016 – 14 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 23: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

requirement to convert raw GeoJSON S-AIS positional ship reports from the exactEarth™ data to STK ephemeris files and automatically create ship objects in STK for each ephemeris file through MATLAB so that they can be used in the model calculations.

Discussions with the TA in regards to the scripts following delivery revealed several issues:

• The CORA_198_Deliverable_B_Generate_Ephemeris script should not exclude ships within the satellite sensor swath when the swath had access to the AOR despite the fact that these ships may not be inside or intersecting the AOR. These missing ships would skew the probability data when examining an AOR access interval.

• This realization added a model requirement to include ships outside of the AORs and eventually resulted in the creation of the AOAs.

• There was no way to efficiently determine when a ship object made an AIS transmission in the STK scenario. This requirement for the model was not previously captured and was not being taken into consideration during the development of Deliverable B. To address this, temporal constraint interval files were created and added for each of the ship objects in STK to simulate the transmission from a ship.

• The CORA_198_Deliverable_B_Generate_Ephemeris script produced thousands of ephemeris files. Attempting to add all of these ship objects to a single STK scenario can cause the STK scenario to become unresponsive and unusable, depending upon the memory and graphics card available. In some cases, it caused the STK application to crash, most likely due to memory limitations. To address this, the analysis of the ship objects in STK was performed across multiple STK scenarios.

As a result of the above issues, the functionality offered by the CORA_198_Deliverable_B_Generate_Ephemeris and CORA_198_Deliverable_B_Import_Ship scripts was used as the basis of the scripts for Deliverable C.

3.2.1 Function isGeoInAOR

The isGeoInAOR function is used to determine if a point or set of points exists within a specific AOR. The function uses the input parameters listed in Table 3-1. It then outputs a Boolean value indicating true when the point(s) are in, or intersect, the specified AOR(s). Otherwise the function returns false.

This functionality is accomplished by executing a number of MATLAB inpolygon and line segment intercept calculations against hard coded latitude and longitude points from [6] for AOR JTFA, JTFN and JTFP areas. This function is designed to run in MATLAB R2015a. The MATLAB code for this function can be found in Appendix F.5.

24 March 2016 – 15 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 24: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Table 3-1: Input Parameters for isGeoInAOR

# Name Type Description Required

1 aorRegion String A string parameter indicating the AOR region to be evaluated. This value can be “ALL”, “JTFA”, “JTFN” or “JTFP”. The “ALL” option will evaluate all three AORs.

Yes

2 lat Double The geodetic latitude value of the first point. Yes

3 long Double The geodetic longitude value of the first point. Yes

4 lat2 Double The geodetic latitude value of the second point that is needed to evaluate if a line segment intersects the AOR.

No

5 long2 Double The geodetic longitude value of the second point that is needed to evaluate if a line segment intersects the AOR.

No

6 evalIntersect Boolean Boolean value indicating whether or not to check if a line segment intersects the AOR. The default value is true.

No

3.2.2 Script CORA_198_Deliverable_B_Generate_Ephemeris

The CORA_198_Deliverable_B_Generate_Ephemeris script takes a single GeoJSON S-AIS data file from the exactEarth™ data and converts it into a series of STK ephemeris files, so that ships in the S-AIS file can be simulated in a STK scenario. A single STK ephemeris file is created for every unique ship ID in the S-AIS file.

The script executes the following actions:

1. The script prompts the user to select an S-AIS text file.

2. The script parses the selected S-AIS text file, and either breaks down the entries in memory or partitions the data into separate ship files. The method of separating the ship data (in memory or using separate files) depends on both a configuration variable and the memory available to MATLAB on the system executing the script.

3. The ship data is then sorted according to ship ID and time.

4. The script then iterates through the complete set of ship data. The position data is converted from geodetic latitude/longitude to an ECEF Cartesian coordinate system. The report time data is converted to an epoch time difference value, in seconds, based on a STK scenario start date/time value set as a configuration variable. The converted data is output to a new

24 March 2016 – 16 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 25: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

STK ephemeris file depending configuration variable values and the results from the isGeoInAOR function.

This script is designed to run in MATLAB R2015a. The MATLAB code for this script can be found in Appendix E.2.

NOTE: This script does not create the STK temporal constraint files and it does not evaluate the AIS position report message type.

3.2.3 Script CORA_198_Deliverable_B_Import_Ship

The CORA_198_Deliverable_B_Import_Ship script takes a user selected set of STK ephemeris files generated by the CORA_198_Deliverable_B_Generate_Ephemeris script and imports each ephemeris file as a new ship object in to an existing STK scenario.

The script executes the following actions:

1. The script connects to an existing STK session.

2. The script prompts the user to select a set of STK ephemeris files (*.e) or a folder containing ephemeris files.

3. The script creates a subfolder in the STK scenario folder for the STK ephemeris files.

4. The script iterates through the set of STK ephemeris files.

a. It copies the ephemeris file into the STK scenario subfolder for safe keeping.

b. It sends STK commands to create a new ship object and sets the route propagation to the ephemeris file.

5. The script saves the STK scenario and disconnects from STK.

This script is designed to run in MATLAB R2015a and requires AGI STK 10.1.3, STK Pro, and STK Integration. The MATLAB code for this script can be found in Appendix E.3.

NOTE: This script does not copy or import STK temporal constraint files.

CAUTION: THIS SCRIPT WILL ATTEMPT TO IMPORT ALL OF THE SELECTED EPHEMERIS FILES REGARDLESS OF THE NUMBER OF OBJECTS THAT STK IS ABLE TO SUPPORT.

24 March 2016 – 17 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 26: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

3.3 Deliverable C

This deliverable is composed of five MATLAB scripts and six MATLAB functions. These scripts and functions are designed to satisfy the task requirements, based on Deliverables A and B:

• convert the raw positional ship reports from the exactEarth™ S-AIS data into STK ephemeris files;

• convert the raw positional ship reports from the exactEarth™ S-AIS data into STK temporal interval constraint files;

• automatically create a ship object in STK for each ephemeris file;

• implement the model defined in [5] to determine the probability of extraction of uncorrupted messages based on the number of ship detections in the sensor swath; and

• create a MATLAB script to obtain the probability of extraction of uncorrupted messages over the scenario time frame and obtain the minimum, maximum, and average values.

To perform the analysis from the starting GeoJSON S-AIS data file, the user must either execute the CORA_198_Deliverable_C_Execute_All script or sequentially execute the following scripts:

• CORA_198_Deliverable_C_Process_AIS_Data;

• CORA_198_Deliverable_C_Generate_STK_Files; and

• CORA_198_Deliverable_C_Create_Analyze_STK_Model.

Once the CORA_198_Deliverable_C_Create_Analyze_STK_Model script has completed executing, it will produce the probability of receiving an uncorrupted message for the selected AOR(s), a set of STK scenarios used during the analysis, and a set of MATLAB Workspace variables that contain the ship/AOA access times calculated during the analysis. The STK scenarios can be reused by the CORA_198_Deliverable_C_Analyze_STK_Model script to recalculate the access times between the satellite sensor and the ship objects. The MATLAB Workspace variables can be imported back into MATLAB and reused with the processAisMessageArray function to determine the probability of extracting an uncorrupted message based on the model parameters.

3.3.1 Function convertAccessStringCellToDateTime

The convertAccessStringCellToDateTime function is used to convert a two-column MATLAB cell array containing an AOR’s STK Computed Access Interval Times into a six-column array. This conversion is performed to allow the transmissions occurring during the access times to be

24 March 2016 – 18 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 27: CORA 198 Final Report

DRDC CORA Task 198 Implementing a Parametric Model for Satellite AIS

analysed by the CORA_198_Deliverable_C_Analyze_STK_Model and CORA_198_Deliverable_C_Create_Analyze_STK_Model scripts.

The list of function inputs can be found in Table 3-2 and the resulting cell array output structure is listed in Table 3-3. This function is designed to run in MATLAB R2015a. The MATLAB code for this function can be found in Appendix F.1.

Table 3-2: Input Parameters for convertAccessStringCellToDateTime

No. Name Type Description Required

1 accessTimes Cell Array A two column cell array created through the STK Integration ComputedAccessIntervalTimes.ToArray() Connect command which should contain the STK computed access interval date/time strings The array Column 1 should contain the start times and Column 2 should contain the end times.

Yes

2 scenarioStartTime

String A string containing the date/time of the scenario to be analyzed.

Yes

Table 3-3: Cell Array Output for convertAccessStringCellToDateTime

Col # Type Description

1 String String indicating the start time of the access interval.

2 String String indicating the end time of the access interval.

3 Double New column indicating the epoch start time difference, in seconds, with respect to the scenario’s start time.

4 Double New column indicating the epoch end time difference, in seconds, with respect to the scenario’s start time.

5 Integer New column indicating the number of transmissions made during the access interval. The value is set to 0.

6 Integer New column indicating the number of unique ship objects making transmissions within the access interval. The value is set to 0.

3.3.2 Function createNewCora198Scenario

The createNewCora198Scenario function is used to create a new STK scenario according to the specification of this task. The function uses the input parameters listed in Table 3-4. This function will create a new scenario, set the scenario start and end times, import the exactView-1 satellite and create the following area targets from [6]: AOR_MN, AOR_MS, AOR_ON, AOR_OS, CC, GOAE, GOAW, HG, NC, PC-N, PC-S, SC, JTFA, JTFN and JTFP.

24 March 2016 – 19 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 28: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

This function is designed to run in MATLAB R2015a and requires STK 10.1.3, STK Pro, and STK Integration to execute properly. The MATLAB code for this function can be found in Appendix F.2.

Table 3-4: Input Parameters for createNewCora198Scenario

No. Name Type Description Required

1 root Interface.AGI_STK_Objects_10.

_IAgStkObjectRoot

AGI STK 10 object root interface. Yes

2 scenarioName String String indicating the scenario name of the new scenario. This string cannot include spaces or special characters.

Yes

3 stkScenarioPath String The *.sc file path name for the STK new scenario.

Yes

4 scenarioStartTime String The start date/time of the scenario. Yes

5 scenarioEndTime String The end date/time of the scenario. Yes

6 satImportOption String The satellite import option for the exactView-1 satellite object. This can either be: • "Import" which adds the satellite

based on an existing *.sa STK satellite file

• "Local" which adds the satellite from the local, offline satellite database

• "TLE" which adds the satellite based on a selected TLE file o "Online" which adds the

satellite from the AGI servers

Yes

7 satImportPath String The path of either the *.sa STK satellite file or TLE file when “Import” or “TLE” is selected.

No

3.3.3 Function getAllFilesOfType

The getAllFilesOfType function is a recursive directory searching function designed to find all files of a certain extension within all of the subdirectories of a given root directory path. The function uses the input parameters listed in Table 3-5 and outputs a list of full path strings indicating all files with the given extension.

24 March 2016 – 20 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 29: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

This function is designed to run in MATLAB R2015a. The MATLAB code for this function can be found in Appendix F.3.

Table 3-5: Input Parameters for getAllFilesOfType

No. Name Type Description Required

1 dirPath String String containing the root path to be searched. All subdirectories will be searched.

Yes

2 fileExtension String String containing the file extension you wish to find (e.g., *.sc, *.e, *.*).

Yes

3.3.4 Function isGeoInAOA

The isGeoInAOA function is used to determine if a point exists within a specific AOA. The function uses the input parameters listed in Table 3-6. It then outputs a Boolean value indicating true when the point is in the specified AOAs, otherwise the function returns false. This is accomplished by executing a number of MATLAB inpolygon calculations against hard coded latitude and longitude points for the JTFA, JTFN and JTFP AOAs.

This function is designed to run in MATLAB R2015a. The MATLAB code for this function can be found in Appendix F.4.

Table 3-6: Input Parameters for isGeoInAOA

No. Name Type Description Required

1 aorRegion String A string parameter indicating the AOR region to be evaluated. This value can be “ALL”, “JTFA”, “JTFN” or “JTFP”. The “ALL” option will evaluate all three AOAs.

Yes

2 lat Double The geodetic latitude value. Yes

3 long Double The geodetic longitude value. Yes

3.3.5 Function isTimeInAccessInterval

The isTimeInAccessInterval function is used to determine if a particular start and end time pair resides within an AOR access interval cell array. The function uses the input parameters listed in Table 3-7. The function will return the integer value of the cell array row, if there is a time in the interval array that contains the given interval’s start and end times. Otherwise, the function will return a value of 0.

24 March 2016 – 21 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 30: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

This function is designed to run in MATLAB R2015a. The MATLAB code for this function can be found in Appendix F.6.

Table 3-7: Input Parameters for isTimeInAccessInterval

No. Name Type Description Required

1 startDateTimeInSec

Double Epoch time difference, in seconds, between the interval start time to check and the scenario start time.

Yes

2 endDateTimeInSec

Double Epoch time difference, in seconds, between the interval end time to check and the scenario start time.

Yes

3 accessTimes Cell Array Converted cell array, created by the convertAccessStringCellToDateTime function, containing the access epoch time difference intervals you wish to compare against.

Yes

3.3.6 Function processAisMessageArray

The processAisMessageArray function is applied in the model discussed in Section 2.2, MATLAB/STK Model Design, to AOR’s access cell array to determine the probability of receiving an uncorrupted message during the AOR’s access intervals. The function uses the input parameters listed in Table 3-8. The function then outputs the variables listed in Table 3-9. The function also outputs its findings to a comma-separated values (CSV) file called “S-AIS Probability Results for X.csv” where X is the value of the aorText input parameter.

This function is designed to run in MATLAB R2015a. The MATLAB code for this function can be found in Appendix F.7.

Table 3-8: Input Parameters for processAisMessageArray

No. Name Type Description Required

1 aorText String The name of the AOR being processed. This is used when outputting the information into a new file.

Yes

2 gammaZero Double The 𝛾𝛾0 value, which is the probability of receiving an uncorrupted message at the input of the receiving system regardless of collisions.

Yes

3 q Double The q value, which is the probability that a single message will be uncorrupted by the simultaneous arrival of another singleton message.

Yes

24 March 2016 – 22 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 31: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

No. Name Type Description Required

4 s Double The s value, which is the effect of message overlap based on AIS sensor altitude and swath width.

Yes

5 accessTimes Cell Array A cell array, created by the convertAccessStringCellToDateTime function, containing number of transmissions made during an access interval.

Yes

Table 3-9: Output of processAisMessageArray

No. Name Type Description

1 probArray Cell Array A cell array containing the access time information and the associated probability of receiving an uncorrupted AIS message the AOR access interval(s).

2 minProb Double The minimum probability value of receiving an uncorrupted message calculated for the AOR cell array.

3 maxProb Double The maximum probability value of receiving an uncorrupted message calculated for the AOR cell array.

4 avgProb Double The average probability value of receiving an uncorrupted message calculated for the AOR cell array.

3.3.7 Script CORA_198_Deliverable_C_Process_AIS_Data

The CORA_198_Deliverable_C_Process_AIS_Data script is responsible for partitioning the message entries in an S-AIS GeoJSON file into separate ship files. A single file is created for each unique ship identifier value in the S-AIS file. The S-AIS ship data files generated by this script are then used by the CORA_198_Deliverable_C_Generate_STK_Files script to sort the data and generate the appropriate STK files.

CAUTION: THIS SCRIPT HAS AN OPTION TO INCLUDE CLASS B MESSAGES IN THE FINAL PARTITION. THIS OPTION EXISTS TO SUPPORT FUTURE EXTENSIONS TO THE MODEL. DISABLING THE FILTERING OF CLASS B AND OTHER NON-CLASS A MESSAGES FROM THE FINAL PARTITIONED FILES WILL RESULT IN INVALID RESULTS WITH THE CURRENT MODEL.

The CORA_198_Deliverable_C_Process_AIS_Data script executes the following actions:

• The script prompts the user to select an S-AIS text file.

24 March 2016 – 23 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 32: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

• The script parses the selected S-AIS text file and partitions the data into separate ship files. The S-AIS messages can be filtered out according to whether or not they are of type: Position Report Class A.

This script will create a Boolean variable 'exitStatus' with a value of true and return the path to the partitioned AIS data output folder if it is successful, and a value of false if it is not successful. These variables are used by the CORA_198_Deliverable_C_Execute_All script to run multiple MATLAB scripts sequentially.

This script is designed to run in MATLAB R2015a. The MATLAB code for this script can be found in Appendix E.8.

3.3.8 Script CORA_198_Deliverable_C_Generate_STK_Files

The CORA_198_Deliverable_C_Generate_STK_Files script uses the previously partitioned ship S-AIS data from the CORA_198_Deliverable_C_Process_AIS_Data script and converts them into STK ephemeris (*.e) files and STK temporal interval constraint (*.int) files. A single ephemeris file and temporal interval constraint file is created for each partitioned S-AIS ship file.

The CORA_198_Deliverable_C_Generate_STK_Files script requires the following:

• partitioned AIS files produced by the CORA_198_Deliverable_C_Process_AIS_Data script;

• access to the isGeoInAOA MATLAB function; and

• access to the isGeoInAOR MATLAB function.

The CORA_198_Deliverable_C_Generate_STK_Files script executes the following actions:

• The script iterates through the set of partitioned S-AIS ship text files in a specific folder. For each ship file the script:

o Reads in the raw ship data from the file.

o Checks to see if the ship is contained in either the AOR or AOA. The check is determined by a set of configuration variables at the start of the script. The ship data will be dropped and the script will read in the next ship in the list if the appropriate conditions are not met.

o Converts the position from geodetic latitude/longitude to the ECEF Cartesian coordinate system.

o Converts the report time data to an epoch time difference value, in seconds, based on a scenario’s start date/time value that is set as a configuration variable.

o Sorts the ship AIS message entries according the converted epoch report time.

24 March 2016 – 24 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 33: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

o Creates a new STK ephemeris file for the ship data.

o Creates a new STK temporal interval constraint file for the ship data.

This script will create a Boolean variable 'exitStatus' with a value of true and return the path to the generated STK ephemeris and interval constraint files output folder if it is successful, and a value of false if it is not successful. These variables are used by the CORA_198_Deliverable_C_Execute_All script to run multiple MATLAB scripts sequentially.

This script is designed to run in MATLAB R2015a. The MATLAB code for this script can be found in Appendix E.7.

3.3.9 Script CORA_198_Deliverable_C_Create_Analyze_STK_Model

This CORA_198_Deliverable_C_Create_Analyze_STK_Model script will automatically create STK scenarios, and import a set of STK ephemeris (*.e) and STK interval constraint files (*.int) previously generated by the CORA_198_Deliverable_C_Generate_STK_Files script. This script will then calculate the ship access with the exactView-1 AIS sensor in the STK scenario to determine the number of transmitted messages made over the course of an access interval with an AOR.

The total number of transmissions over the access time is then used to determine the probability of extracting an uncorrupted AIS message according to the probabilistic model presented in Section 2.2,MATLAB/STK Model Design.

The CORA_198_Deliverable_C_Create_Analyze_STK_Model script requires the following:

• STK 10.1.3, STK Pro, and STK Integration;

• STK ephemeris and interval constraint files files produced by the CORA_198_Deliverable_C_Generate_STK_Files script;

• access to the createNewCora198Scenario MATLAB function;

• access to the convertAccessStringCellToDateTime MATLAB function;

• access to the isTimeInAccessInterval MATLAB function; and

• access to the processAisMessageArray MATLAB function.

The CORA_198_Deliverable_C_Create_Analyze_STK_Model script executes the following actions:

• The script creates an initial CORA 198 STK scenario through the custom createNewCora198Scenario MATLAB function. This scenario containing the exactView-1 satellite and appropriate area targets.

24 March 2016 – 25 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 34: CORA 198 Final Report

DRDC CORA Task 198 Implementing a Parametric Model for Satellite AIS

• The script performs STK access calculations between the satellite sensor and the AORsselected in the configuration variables. The results of the AOR access calculations areimported into MATLAB and converted into an analysis cell array through the customconvertAccessStringCellToDateTime function.

• The script iterates through the set of STK ephemeris files generated by theCORA_198_Deliverable_C_Generate_STK_Files script. For each ephemeris file the script:

o Searches for the equivalent STK interval constraint file.

o Copies both the STK ephemeris and interval constraint files into a subdirectory of theSTK scenario folder.

o Creates a new ship object in the STK scenario. The ephemeris file in the subdirectory ofthe STK scenario folder is used to propagate the new ship object’s route. The intervalconstraint file in the subdirectory of the STK scenario folder is applied as the new ship’stemporal constraint interval.

o Performs STK access calculations between the satellite sensor and the new ship object.The results of the access calculation are imported into MATLAB. For each accessinterval the script:

Checks to see if ship/satellite access interval occurs during one of the selectedAOR’s satellite/AOR access interval. The appropriate row in the satellite/AOR accesscell array is increased by one if the access intervals overlap.

o If a specific maximum number of ship objects are reached within the scenario, then thescript saves the current scenario and then creates a new CORA 198 STK scenariothrough the custom createNewCora198Scenario function. The number of ship objectssignalling this operation is defined in the configuration variables.

• The script applies the parametric model and processes the number of transmissions in thesatellite/AOR access interval cell arrays through the custom processAisMessageArrayMATLAB function. This returns the list of probabilities associated with receiving anuncorrupted message during the scenario period.

• The script outputs and saves the list of probabilities according to the specific AOR.

• The script saves the MATLAB workspace variables for future use.

This script will create a Boolean variable 'exitStatus' with a value of true if it is successful, and a value of false if it is not successful. This variable is used by the CORA_198_Deliverable_C_Execute_All script to run multiple MATLAB scripts sequentially.

This script is designed to run in MATLAB R2015a and requires AGI STK 10.1.3, STK Pro, and STK Integration. The MATLAB code for this script can be found in Appendix E.5.

24 March 2016 – 26 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 35: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

3.3.10 Script CORA_198_Deliverable_C_Analyze_STK_Model

The CORA_198_Deliverable_C_Analyze_STK_Model script will calculate the ship access with the exactView-1 AIS sensor to determine the number of transmitted messages over the course of an access interval with an AOR. These access calculations are performed on CORA 198 based STK scenarios either created manually or automatically by the CORA_198_Deliverable_C_Create_Analyze_STK_Model MATLAB script.

The total number of transmissions over the access time is then used to determine the probability of extracting an uncorrupted AIS message according to the probabilistic model presented in Section 2.2, MATLAB/STK Model Design.

The CORA_198_Deliverable_C_Analyze_STK_Model script requires the following:

• STK 10.1.3, STK Pro, and STK Integration;

• STK scenarios produced by the CORA_198_Deliverable_C_Create_Analyze_STK_Model script;

• access to the convertAccessStringCellToDateTime MATLAB function;

• access to the getAllFilesOfType MATLAB function;

• access to the isTimeInAccessInterval MATLAB function; and

• access to the processAisMessageArray MATLAB function.

The CORA_198_Deliverable_C_Analyze_STK_Model script executes the following actions:

• The script prompts the user for a root folder of the STK scenarios they wish to analyze.

• The script iterates through the set of STK scenario files. For each STK scenario file the script:

o Opens the STK scenario.

o For the first scenario, the scenario invariant calculations are performed. The script performs STK access calculations between the satellite sensor and the AORs selected in the configuration variables. The results of the AOR access calculations are imported into MATLAB and converted into an analysis cell array through the custom convertAccessStringCellToDateTime function.

o The script determines the set of the ship objects in the current STK scenario.

o The script iterates through the set of ship objects.

24 March 2016 – 27 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 36: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

o For each STK ship object, the script performs STK access calculations between the satellite sensor and the newly imported ship object. The results of the access calculation are imported into MATLAB.

o For each access interval of each STK ship object, the script checks to see if the ship/satellite access interval occurs during one of the selected AOR’s satellite/AOR access intervals. The appropriate row in the satellite/AOR access cell array is increased by one if the access intervals overlap.

• The script applies the parametric model and processes the number of transmissions in the satellite/AOR access interval cell arrays through the custom processAisMessageArray MATLAB function. This returns the list of probabilities associated with receiving an uncorrupted message during the scenario period.

• The script outputs and saves the list of probabilities according to the specific AOR.

• The script saves the MATLAB workspace variables for future use.

This script will create a Boolean variable 'exitStatus' with a value of true if it is successful, and a value of false if it is not successful. This variable is used by the CORA_198_Deliverable_C_Execute_All script to run multiple MATLAB scripts sequentially.

This script is designed to run in MATLAB R2015a and requires AGI STK 10.1.3, STK Pro, and STK Integration. The MATLAB code for this script can be found in Appendix F.4.

3.3.11 Script CORA_198_Deliverable_C_Execute_All

The CORA_198_Deliverable_C_Execute_All script is designed to completely automate the CORA 198 model analysis in MATLAB. It will execute the following CORA 198 Deliverable C MATLAB scripts in sequential order:

1. CORA_198_Deliverable_C_Process_AIS_Data script;

2. CORA_198_Deliverable_C_Generate_STK_Files script; and then

3. CORA_198_Deliverable_C_Create_Analyze_STK_Model script.

This script is designed to run in MATLAB R2015a and requires AGI STK 10.1.3, STK Pro, and STK Integration. The MATLAB code for this script can be found in Appendix E.6.

3.4 Deliverable D

Deliverable D contained the results of executing the model in MATLAB. This involved executing the relevant scripts from Deliverable C and was designed to satisfy the task requirements to obtain the probability of extraction of non-collided messages over the scenario timeframe and to

24 March 2016 – 28 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 37: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

obtain the minimum, maximum, and average values. The contents of Deliverable D can be found in Section 4, Results.

24 March 2016 – 29 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 38: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

4 RESULTS

This section contains the results of the analysis and implementation of the model developed under this task. The results in this section are with respect to the exactEarth™ S-AIS GeoJSON data file, eedata.txt, provided by the TA on 03 December 2015. The eedata file contains Class A and B position reports collected by the exactView-1 satellite during the task’s scenario period of 31 Aug 2015 00:00:00 UTCG and of 31 Aug 2015 23:59:59 UTCG.

The STK scenarios used to generate the model’s results contained the same set of scenario properties and non-ship objects. Each STK scenario had an analysis period of 31 Aug 2015 00:00:00 UTCG to 31 Aug 2015 23:59:59.999 UTCG. Each STK scenario had an exactView-1satellite object, which was originally defined in [6]. The position and sensor definitions for the satellite object can be found in Table 4-1 and Table 4-2 respectively. Each scenario also had the JTFA AOR area target, JTFN AOR area target, JTFP AOR area target and other JTFP AOR sub regions area target defined in [6].

The issues and limitations with the model can be found in Section 5, Discussion.

Table 4-1: exactView-1 STK TLE Report

Two Line Element Set --------------------------------------------------------------------- 1 38709U 12039C 15242.81374034 .00000126 00000-0 75186-4 0 9996 2 38709 99.0028 188.9882 0011003 340.7553 19.3221 14.23858180161425 Two Line Element Set --------------------------------------------------------------------- 1 38709U 12039C 15243.44617896 .00000051 00000-0 42794-4 0 9998 2 38709 99.0049 189.6378 0011003 339.1382 20.9335 14.23858235161513 Two Line Element Set --------------------------------------------------------------------- 1 38709U 12039C 15243.79753556 -.00000069 00000-0 -96010-5 0 9992 2 38709 99.0029 189.9968 0010851 337.6365 22.4372 14.23857413161563 Two Line Element Set --------------------------------------------------------------------- 1 38709U 12039C 15244.42997449 -.00000069 00000-0 -96010-5 0 9994 2 38709 99.0024 190.6435 0010670 335.2436 24.8229 14.23857243161656

24 March 2016 – 30 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 39: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Table 4-2: exactView-1 Sensor Parameters

Object Name Sensor Type Cone Half Angle (deg)

Pointing Azimuth (deg)

Pointing Elevation (deg)

exactview1_AIS Simple Conic 90 0 90

4.1 GeoJSON Data Analysis

This section contains a brief summary of the contents of the eedata file provided by the TA. The majority of the information in this section was determined while developing the model and will not necessarily appear as a result of executing the final MATLAB scripts.

The eedata file was 1.03 GB in size and was made up of a single header row and 4,522,599 AIS GeoJSON message rows which were either Class A or Class B position reports. In the eedata file, these messages were produced by one of 69,994 unique ship IDs. Of these messages, the eedata file contained 111,134 Class B report messages, 2,173,951 messages, which occurred outside all three AOAs and 56,852 Class A position report messages which occur before the start of the scenario. These messages were not considered in the model analysis. This left 2,180,662 Class A position report messages that were of interest to the model.

A separate analysis of the Class A position reports occurring within the AOAs was performed by the TA. This analysis made use of ArcGIS and a set of CSV files containing an abbreviated set of the S-AIS data indicating the contact ID, ship’s ID/Name, latitude, longitude, received date/time and report date/time. The analysis determined that:

• JTFA AOA had 1,599,063 Class A position reports, which were produced by 37,120 different ship objects during the scenario period;

• JTFN AOA had 1,684,338 Class A position reports, which were produced by 39,393 different ship objects during the scenario period; and

• JTFP AOA had 1,700,106 Class A position reports, which were produced by 29,261 different ship objects during the scenario period.

4.2 Model Results

The following section contains a summary of the results for the model execution using MATLAB R2015a, STK 10.1.3 and the platform specifications listed in Table 4-3.

24 March 2016 – 31 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 40: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Table 4-3: Task 198 Platform Specifications

Hardware Specification

Operating Systems Windows 7 Enterprise (32-bit)

CPU Speed 3.20 GHz

Processor Intel Core i5-4570

Memory / RAM 8 GB (3.18 GB usable)

Disk Space 465 GB

Video Card Intel HD Graphics 4600

Network Hardware Intel Ethernet Connection I217-LM

The execution of the CORA_198_Deliverable_C_Process_AIS_Data script took 14 hours and 14 minutes to complete. The script produced 61,108 partitioned S-AIS ship data files. The script excluded, or dropped, message rows that were not Class A position report messages.

The execution of the CORA_198_Deliverable_C_Generate_STK_Files script took 7 hours and 35 minutes to complete. The script produced 43,731 STK ephemeris files and 43,731 temporal interval constraint files. The script excluded, or dropped, partitioned ship files that existed outside of all three AOAs.

The execution of the CORA_198_Deliverable_C_Create_Analyze_STK_Model script took 7 hours and 43 minutes to complete. The model variables used in this execution can be found in Table 4-4. The execution of the model resulted in the probability of the uncorrupted AIS messages below.

Table 4-4: Variable Values Used in Probability Calculations

Variable Value

𝛾𝛾0 0.26830

𝑞𝑞 0.90400

𝑠𝑠 0.67440

The JTFA AOR and the exactView-1 satellite sensor experienced 12 access intervals during the scenario time period. The probability of receiving uncorrupted message for each access interval can be found in Table 4-5. This resulted in a minimum probability of 0.01245 and a maximum probability of 0.24414. Figure 4-1 shows a plot of the probability of receiving uncorrupted messages to the number of unique transmitting ships, while Figure 4-2 shows a plot of the probability of receiving uncorrupted messages to the average number of transmissions per second. Figure 4-1 shows more variability in the results compared to the figure presented in [5].

24 March 2016 – 32 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 41: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

This may be due to the amount of corruption in the data and the absence of an advanced data fusion capability, so a single ship may appear as multiple tracks with different identifiers if the identifier has been corrupted.

Table 4-5: Results for JTFA during 31 Aug 2015

Access Start Date/Time

Access End Date/Time

Duration (sec)

Number of Unique

Transmitting Ships

Number of Transmissions

Probability of Receiving

Uncorrupted Message

31 Aug 2015 02:45:34

31 Aug 2015 02:58:38 783.211 457 2605 1.57192E-01

31 Aug 2015 04:24:28

31 Aug 2015 04:44:35 1206.703 3196 23051 1.24476E-02

31 Aug 2015 06:04:27

31 Aug 2015 06:25:59 1292.147 4120 19446 2.38798E-02

31 Aug 2015 07:44:30

31 Aug 2015 08:05:08 1237.668 3331 11396 6.10717E-02

31 Aug 2015 09:24:08

31 Aug 2015 09:41:33 1044.586 2588 7517 8.43841E-02

31 Aug 2015 11:02:29

31 Aug 2015 11:15:55 805.972 1687 5367 9.19933E-02

31 Aug 2015 12:37:09

31 Aug 2015 12:53:07 957.432 306 562 2.44143E-01

31 Aug 2015 14:13:29

31 Aug 2015 14:32:01 1111.766 1445 5073 1.28848E-01

31 Aug 2015 15:50:40

31 Aug 2015 16:11:50 1270.213 2337 10512 7.09402E-02

31 Aug 2015 17:30:50

31 Aug 2015 17:51:55 1264.419 360 768 2.43343E-01

31 Aug 2015 19:12:49

31 Aug 2015 19:31:44 1134.840 2134 11389 5.34599E-02

31 Aug 2015 21:01:23

31 Aug 2015 21:08:18 415.349 614 3032 8.29887E-02

24 March 2016 – 33 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 42: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Figure 4-1: Probability as a Function of Number of Ships for the JTFA

0.00

0.05

0.10

0.15

0.20

0.25

0.30

0.35

0 500 1000 1500 2000 2500 3000 3500 4000 4500

Prob

abili

ty o

f Rec

eivi

ng U

ncor

rupt

ed M

essa

ge

Number of Unique Transmitting Ships

24 March 2016 – 34 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 43: CORA 198 Final Report

DRDC CORA Task 198 Implementing a Parametric Model for Satellite AIS

Figure 4-2: Probability as a Function of Transmissions per second for the JTFA

The JTFN AOR and the exactView-1 satellite sensor experienced 14 access intervals during the scenario time period. The probability of receiving uncorrupted message for each access interval can be found in Table 4-6. This resulted in a minimum probability of 0.01119 and a maximum probability of 0.13891. Figure 4-3 shows a plot of the probability of receiving uncorrupted messages to the number of unique transmitting ships, while Figure 4-4 shows a plot of the probability of receiving uncorrupted messages to the average number of transmissions per second. Figure 4-3 shows more variability in the results compared to the figure presented in [5] and a little more than Figure 4-1. This may again be due to the amount of corruption in the data and the absence of an advanced data fusion capability, so a single ship may appear as multiple tracks with different identifiers if the identifier has been corrupted.

Table 4-6: Results for JTFN during 31 Aug 2015

Access Start Date/Time

Access End Date/Time

Duration (sec)

Number of Unique

Transmitting Ships

Number of Transmissions

Probability of Receiving

Uncorrupted Message

31 Aug 2015 00:46:21

31 Aug 2015 01:08:02 1300.659 2534 18912 2.59160E-02

31 Aug 2015 02:33:10

31 Aug 2015 02:50:21 1030.860 2229 13317 3.36355E-02

31 Aug 2015 04:15:34

31 Aug 2015 04:37:45 1330.584 2234 18221 2.96927E-02

0.00

0.05

0.10

0.15

0.20

0.25

0.30

0 5 10 15 20 25

Prob

abili

ty o

f Rec

eivi

ng U

ncor

rupt

ed

Mes

sage

Average Number of Transmissions per Second

24 March 2016 – 35 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 44: CORA 198 Final Report

DRDC CORA Task 198 Implementing a Parametric Model for Satellite AIS

Access Start Date/Time

Access End Date/Time

Duration (sec)

Number of Unique

Transmitting Ships

Number of Transmissions

Probability of Receiving

Uncorrupted Message

31 Aug 2015 05:56:46

31 Aug 2015 06:21:37 1490.782 3707 21132 2.74829E-02

31 Aug 2015 07:37:57

31 Aug 2015 08:03:52 1554.776 3900 16242 5.00442E-02

31 Aug 2015 09:19:09

31 Aug 2015 09:42:44 1415.912 3287 9813 8.80653E-02

31 Aug 2015 11:00:20

31 Aug 2015 11:23:52 1412.622 2370 15194 4.76165E-02

31 Aug 2015 12:40:44

31 Aug 2015 13:04:13 1409.507 1579 10856 7.77945E-02

31 Aug 2015 14:18:19

31 Aug 2015 14:42:28 1448.869 2614 19009 3.25632E-02

31 Aug 2015 15:56:17

31 Aug 2015 16:20:13 1435.321 1573 5878 1.38910E-01

31 Aug 2015 17:35:24

31 Aug 2015 18:00:02 1478.216 1831 11072 8.04896E-02

31 Aug 2015 19:15:09

31 Aug 2015 19:41:07 1558.513 2918 24542 2.13464E-02

31 Aug 2015 20:58:48

31 Aug 2015 21:22:19 1410.742 1840 8810 9.83251E-02

31 Aug 2015 22:40:01

31 Aug 2015 23:03:30 1409.511 3486 27863 1.11850E-02

24 March 2016 – 36 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 45: CORA 198 Final Report

DRDC CORA Task 198 Implementing a Parametric Model for Satellite AIS

Figure 4-3: Probability as a Function of Number of Ships for the JTFN

Figure 4-4: Probability as a Function of Transmissions per second for the JTFN

0.00

0.02

0.04

0.06

0.08

0.10

0.12

0.14

0.16

0 500 1000 1500 2000 2500 3000 3500 4000 4500

Prob

abili

ty o

f Rec

eivi

ng U

ncor

rupt

ed

Mes

sage

Number of Unique Transmitting Ships

0.00

0.02

0.04

0.06

0.08

0.10

0.12

0.14

0.16

0 5 10 15 20 25

Prob

abili

ty o

f Rec

eivi

ng U

ncor

rupt

ed M

essa

ge

Average Number of Transmissions per Second

24 March 2016 – 37 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 46: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

The JTFP AOR and the exactView-1 satellite sensor experienced 11 access intervals during the scenario time period. The probability of receiving uncorrupted message for each access interval can be found in Table 4-7. This resulted in a minimum probability of 0.00578 and a maximum probability of 0.12224. Figure 4-5 shows a plot of the probability of receiving uncorrupted messages to the number of unique transmitting ships, while Figure 4-6 shows a plot of the probability of receiving uncorrupted messages to the average number of transmissions per second. Figure 4-5 shows more variability in the results compared to the figure presented in [5] and similar to that in Figure 4-1. This may again be due to the amount of corruption in the data and the absence of an advanced data fusion capability, so a single ship may appear as multiple tracks with different identifiers if the identifier has been corrupted.

Table 4-7: Results for JTFP during 31 Aug 2015

Access Start Date/Time

Access End Date/Time

Duration (sec)

Number of Unique

Transmitting Ships

Number of Transmissions

Probability of Receiving

Uncorrupted Message

31 Aug 2015 00:40:28

31 Aug 2015 00:58:29 1080.735 2090 15925 2.51162E-02

31 Aug 2015 02:29:27

31 Aug 2015 02:36:10 402.771 750 2199 1.11553E-01

31 Aug 2015 09:29:46

31 Aug 2015 09:47:04 1037.843 2671 8256 7.46945E-02

31 Aug 2015 11:09:08

31 Aug 2015 11:30:56 1307.929 2104 23163 1.55710E-02

31 Aug 2015 12:49:11

31 Aug 2015 13:08:56 1185.621 1363 12030 5.25161E-02

31 Aug 2015 14:29:12

31 Aug 2015 14:46:10 1017.902 2535 24299 5.78298E-03

31 Aug 2015 16:08:37

31 Aug 2015 16:21:36 778.501 649 3807 1.22248E-01

31 Aug 2015 17:45:37

31 Aug 2015 17:57:30 713.027 1421 6617 6.03639E-02

31 Aug 2015 19:19:20

31 Aug 2015 19:35:51 990.850 2621 19410 1.15108E-02

31 Aug 2015 20:55:37

31 Aug 2015 21:15:30 1193.651 2325 10183 6.80891E-02

31 Aug 2015 22:33:16

31 Aug 2015 22:55:34 1337.882 2849 29758 7.51404E-03

24 March 2016 – 38 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 47: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Figure 4-5: Probability as a Function of Number of Ships for the JTFP

Figure 4-6: Probability as a Function of Transmissions per second for the JTFP

0.00

0.02

0.04

0.06

0.08

0.10

0.12

0.14

0 500 1000 1500 2000 2500 3000

Prob

abili

ty o

f Rec

eivi

ng U

ncor

rupt

ed M

essa

ge

Number of Unique Transmitting Ships

0.00

0.02

0.04

0.06

0.08

0.10

0.12

0.14

0 5 10 15 20 25 30

Prob

abili

ty o

f Rec

eivi

ng U

ncor

rupt

ed M

essa

ge

Average Number of Transmissions per Second

24 March 2016 – 39 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 48: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

The CORA_198_Deliverable_C_Analyze_STK_Model script was executed against the set of STK scenarios generated by the CORA_198_Deliverable_C_Create_Analyze_STK_Model script. The CORA_198_Deliverable_C_Analyze_STK_Model script returned the exact same results, and took 2 hours and 51 minutes to complete.

24 March 2016 – 40 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 49: CORA 198 Final Report

DRDC CORA Task 198 Implementing a Parametric Model for Satellite AIS

5 DISCUSSION

This section contains a review of the known issues and potential future work related to the task’s data and model.

5.1 GeoJSON Data Issues

There are several known issues with the raw S-AIS data from the exactEarth™ satellite constellation.

Firstly, the eedata text file is very large; it contains over 4.5 million S-AIS messages. The impact on the resulting MATLAB model is long processing times.

In addition, the size of the eedata text file impacted on the development of the model because it is too large to open in many file editors. The number and size of the message entries make it impossible to view the data in programs like Notepad, MATLAB or Microsoft Excel. This makes it more difficult to perform any initial read, search, and sort operations on the data contained in the eedata file, since the S-AIS message entries in the file are organized according to a contact_id column and not by received_date_time or report_date_time. This resulted in the development of the model taking longer than originally anticipated.

Secondly, as anticipated by the task, there are a significant number of invalid, potentially corrupted, position report messages in the eedata file. As the result of corruption can vary, it is not clear whether all types of corrupted messages have been identified, although neither was this a requirement of the task. Those identified as obviously corrupt or invalid messages take several forms and are listed here for completeness:

• Objects which travel semi-erratically across the globe. These do not appear to be corruptmessages as their position reports do have a pattern to them. It is still unclear what theseobjects are. Examples of this type of invalid ship movement includes ship id 323453 shownin Figure 5-1, and ship id 324685 shown in Figure 5-2.

• Ship ids which consistently report the same, or very similar, invalid positions. It is unclearwhat the cause of this discrepancy is since all reports are Position Report Class A andappear in a valid format. Examples of this type of invalid ship movement include ship326966_NORDIC_OLYMPIC shown in Figure 5-3, and ship 333429_ALASKA_PIONEERshown in Figure 5-4.

• Objects which contain a single invalid, potentially corrupt message. These bad positionreports can either affect the ship objects in STK overtly or not.

o The 392098_MSC_MANDRAKI ship object is an example of a single corrupt reportovertly affecting the STK scenario, shown in Figure 5-5. This ship has a single positionreport that causes it to jump from the middle of the Atlantic, into the JTFA and then backinto the middle of the Atlantic.

24 March 2016 – 41 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 50: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

o The 485983_KV_SVALBARD is an example of a bad report affecting the STK scenario in an unclear manner, shown in Figure 5-6. This ship contains two position reports that occur at the exact same time. The first, corrupt report is positioned within an AOR but the second report contains valid position data. Both points are listed in the ephemeris file but STK ignores the first point and only uses the second point.

Figure 5-1: Ship 323453 Route Data

Figure 5-2: Ship 324685 Route Data

24 March 2016 – 42 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 51: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Figure 5-3: Ship 326966_NORDIC_OLYMPIC Route Data

24 March 2016 – 43 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 52: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Figure 5-4: Ship 333429_ALASKA_PIONEER Route Data

Figure 5-5: Ship 392098_MSC_MANDRAKI Route Data

24 March 2016 – 44 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 53: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Figure 5-6: Ship 485983_KV_SVALBARD Route Data

The fact that the eedata file contains some invalid data is not surprising, given the high probability of receiving a corrupted S-AIS message outlined in [3], [4], [5] and this document. However, these invalid or corrupt position reports have unfortunate consequences within the model. The MATLAB scripts will plot the unaltered latitude and longitude points from the eedata regardless of their validity. Some of these messages may not have access with the satellite sensor in the STK scenario, in spite of the fact that the inclusion of these reports in eedata file implies that the satellite did receive the message. This problem would be mitigated if sufficiently more of the exactEarth™ satellites are modelled to cover all of the received messages.

For example, the 333429_ALASKA_PIONEER ship object has several position reports off the coast of South America, as seen in Figure 5-4. This means that the model currently may return skewed message corruption probability values since some of the real world messages may not be received by the satellite during the simulation in STK.

Finally, the precision of the GeoJSON formatted S-AIS data’s report and received date times is to the second; and the time length of a single AIS SOTDMA transmission time slot is 26.667 milliseconds. In the case of our model, this is not really an issue since we calculated the probability of receiving a corrupted message using the total number of messages received divided by the access duration in seconds. However, this discrepancy is important to consider when considering performing future analysis or updates to the model.

5.2 Potential Future Work

Improvements to the MATLAB model and scripts fall into three categories: reducing the processing time, model scope, and assisting in future modifications to the scripts.

24 March 2016 – 45 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 54: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

The processing speed of the code can be improved by moving the initial S-AIS data processing and STK file generation outside of MATLAB. During this task, it became clear that MATLAB was ill-suited to read, search, and sort the 4.5 million S-AIS message entries. The data structures available in MATLAB and memory limitations resulted in many read/write file operations that in turn resulted in long execution times.

The analysis, filtering, and sorting operations required to process the millions of S-AIS messages are better suited to database operations. Therefore, it is recommend that the initial S-AIS data processing be performed with Structured Query Language (SQL) commands through either a Python or C# application. An application written in Python would be easier to update and modify since it is a dynamically typed scripting language, and could be integrated with technologies like ArcGIS. A computationally expensive program written in C# would be expected to run significantly faster than the same program written in Python because C# can be compiled to native machine code, while Python is compiled into a bytecode and then interpreted. The benchmarks reported at [9] show that Python was slower in 7 of the 9 cases than C#, and in the worst case was over 40 times slower. An application written in C# would also easily integrate with STK Integration plugin.

Potential improvements to the model scope include:

• Have the model determine the current 𝑠𝑠 value based on the scenario satellite data instead of using a constant value. This would require implementing the model in [3] to determine the 𝑠𝑠 value of the satellite based on the STK exactview1 satellite object’s altitude and the partition of the satellite’s sensor detection area.

• Have the model determine the current q value based on the scenario data instead of using a constant value. For the best results, this would require the implementation of the previous proposed addition for calculating the current s value. This should also include updating the assumed average time between ship message transmissions in the model which is currently 6 seconds. According to [7], the message interval can vary from 2 seconds to 6 minutes depending on the dynamic status of the ship. Also, [7] indicated that the average time between ship message transmissions is about 7 seconds instead of the model’s current 6 seconds.

• Modify the model and scripts to support the entire exactEarth™ satellite constellation.

• Modify the model and scripts to support global coverage analysis. This would require the removal of the dependency on the AOR access times from the current model and the addition of another time analysis metric.

A potential improvement to assisting in future modifications to the scripts is to write UML diagrams describing the scripts and their operations. This would enable ongoing evolution and improvements to the scripts.

24 March 2016 – 46 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 55: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

6 CONCLUSION

This task was successful in adapting James K.E. Tunaley’s model from “The Performance of a Space-Based AIS System”, [5], into a MATLAB/STK analysis model. The model was able to determine the probability of receiving uncorrupted S-AIS messages for the scenario period 31 Aug 2015 00:00:00.000 UTCG to 31 Aug 2015 23:59:59.999 UTCG.

The model created for this task is not without limitations and issues. The model implementation is not actively calculating the effect of message overlap based on S-AIS sensor altitude and swath width for the different satellite altitudes during its orbit. Although an analysis of the effect of message overlap value revealed that the difference between the static and calculated values would be minor; however, this would still affect the probability of receiving an uncorrupted message.

The model and scripts successfully achieved the objectives of the task, and serve as a foundation for future improvements and extensions in both the scope of the model and the performance of the implementation.

24 March 2016 – 47 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 56: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

APPENDIX A ACRONYMS AND ABBREVIATIONS

AGI Analytical Graphics Inc. AIS Automatic Information System AOA Area of Analysis AOI Area of Interest (target area) AOR Area of Responsibility AOR_MN Middle North (target area) AOR_MS Middle South (target area) AOR_ON Outer North (target area) AOR_OS Outer South (target area)

CC Central Coast (target area) CORA Centre for Operational Research and Analysis CPU Central Processing Unit CSV Comma-Separated Values

deg degree DRDC Defence Research and Development Canada

ECEF Earth-Centred, Earth-Fixed eE exactEarth™

FOV Field of View

GB Gigabyte GHz Gigahertz GOAE Gulf of Alaska East (target area) GOAW Gulf of Alaska West (target area)

HG Haida Gwai (target area)

ID Identifier

JSON JavaScript Object Notation JTFA Joint Task Force Atlantic JTFN Joint Task Force North JTFP Joint Task Force Pacific

km kilometre

24 March 2016 – A-1 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 57: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

LOS Line of Sight

MARPAC Maritime Forces Pacific MHz Megahertz

NC North Coast (target area)

PC-N Pacific Coast North (target area) PC-S Pacific Coast South (target area)

RAM Random Access Memory RCN Royal Canadian Navy

S-AIS Satellite Automatic Identification System SC South Coast (target area) sec Second SOTDMA Self-Organized Time Division Multiple Access SQL Structured Query Language STK Systems Tool Kit

TA Technical Authority TLE Two-Line Element

UML Unified Modelling Language UTCG Universal Time Code Gregorian

VHF Very High Frequency

WBE Work Breakdown Element

24 March 2016 – A-2 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 58: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

APPENDIX B REFERENCES

[1] Defence Research and Development Canada (DRDC) CORA. TA-192 Statement of Work. 2015.

[2] Defence Research and Development Canada (DRDC) CORA. TA-198 Statement of Work. 2015.

[3] G. Høye, Observation modelling and detection probability for space-based AIS reception – Extended observation area, FFI Rapport 04390, 2005. Available: http://rapporter.ffi.no/rapporter/2004/04390.pdf. Accessed on 18 Jan. 2016.

[4] J. K.E. Tunaley, “Space-Based AIS Performance, London Research and Development Corporation Technical Report,” 28 May 2011. Avaiable: http://london-research-and-development.com/Space-Based-AIS-Performance.pdf. Accessed on 18 Jan. 2016.

[5] J. K.E. Tunaley, “The Performance of a Space-Based AIS System, London Research and Development Corporation Technical Report,” 08 Aug. 2011. Available: http://london-research-and-development.com/The-Performance-of-a-Space-Based-AIS-System.Ver3.pdf. Accessed on 18 Jan. 2016.

[6] K. MacNeil, “DRDC CORA Task 192 Satellite and Aircraft Surveillance Model Development Final Report,” CAE Inc., 08 Dec. 2015. Document No. 5857-001 Version 04.

[7] G. Parsons, J. Youden, and C. Fowler, “Satellite Automatic Identification System (SAIS) Performance Modelling and Simulation, Progress Findings Report,” Defence Research and Development Canada (DRDC), Ottawa, Dec. 2013. Available: http://cradpdf.drdc-rddc.gc.ca/PDFS/unc135/p538365_A1b.pdf. Accessed on 09 Mar. 2016.

[8] GeoJSON. URL: http://geojson.org/. Accessed on 09 Mar. 2016.

[9] The Computer Language Benchmarks Game. Python 3 programs versus C# Mono. Available: http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=python3&lang2=csharp. Accessed on 09 Mar. 2016.

24 March 2016 – B-1 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 59: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

APPENDIX C AREAS OF ANALYSIS DEFINITIONS

The following table contains the AOA area target object definitions for the CORA 192 AOR, [6], determined manually for exactview1 satellite senor access to the respective AOR for the scenario period 31 Aug 2015 00:00:00.000 UTCG to 31 Aug 2015 23:59:59.999 UTCG.

Table C-1: AOA Area Target Object Definitions

Area Target Geodetic Latitude (deg) Geodetic Longitude (deg)

JTFA AOA

54.000000 42.123711 33.216495 12.432990 -17.628866 -25.422680 -24.309278 -21.340206 -12.061856 -0.556701 13.546392 31.731959 45.463918 54.000000

117.911552 88.220830 69.292995 37.746604 -7.531747

-37.222469 -73.964737 -95.490510 -114.047211 -132.232778 -143.366799 -159.325561 156.138356 117.911552

JTFN AOA

26.53608247 23.19587629 23.93814433 20.96907216 19.8556701 16.88659794 3.154639175 -3.154639175 -10.94845361 -15.40206186 -12.43298969 -6.12371134 -3.896907216 -2.783505155 0.927835052 7.237113402

121.622892 111.602274 81.169284 51.107428 35.148665 19.189903 -4.191541

-37.222469 -61.717314 -77.304943 -98.459582 -112.562675 -134.459582 -153.758551 -176.397726 169.128047

24 March 2016 – C-1 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 60: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Area Target Geodetic Latitude (deg) Geodetic Longitude (deg)

14.28865979 19.8556701 23.19587629 26.53608247

157.251758 143.519799 133.128047 121.622892

JTFP AOA

-10.206186 -9.463918 0.927835 9.463918 17.257732 24.309278 31.360825 38.783505 42.865979 43.608247 43.979381 46.577320 49.546392 50.288660 49.175258 43.237113 38.412371 31.731959 26.164948 15.402062 6.494845 -1.670103 -8.721649

-18.000000 -20.969072 -24.309278 -27.649485 -29.876289 -29.876289 -29.134021 -23.195876 -16.886598 -10.206186

177.664129 171.354851 152.055882 140.179593 130.901243 121.622892 114.571346 98.983717 76.344542 57.787841 48.138356 40.344542 26.612583 15.478562 -0.109067

-15.696695 -28.686386 -38.707005 -47.243087 -54.665768 -63.572984 -73.964737 -83.243087 -96.975046 -109.593603 -113.304943 -119.243087 -130.005974 -145.222469 -155.614221 -165.263706 -172.686386 177.664129

24 March 2016 – C-2 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 61: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

APPENDIX D EXACTVIEW1_38709 SATELLITE ALTITUDE

The following table contain the altitude (km) of the exactview1_38709 satellite object in the STK scenarios for a time step of 10 minutes during the scenario period 31 Aug 2015 00:00:00.000 UTCG to 31 Aug 2015 23:59:59.999 UTCG. These values were generated in STK using a report outlining the satellite object’s “LLA State Fixed Time” and “LLA State Fixed Alt”.

The average altitude of the exactview1_38709 satellite object was 824.37 km.

Table D-1: STK exactview1_38709 satellite object Altitude Values

Time (UTCG) Altitude (km)

31 Aug 2015 00:00:00.000 835.22

31 Aug 2015 00:10:00.000 837.86

31 Aug 2015 00:20:00.000 826.71

31 Aug 2015 00:30:00.000 811.67

31 Aug 2015 00:40:00.000 808.24

31 Aug 2015 00:50:00.000 818.16

31 Aug 2015 01:00:00.000 828.12

31 Aug 2015 01:10:00.000 827.89

31 Aug 2015 01:20:00.000 822.81

31 Aug 2015 01:30:00.000 824.76

31 Aug 2015 01:40:00.000 834.14

31 Aug 2015 01:50:00.000 838.26

31 Aug 2015 02:00:00.000 828.55

31 Aug 2015 02:10:00.000 813.09

31 Aug 2015 02:20:00.000 807.81

31 Aug 2015 02:30:00.000 816.69

31 Aug 2015 02:40:00.000 827.43

31 Aug 2015 02:50:00.000 828.42

31 Aug 2015 03:00:00.000 823.24

31 Aug 2015 03:10:00.000 823.97

31 Aug 2015 03:20:00.000 832.98

31 Aug 2015 03:30:00.000 838.44

24 March 2016 – D-1 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 62: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Time (UTCG) Altitude (km)

31 Aug 2015 03:40:00.000 830.29

31 Aug 2015 03:50:00.000 814.66

31 Aug 2015 04:00:00.000 807.60

31 Aug 2015 04:10:00.000 815.24

31 Aug 2015 04:20:00.000 826.58

31 Aug 2015 04:30:00.000 828.87

31 Aug 2015 04:40:00.000 823.76

31 Aug 2015 04:50:00.000 823.32

31 Aug 2015 05:00:00.000 831.77

31 Aug 2015 05:10:00.000 838.40

31 Aug 2015 05:20:00.000 831.91

31 Aug 2015 05:30:00.000 816.37

31 Aug 2015 05:40:00.000 807.62

31 Aug 2015 05:50:00.000 813.84

31 Aug 2015 06:00:00.000 825.58

31 Aug 2015 06:10:00.000 829.19

31 Aug 2015 06:20:00.000 824.37

31 Aug 2015 06:30:00.000 822.82

31 Aug 2015 06:40:00.000 830.53

31 Aug 2015 06:50:00.000 838.16

31 Aug 2015 07:00:00.000 833.39

31 Aug 2015 07:10:00.000 818.17

31 Aug 2015 07:20:00.000 807.88

31 Aug 2015 07:30:00.000 812.52

31 Aug 2015 07:40:00.000 824.45

31 Aug 2015 07:50:00.000 829.38

31 Aug 2015 08:00:00.000 825.03

31 Aug 2015 08:10:00.000 822.48

31 Aug 2015 08:20:00.000 829.31

31 Aug 2015 08:30:00.000 837.72

24 March 2016 – D-2 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 63: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Time (UTCG) Altitude (km)

31 Aug 2015 08:40:00.000 834.69

31 Aug 2015 08:50:00.000 820.06

31 Aug 2015 09:00:00.000 808.37

31 Aug 2015 09:10:00.000 811.32

31 Aug 2015 09:20:00.000 823.20

31 Aug 2015 09:30:00.000 829.42

31 Aug 2015 09:40:00.000 825.73

31 Aug 2015 09:50:00.000 822.30

31 Aug 2015 10:00:00.000 828.11

31 Aug 2015 10:10:00.000 837.10

31 Aug 2015 10:20:00.000 835.80

31 Aug 2015 10:30:00.000 821.98

31 Aug 2015 10:40:00.000 809.09

31 Aug 2015 10:50:00.000 810.23

31 Aug 2015 11:00:00.000 821.83

31 Aug 2015 11:10:00.000 829.28

31 Aug 2015 11:20:00.000 826.43

31 Aug 2015 11:30:00.000 822.28

31 Aug 2015 11:40:00.000 826.99

31 Aug 2015 11:50:00.000 836.34

31 Aug 2015 12:00:00.000 836.74

31 Aug 2015 12:10:00.000 823.93

31 Aug 2015 12:20:00.000 810.02

31 Aug 2015 12:30:00.000 809.32

31 Aug 2015 12:40:00.000 820.42

31 Aug 2015 12:50:00.000 829.00

31 Aug 2015 13:00:00.000 827.12

31 Aug 2015 13:10:00.000 822.41

31 Aug 2015 13:20:00.000 825.94

31 Aug 2015 13:30:00.000 835.42

24 March 2016 – D-3 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 64: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Time (UTCG) Altitude (km)

31 Aug 2015 13:40:00.000 837.45

31 Aug 2015 13:50:00.000 825.84

31 Aug 2015 14:00:00.000 811.16

31 Aug 2015 14:10:00.000 808.60

31 Aug 2015 14:20:00.000 818.95

31 Aug 2015 14:30:00.000 828.55

31 Aug 2015 14:40:00.000 827.77

31 Aug 2015 14:50:00.000 822.67

31 Aug 2015 15:00:00.000 824.98

31 Aug 2015 15:10:00.000 834.38

31 Aug 2015 15:20:00.000 837.93

31 Aug 2015 15:30:00.000 827.70

31 Aug 2015 15:40:00.000 812.50

31 Aug 2015 15:50:00.000 808.07

31 Aug 2015 16:00:00.000 817.47

31 Aug 2015 16:10:00.000 827.93

31 Aug 2015 16:20:00.000 828.35

31 Aug 2015 16:30:00.000 823.06

31 Aug 2015 16:40:00.000 824.15

31 Aug 2015 16:50:00.000 833.26

31 Aug 2015 17:00:00.000 838.19

31 Aug 2015 17:10:00.000 829.47

31 Aug 2015 17:20:00.000 813.99

31 Aug 2015 17:30:00.000 807.76

31 Aug 2015 17:40:00.000 816.01

31 Aug 2015 17:50:00.000 827.14

31 Aug 2015 18:00:00.000 828.84

31 Aug 2015 18:10:00.000 823.56

31 Aug 2015 18:20:00.000 823.46

31 Aug 2015 18:30:00.000 832.07

24 March 2016 – D-4 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 65: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Time (UTCG) Altitude (km)

31 Aug 2015 18:40:00.000 838.24

31 Aug 2015 18:50:00.000 831.13

31 Aug 2015 19:00:00.000 815.64

31 Aug 2015 19:10:00.000 807.81

31 Aug 2015 19:20:00.000 814.69

31 Aug 2015 19:30:00.000 826.26

31 Aug 2015 19:40:00.000 829.20

31 Aug 2015 19:50:00.000 824.06

31 Aug 2015 20:00:00.000 822.79

31 Aug 2015 20:10:00.000 830.74

31 Aug 2015 20:20:00.000 838.03

31 Aug 2015 20:30:00.000 832.69

31 Aug 2015 20:40:00.000 817.49

31 Aug 2015 20:50:00.000 807.96

31 Aug 2015 21:00:00.000 813.33

31 Aug 2015 21:10:00.000 825.19

31 Aug 2015 21:20:00.000 829.46

31 Aug 2015 21:30:00.000 824.73

31 Aug 2015 21:40:00.000 822.40

31 Aug 2015 21:50:00.000 829.51

31 Aug 2015 22:00:00.000 837.65

31 Aug 2015 22:10:00.000 834.04

31 Aug 2015 22:20:00.000 819.32

31 Aug 2015 22:30:00.000 808.34

31 Aug 2015 22:40:00.000 812.07

31 Aug 2015 22:50:00.000 823.99

31 Aug 2015 23:00:00.000 829.59

31 Aug 2015 23:10:00.000 825.44

31 Aug 2015 23:20:00.000 822.17

31 Aug 2015 23:30:00.000 828.30

24 March 2016 – D-5 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 66: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

Time (UTCG) Altitude (km)

31 Aug 2015 23:40:00.000 837.09

31 Aug 2015 23:50:00.000 835.22

31 Aug 2015 23:59:59.999 821.21

24 March 2016 – D-6 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la

Défense nationale, 2016

Page 67: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

APPENDIX E MATLAB SCRIPTS

This appendix contains all the source code for the MATLAB scripts delivered as part of this task.

E.1 CORA_198_Deliverable_A % ================================================================================================================ % CORA_198_Deliverable_A % ================================================================================================================ % Copyright (C) Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2015 % % Contract: W7714-083663/001/SV % Author: Kenzie MacNeil (CAE Inc.) % Version: 1.1 % Date: December 11 2015 % % This script is designed to run in MATLAB R2015a and requires an AGI STK 10.1.3, STK Pro and STK Connect. % This script will execute the following actions: % - Connect to an existing STK session; % - Sets the STK scenario time frame to 31 Aug 2015 00:00:00.000 to 31 Aug 2015 23:59.59.999. % - Generates a new satellite object with the properties of the exactEarth satellite (with sensor) as defined in % CORA Task 192 (D2) (ensuring that the satellite database is up-to-date before doing so). % - Generate the West coast of Canada AOR from CORA Task 192 to define area targets. % - Save the STK scenario. % ================================================================================================================ fprintf('Executing Task 198 Deliverable A''s AGI STK commands.\n\n'); % Set instance-dependent configuration variables % ---------------------------------------------------------------------------------------------------------------- % Path to the STK satellite database folder. satDatabasePath = 'C:\ProgramData\AGI\STK 10\Databases\Satellite'; % Used as an enumerated type to determine how to import the satellite. % - choice: 0 - Prompts the user to determine the prefered method. % - import: 1 - Adds the satellite based on an existing *.sa STK satellite file. % - local: 2 - Adds the satellite from the local satellite database. % - tle: 3 - Adds the satellite based on a selected TLE file. % - online: 4 - Adds the satellite from the AGI servers. satImportOption = 0; % Connect to an existing STK session;

24 March 2016 – E-1 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 68: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% ---------------------------------------------------------------------------------------------------------------- % Establish the connection an existing instance of AGI STK 10. fprintf('Connecting to AGI STK 10...\n'); try uiApplication = actxGetRunningServer('STK10.Application'); root = uiApplication.Personality2; catch clearvars error('AGI STK 10 is not currently running. Please open the STK scenario you wish to modify and execute this script again.'); end fprintf('Getting current open STK scenario...\n'); % Check that there is an open STK scenario. stkScenario = root.CurrentScenario; if isempty(stkScenario) clearvars error('There is no open STK scenario. Please open the STK scenario you wish to modify and execute this script again.'); end fprintf('Successfully connected to STK scenario: %s.\n\n', stkScenario.InstanceName); % Sets the STK scenario time frame to 31 Aug 2015 00:00:00.000 to 31 Aug 2015 23:59.59.999. % ---------------------------------------------------------------------------------------------------------------- fprintf('Reseting STK scenario %s''s analysis period...\n', stkScenario.InstanceName); try % Set units to UTCG before setting scenario time period and animation period. root.UnitPreferences.Item('DateFormat').SetCurrentUnit('UTCG'); % Set scenario time period and animation period stkScenario.SetTimePeriod('31 Aug 2015 00:00:00.000', '31 Aug 2015 23:59:59.999'); %stkScenario.Epoch = '31 Aug 2015 00:00:00.000'; root.ExecuteCommand('Animate * Reset'); fprintf('Successfully reset analysis period: 31 Aug 2015 00:00:00 to 31 Aug 2015 23:59:59.\n\n'); catch warning('Failed to reset analysis period.\n\n') end

24 March 2016 – E-2 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 69: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Generates a new satellite object with the properties of the exactEarth satellite (with sensor) as defined in % CORA Task 192 (D2) (ensuring that the satellite database is up-to-date before doing so). % ---------------------------------------------------------------------------------------------------------------- % Check to see if the machine has an internet connection. fprintf('Testing internet connection...\n'); url = java.net.URL('http://tycho.usno.navy.mil/cgi-bin/timer.pl'); try link = openStream(url); parse = java.io.InputStreamReader(link); snip = java.io.BufferedReader(parse); if ~isempty(snip) isOnline = true; fprintf('Internet connection detected.\n\n'); else isOnline = false; fprintf('No internet connection detected.\n\n'); end catch isOnline = false; fprintf('No internet connection detected.\n\n'); end % Update the AGI databases if internet connection is available. if isOnline == true fprintf('Updating local copies of AGI STK online databases...\n'); try cmd = ['Database * OnlineUpdate Update All "', satDatabasePath, '"']; root.ExecuteCommand(cmd); root.ExecuteCommand('SetPropagatorDefaults / SGP4 UpdateMode OnlineAGI'); fprintf('Update complete.\n\n'); catch warning('Failed to update satellite databases.\n\n') end end fprintf('Adding exactEarth satellite to the scenario...\n'); % Delete any existing exactView-1 satellites. if stkScenario.Children.Contains('eSatellite','EXACTVIEW-1_38709') satObj = stkScenario.Children.Item('EXACTVIEW-1_38709'); satObj.Unload; fprintf('Deleted previous EXACTVIEW-1_38709 Satellite object.\n'); end

24 March 2016 – E-3 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 70: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

if stkScenario.Children.Contains('eSatellite','exactview1_38709') satObj = stkScenario.Children.Item('exactview1_38709'); satObj.Unload; fprintf('Deleted previous exactview1_38709 Satellite object.\n'); end % Prompt the user for the desired import option if choice is selected. isOK = true; if satImportOption == 0 || (satImportOption == 4 && isOnline == false) if isOnline == true optionStr = {'import', 'local', 'tle', 'online'}; else optionStr = {'import', 'local', 'tle'}; end % Display the selection dialog. [satImportOption,isOK] = listdlg('PromptString','Select a satellite import option:',... 'SelectionMode','single',... 'ListSize', [160 100], ... 'ListString',optionStr); end if isOK == true % Import the exactEarth satellite. switch satImportOption % Import the exactView-1 satellite from a *.sa file. case 1 % import try [fileName, pathName, filterIndex] = uigetfile( {'*.sa','STK Satellite File (*.sa)'}, 'Select Exact Earth File', 'MultiSelect', 'off'); if filterIndex ~= 0 exactViewSat = stkScenario.Children.ImportObject([pathName fileName]); exactViewSat.InstanceName = 'exactview1_38709'; exactViewSat.Graphics.Attributes.Color = 65535; fprintf('Exact Earth satellite imported into the scenario from the AGIServer.\n'); else warning('Did not select *.sa satellite file. Cancelling satellite addition\n'); end catch clearvars error('Failed to import *.sa satellite file.');

24 March 2016 – E-4 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 71: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

end % Import the exactView-1 satellite from a the local satellite database. case 2 % local try root.ExecuteCommand('ImportFromDB * Satellite DefaultSatDB AutoUpdate On Propagate On TimePeriod UseScenarioInterval Rename exactview1_38709 SSCNumber 38709'); exactViewSat = stkScenario.Children.Item('exactview1_38709'); exactViewSat.Graphics.Attributes.Color = 65535; fprintf('Exact Earth satellite imported into the scenario from the default, local satellite database.\n'); catch clearvars error('Failed to import exactEarth satellite object from the local database.'); end % Import the exactView-1 satellite from a TLE file. case 3 % TLE try [fileName, pathName, filterIndex] = uigetfile( ... {'*.tle;*.tce','Two-Line Element Set File (*.tle, *.tce)'; ... '*.txt','Text File (*.txt)'; '*.*', 'All Files (*.*)'}, ... 'Select Exact Earth TLE File', 'MultiSelect', 'off'); if filterIndex ~= 0 root.ExecuteCommand(['ImportTLEFile * "' [pathName fileName] '" SSCNumber 38709 AutoPropagate On']); exactViewSat = stkScenario.Children.Item('tle-38709'); exactViewSat.InstanceName = 'exactview1_38709'; exactViewSat.Graphics.Attributes.Color = 65535; fprintf('Exact Earth satellite imported into the scenario from the AGIServer.\n'); else warning('Did not select TLE file. Cancelling satellite addition\n'); end catch clearvars error('Failed to import TLE satellite file.'); end % Import the exactView-1 satellite from the AGIServers. case 4 % online try root.ExecuteCommand('ImportFromDB * Satellite AGIServer AutoUpdate On Propagate On TimePeriod UseScenarioInterval Rename exactview1_38709 SSCNumber 38709'); exactViewSat = stkScenario.Children.Item('exactview1_38709'); exactViewSat.Graphics.Attributes.Color = 65535;

24 March 2016 – E-5 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 72: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

fprintf('Exact Earth satellite imported into the scenario from the AGIServer.\n'); catch clearvars error('Failed to import exactEarth satellite object. Please make sure that you can connect to AGI''s Standard Object Database server and execute this script again.\n'); end otherwise error('Invalid satellite creation option.'); end % Add the AIS sensor the the exactView-1 satellite with the appropriate properties. try exactViewSensor = exactViewSat.Children.New('eSensor','exactview1_AIS'); exactViewSensor.CommonTasks.SetPatternSimpleConic(90.0, 4.0); exactViewSensor.CommonTasks.SetPointingFixedAzEl(0.0, 90, 'eAzElAboutBoresightRotate'); exactViewSensor.Graphics.Color = 65535; exactViewSensor.VO.ProjectionType = 'eProjectionEarthIntersections'; fprintf('Added sensor object to the exact earth satellite.\n'); catch warning('Failed to add proper sensor object to the exactEarth satellite.\n\n'); end else warning('User cancelled addition of the Exact Earth satellite object.\n'); end fprintf('Completed the addition of the Exact Earth satellite object.\n\n'); % Generate the West coast of Canada AOR from CORA Task 192 to define area targets. % ---------------------------------------------------------------------------------------------------------------- % Delete any existing version of the AOR Area Targets. fprintf('Adding west coast AOR area target objects to the scenario...\n'); if stkScenario.Children.Contains('eAreaTarget','AOR_MIDDLE_NORTH'); areaTarget = stkScenario.Children.Item('AOR_MIDDLE_NORTH'); areaTarget.Unload; fprintf('Deleted previous AOR_MIDDLE_NORTH area target object.\n'); end if stkScenario.Children.Contains('eAreaTarget','AOR_MIDDLE_SOUTH'); areaTarget = stkScenario.Children.Item('AOR_MIDDLE_SOUTH');

24 March 2016 – E-6 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 73: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

areaTarget.Unload; fprintf('Deleted previous AOR_MIDDLE_SOUTH area target object.\n'); end if stkScenario.Children.Contains('eAreaTarget','AOR_OUTER_NORTH'); areaTarget = stkScenario.Children.Item('AOR_OUTER_NORTH'); areaTarget.Unload; fprintf('Deleted previous AOR_OUTER_NORTH area target object.\n'); end if stkScenario.Children.Contains('eAreaTarget','AOR_OUTER_SOUTH'); areaTarget = stkScenario.Children.Item('AOR_OUTER_SOUTH'); areaTarget.Unload; fprintf('Deleted previous AOR_OUTER_SOUTH area target object.\n'); end if stkScenario.Children.Contains('eAreaTarget','AREA_OF_INTEREST'); areaTarget = stkScenario.Children.Item('AREA_OF_INTEREST'); areaTarget.Unload; fprintf('Deleted previous AREA_OF_INTEREST area target object.\n'); end if stkScenario.Children.Contains('eAreaTarget','CENTRAL_COAST'); areaTarget = stkScenario.Children.Item('CENTRAL_COAST'); areaTarget.Unload; fprintf('Deleted previous CENTRAL_COAST area target object.\n'); end if stkScenario.Children.Contains('eAreaTarget','GULF_OF_ALASKA_EAST'); areaTarget = stkScenario.Children.Item('GULF_OF_ALASKA_EAST'); areaTarget.Unload; fprintf('Deleted previous GULF_OF_ALASKA_EAST area target object.\n'); end if stkScenario.Children.Contains('eAreaTarget','GULF_OF_ALASKA_WEST'); areaTarget = stkScenario.Children.Item('GULF_OF_ALASKA_WEST'); areaTarget.Unload; fprintf('Deleted previous GULF_OF_ALASKA_WEST area target object.\n'); end if stkScenario.Children.Contains('eAreaTarget','HAIDA_GWAI'); areaTarget = stkScenario.Children.Item('HAIDA_GWAI');

24 March 2016 – E-7 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 74: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

areaTarget.Unload; fprintf('Deleted previous HAIDA_GWAI area target object.\n'); end if stkScenario.Children.Contains('eAreaTarget','JTFP'); areaTarget = stkScenario.Children.Item('JTFP'); areaTarget.Unload; fprintf('Deleted previous JTFP area target object.\n'); end if stkScenario.Children.Contains('eAreaTarget','NORTH_COAST'); areaTarget = stkScenario.Children.Item('NORTH_COAST'); areaTarget.Unload; fprintf('Deleted previous NORTH_COAST area target object.\n'); end if stkScenario.Children.Contains('eAreaTarget','PACIFIC_COAST_NORTH'); areaTarget = stkScenario.Children.Item('PACIFIC_COAST_NORTH'); areaTarget.Unload; fprintf('Deleted previous PACIFIC_COAST_NORTH area target object.\n'); end if stkScenario.Children.Contains('eAreaTarget','PACIFIC_COAST_SOUTH'); areaTarget = stkScenario.Children.Item('PACIFIC_COAST_SOUTH'); areaTarget.Unload; fprintf('Deleted previous PACIFIC_COAST_SOUTH area target object.\n'); end if stkScenario.Children.Contains('eAreaTarget','SOUTH_COAST'); areaTarget = stkScenario.Children.Item('SOUTH_COAST'); areaTarget.Unload; fprintf('Deleted previous SOUTH_COAST area target object.\n'); end % Create AOR_MIDDLE_NORTH Area Target try areaTarget = stkScenario.Children.New('eAreaTarget','AOR_MIDDLE_NORTH'); areaTarget.AreaTypeData.RemoveAll; boundary = {51.35, -138.04; 50.74, -137.26; 50.74, -137.21; 50.45, -136.8445; 49.62, -135.82; 48.48, -134.5; 48.49, -140.25; 51.89, -144.5; 55, -144.5; 55, -144.3; 55, -139.41; 52.43, -139.41}; areaTarget.CommonTasks.SetAreaTypePattern(boundary);

24 March 2016 – E-8 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 75: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'AOR_MN'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(52.1189, -142.467, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; fprintf('Added target area: AOR_MIDDLE_NORTH.\n'); catch warning('Failed to properly create area target: AOR_MIDDLE_NORTH'); end % Create AOR_MIDDLE_SOUTH Area Target try areaTarget = stkScenario.Children.New('eAreaTarget','AOR_MIDDLE_SOUTH'); areaTarget.AreaTypeData.RemoveAll; boundary = {46, -128; 48.03, -125; 47.21, -124.48; 45.45, -124.12; 44.82, -124.26; 42.52, -127.72; 41.58, -128.98; 48.3, -140; 48.49, -140.25; 48.48, -134.5; 46, -130}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'AOR_MS'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(46.8631, -135.522, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; fprintf('Added target area: AOR_MIDDLE_SOUTH.\n'); catch warning('Failed to properly create area target: AOR_MIDDLE_SOUTH'); end % Create AOR_OUTER_NORTH Area Target try areaTarget = stkScenario.Children.New('eAreaTarget','AOR_OUTER_NORTH'); areaTarget.AreaTypeData.RemoveAll; boundary = {55, -155; 55, -144.5; 51.89, -144.5; 48.49, -140.25; 48.3, -155}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'AOR_ON'; areaTarget.AutoCentroid = false;

24 March 2016 – E-9 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 76: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

areaTarget.Position.AssignGeodetic(51.7435, -150.585, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; fprintf('Added target area: AOR_OUTER_NORTH.\n'); catch warning('Failed to properly create area target: AOR_OUTER_NORTH'); end % Create AOR_OUTER_SOUTH Area Target try areaTarget = stkScenario.Children.New('eAreaTarget','AOR_OUTER_SOUTH'); areaTarget.AreaTypeData.RemoveAll; boundary = {48.3, -155; 48.49, -140.25; 48.3, -140; 41.58, -128.98; 35, -138}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'AOR_OS'; areaTarget.AutoCentroid = true; areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; fprintf('Added target area: AOR_OUTER_SOUTH.\n'); catch warning('Failed to properly create area target: AOR_OUTER_SOUTH'); end % Create AREA_OF_INTEREST Area Target try areaTarget = stkScenario.Children.New('eAreaTarget','AREA_OF_INTEREST'); areaTarget.AreaTypeData.RemoveAll; boundary = {46.5007, -127.2252; 47.1716, -129.5658; 47.1857, -131.2751; 45.2615, -132.0704; 44.1313, -132.0839; 44.1008, -128.4446}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'AOI'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(44.986, -130.219, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; fprintf('Added target area: AREA_OF_INTEREST.\n'); catch warning('Failed to properly create area target: AREA_OF_INTEREST');

24 March 2016 – E-10 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 77: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

end % Create CENTRAL_COAST Area Target try areaTarget = stkScenario.Children.New('eAreaTarget','CENTRAL_COAST'); areaTarget.AreaTypeData.RemoveAll; boundary = {51.45, -124.91; 50.39, -125.9; 50.23, -127.74; 49.38, -128.85; 50.45, -130.765; 50.72, -131.27; 51.63, -131.27; 51.63, -130.49; 51.78, -130.01; 52.27, -130.01; 52.27, -128.88; 52.37, -129; 52.38, -128.75; 52.49, -128.76; 52.65, -128.54; 52.88, -128.51; 53.16, -127.77; 53.34, -127.56}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'CC'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(51.0865, -128.248, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; fprintf('Added target area: CENTRAL_COAST.\n'); catch warning('Failed to properly create area target: CENTRAL_COAST'); end % Create GULF_OF_ALASKA_EAST Area Target try areaTarget = stkScenario.Children.New('eAreaTarget','GULF_OF_ALASKA_EAST'); areaTarget.AreaTypeData.RemoveAll; boundary = {55, -135.08; 55, -139.41; 55, -144.3; 59.3, -144.3; 59.3, -141; 59, -139}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'GOAE'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(56.8586, -141.059, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; fprintf('Added target area: GULF_OF_ALASKA_EAST.\n'); catch warning('Failed to properly create area target: GULF_OF_ALASKA_EAST'); end % Create GULF_OF_ALASKA_WEST Area Target try

24 March 2016 – E-11 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 78: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

areaTarget = stkScenario.Children.New('eAreaTarget','GULF_OF_ALASKA_WEST'); areaTarget.AreaTypeData.RemoveAll; boundary = {59.3, -144.3; 55, -144.3; 55, -144.5; 55, -155; 56.1, -155; 56.15, -153.5; 57.3, -151.3; 58.5, -151; 59.3, -149; 59.3, -146.5; 59.1, -146.5; 59.1, -145.5; 59.3, -145.5}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'GOAW'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(56.624, -148.614, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; fprintf('Added target area: GULF_OF_ALASKA_WEST.\n'); catch warning('Failed to properly create area target: GULF_OF_ALASKA_WEST'); end % Create HAIDA_GWAI Area Target try areaTarget = stkScenario.Children.New('eAreaTarget','HAIDA_GWAI'); areaTarget.AreaTypeData.RemoveAll; boundary = {53.35, -131.21; 52.27, -130.12; 52.27, -130.01; 51.78, -130.01; 51.63, -130.49; 51.63, -131.27; 52.67, -132.97; 53.26, -133.53; 54.01, -134.03; 54.3, -134.02; 54.68, -132.72; 54.72, -131.3; 54.46, -131.3; 54.25, -131.51}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'HG'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(53.4329, -132.424, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; fprintf('Added target area: HAIDA_GWAI.\n'); catch warning('Failed to properly create area target: HAIDA_GWAI'); end % Create JTFP Area Target try areaTarget = stkScenario.Children.New('eAreaTarget','JTFP'); areaTarget.AreaTypeData.RemoveAll; boundary = {35, -138; 41.58, -128.98; 42.52, -127.72; 44.82, -124.26; 45.45, -124.12; 47.21, -124.48; 48.03, -125; 48.51, -124.99; 48.52, -124.76; 48.28, -123.81; 48.26, -123.54; 48.32, -123.29; 48.44, -123.18; 48.69, -123.32; 48.81, -123.02; 49.03, -123.33; 49.02,

24 March 2016 – E-12 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 79: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

-122.27; 49.66, -122.3; 51.45, -124.91; 53.34, -127.56; 54.79, -129.58; 55.54, -129.42; 56, -129.99; 55.84, -130.16; 55.62, -130.14; 55.32, -129.99; 55.2, -130.14; 55, -130.27; 54.79, -130.62; 54.72, -130.62; 54.72, -131.3; 54.68, -132.72; 54.3, -134.02; 55, -134; 55, -135.08; 59, -139; 59.3, -141; 59.3, -144.3; 59.3, -145.5; 59.1, -145.5; 59.1, -146.5; 59.3, -146.5; 59.3, -149; 58.5, -151; 57.3, -151.3; 56.15, -153.5; 56.1, -155; 55, -155; 48.3, -155}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'JTFP '; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(53.1963, -126.6, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; fprintf('Added target area: JTFP.\n'); catch warning('Failed to properly create area target: JTFP'); end % Create NORTH_COAST Area Target try areaTarget = stkScenario.Children.New('eAreaTarget','NORTH_COAST'); areaTarget.AreaTypeData.RemoveAll; boundary = {54.79, -129.58; 53.34, -127.56; 53.16, -127.77; 52.88, -128.51; 52.65, -128.54; 52.49, -128.76; 52.38, -128.75; 52.37, -129; 52.27, -128.88; 52.27, -130.01; 52.27, -130.12; 53.35, -131.21; 54.25, -131.51; 54.46, -131.3; 54.72, -131.3; 54.72, -130.62; 54.79, -130.62; 55, -130.27; 55.2, -130.14; 55.32, -129.99; 55.62, -130.14; 55.84, -130.16; 56, -129.99; 55.54, -129.42}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'NC'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(53.3391, -129.843, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; fprintf('Added target area: NORTH_COAST.\n'); catch warning('Failed to properly create area target: NORTH_COAST'); end % Create PACIFIC_COAST_NORTH Area Target try areaTarget = stkScenario.Children.New('eAreaTarget','PACIFIC_COAST_NORTH'); areaTarget.AreaTypeData.RemoveAll;

24 March 2016 – E-13 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 80: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

boundary = {50.45, -130.765; 50.45, -136.8445; 50.74, -137.21; 50.74, -137.26; 51.35, -138.04; 52.43, -139.41; 55, -139.41; 55, -135.08; 55, -134; 54.3, -134.02; 54.01, -134.03; 53.26, -133.53; 52.67, -132.97; 51.63, -131.27; 50.72, -131.27}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'PC-N'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(52.55, -136, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; fprintf('Added target area: PACIFIC_COAST_NORTH.\n'); catch warning('Failed to properly create area target: PACIFIC_COAST_NORTH'); end % Create PACIFIC_COAST_SOUTH Area Target try areaTarget = stkScenario.Children.New('eAreaTarget','PACIFIC_COAST_SOUTH'); areaTarget.AreaTypeData.RemoveAll; boundary = {48.03, -125; 48.02, -126.34; 49.38, -128.85; 50.45, -130.765; 50.45, -136.8445; 49.62, -135.82; 48.48, -134.5; 46, -130; 46, -128}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'PC-S'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(48.177, -131.11, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; fprintf('Added target area: PACIFIC_COAST_SOUTH.\n'); catch warning('Failed to properly create area target: PACIFIC_COAST_SOUTH'); end % Create SOUTH_COAST Area Target try areaTarget = stkScenario.Children.New('eAreaTarget','SOUTH_COAST'); areaTarget.AreaTypeData.RemoveAll; boundary = {48.26, -123.54; 48.28, -123.81; 48.52, -124.76; 48.51, -124.99; 48.03, -125; 48.02, -126.34; 49.38, -128.85; 50.23, -127.74; 50.39, -125.9; 51.45, -124.91; 49.66, -122.3; 49.02, -122.27; 49.03, -123.33; 48.81, -123.02; 48.69, -123.32; 48.44, -123.18; 48.32, -123.29}; areaTarget.CommonTasks.SetAreaTypePattern(boundary);

24 March 2016 – E-14 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 81: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'SC'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(49.7726, -125.197, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; fprintf('Added target area: SOUTH_COAST.\n'); catch warning('Failed to properly create area target: SOUTH_COAST'); end fprintf('Completed the addition of the area target objects.\n\n'); % Save the STK scenario. % ---------------------------------------------------------------------------------------------------------------- fprintf('Saving changes to the "%s" scenario...\n', stkScenario.InstanceName); try root.Save; fprintf('Scenario saved.\n\n'); catch warning('Warning: Could not save STK scenario.\n\n'); end % Clean up. % ---------------------------------------------------------------------------------------------------------------- uiApplication.release; clearvars fprintf('Completed Task 198 Deliverable A''s AGI STK commands.\n\n');

24 March 2016 – E-15 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 82: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

E.2 CORA_198_Deliverable_B_Generate_Ephemeris % ================================================================================================================ % CORA_198_Deliverable_B_Generate_Ephemeris % ================================================================================================================ % Copyright (C) Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2015 % % Contract: W7714-083663/001/SV % Author: Kenzie MacNeil (CAE Inc.) % Version: 1.0 % Date: January 05 2016 % % This script is designed to run in MATLAB R2015a. % This script will automatically generate a series of STK formated ephemeris files (*.e) from S-AIS data. % The script can process the S-AIS data file either in memory or through a series of input/output operations. % Processing in memory may not be possible when analyzing large AIS files. % ================================================================================================================ fprintf('Executing Task 198''s script to generate STK ephemeris data from a S-AIS file.\n\n'); fprintf('Start Time: %s\n', datestr(now)); % Set instance-dependent configuration variables % ---------------------------------------------------------------------------------------------------------------- % Flag passed to the isGeoInAOR function to determine whether or not to check for line segment intersections % when evaluating if a set of points are in an AOR checkAorIntersect = true; % Flag indicating that ships with only 1 entry should be assigned a second, identical entry in order to become a % stationary entity in STK (otherwise the entity only exists for a fraction of a second). createStationaryEntity = true; % Flag indicating whether or not to delete the current contents of the Ephemeris output folders. deletePrevEphemerisData = false; % Flag indicating whether or not to display a progress bar when performing I/O operations. % Generating the GUI can take some time so it is recommend that this value be set to false when converting small files. displayProgBar = false; % Flag indicating whether or not the script should first attempt to process the AIS data in memory. runInMemory = true; % Flag indicating whether or not to save entities that never enter the AOR polygons % Script will operate quicker if this value is false. saveOutsideAOR = true; % String passed the isGeoInAOR function to determine which AOR to check against. % Options: 'ALL', 'JTFA', 'JTFN' or 'JTFP'. checkAOR = 'ALL';

24 March 2016 – E-16 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 83: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% The reference date/time which the STK ephemeris files are based on. % Recommend setting this value to the start time of the desired STK scenario. scenarioEpoch = '31 Aug 2015 00:00:00.000'; % Path to the directory where the final ephemeris file for entities in the AORs will be stored. outEphemerisFolder = '.\Ephemeris Data\AOR'; % Path to the directory where the final ephemeris file for entities outside the AORs will be stored. outOtherFolder = '.\Ephemeris Data\Other'; % Path to the directory used to store the tmp, partitioned AIS entries. % This path is only used when processing the data in I/O mode. outTempFolder = '.\Temp Data'; % The number of header lines in the AIS data file. numHeaderLines = 1; % Time in seconds to add to the single entry time when createStationaryEntity flag is enabled. addTimeInterval = 120; % Constants used when converting geodetic latitude/longitude to ECEF (Earth-Centered, Earth-Fixed) Cartesian coordinate system. % The altitude of ship object. Altitude at 0.0 m assumes sea-level. shipAltInMeters = 0.0; % WGS-84 ellipsoid equatorial radius in meters. Taken from https://en.wikipedia.org/wiki/Earth_ellipsoid on Dec 08 2015. wgs84Radius = 6378137; % WGS-84 first eccentricity. Taken from http://earth-info.nga.mil/GandG/publications/tr8350.2/changes.pdf on Dec 08 2015. wgs84FirstEccentricity = 8.1819190842622e-2; % Matlab exception used to throw file access related errors. FileException = MException('MyComponent:FileError', 'File could not be accessed properly.'); % Select the desired Ephemeris files to be imported into the scenario as ship objects. % ---------------------------------------------------------------------------------------------------------------- fprintf('Select AIS data to convert into STK ephemeris files...\n'); [fileName, filePath, filterIndex] = uigetfile( ... {'*.txt','Text Files (*.txt)'; ...' '*.*', 'All Files (*.*)'}, ... 'Select ship tmp AIS file', 'MultiSelect', 'off'); if filterIndex ~= 0 fprintf('File "%s" selected.\n\n', [filePath fileName]); % Open and ensure that the AIS data file can be read. inFileId = fopen([filePath fileName], 'r'); if inFileId ~= -1 % Attempt to retrieve the AIS data into memory. if runInMemory == true fprintf('Attempting to load the "%s" AIS data entries into memory...\n', [filePath fileName]); try % Read data from text file, convert, and write to cell array. % AIS data format:

24 March 2016 – E-17 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 84: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Col 2 = identity_id % Col 3 = identity_name % Col 15 = latitude % Col 16 = longitude % Col 18 = report_date_time aisCell = textscan(inFileId, ... '%*s %d %s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %f %f %*s %s %*[^\n]', ... 'HeaderLines', numHeaderLines, ... 'Delimiter', '\t'); % Break down the different cell and structure types. aisCellId = aisCell{1}; aisCellName = aisCell{2}; aisCellLat = aisCell{3}; aisCellLong = aisCell{4}; aisCellDateTime = aisCell{5}; clearvars aisCell; fprintf('Successfully retrieved the AIS data into internal memory.\n\n'); catch warning('File "%s" is too larger to process internally.\n', fileName); fprintf('The script AIS data processing will have to use I/O operations to convert the data.\n\n'); clearvars aisCell; runInMemory = false; end else fprintf('The script AIS data processing will use I/O operations.\n\n'); end else error('Could not open the "%s" file.\n', [filePath fileName]); end else % Exit the script if no AIS file is selected. fprintf('No file selected. Exiting script.\n\n'); clearvars return; end % Create an empty ephemeris folder to store the final ephemeris files. % ---------------------------------------------------------------------------------------------------------------- % Create the regular Ephemeris folder. if (exist(outEphemerisFolder, 'dir') && deletePrevEphemerisData == true) fprintf('Deleting the exsisting "%s" folder...\n', outEphemerisFolder); [status] = rmdir(outEphemerisFolder,'s'); if status ~= 1

24 March 2016 – E-18 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 85: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

warning('Could not delete the "%s" folder.\n', outEphemerisFolder); end end [status] = mkdir(outEphemerisFolder); if status ~= 1 error('Could not create folder "%s".', outEphemerisFolder); else fprintf('Created new "%s" folder.\n\n', outEphemerisFolder); end % Create the extra Ephemeris folder for entities outside of the AOR. if saveOutsideAOR == true if (exist(outOtherFolder, 'dir') && deletePrevEphemerisData == true) fprintf('Deleting the exsisting "%s" folder...\n', outOtherFolder); [status] = rmdir(outOtherFolder,'s'); if status ~= 1 warning('Could not delete the "%s" folder.\n', outOtherFolder); end end [status] = mkdir(outOtherFolder); if status ~= 1 error('Could not create folder "%s".', outOtherFolder); else fprintf('Created new "%s" folder.\n\n', outOtherFolder); end end % Create the necessary folders and parse through the file for the I/O operations. % ---------------------------------------------------------------------------------------------------------------- if runInMemory == false % Get the number of lines in the AIS file for the progress bar. if displayProgBar == true fprintf('Determining the number of lines in the AIS file...\n'); [status, cmdout] = dos(['findstr /R /N "^" "' filePath fileName '" | find /C ":"']); if status == 0 inFileLineNum = str2double(cmdout); fprintf('The AIS file contains %d entries.\n\n', inFileLineNum); else warning('Could not determine the number of entries in the "%s" file.\nDisabling progress bar.\n\n', [filePath fileName]); displayProgBar = false; end end

24 March 2016 – E-19 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 86: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Create an empty tmp data folder to store the seperate entity values. if exist(outTempFolder, 'dir') fprintf('Deleting the exsisting "%s" folder...\n', outTempFolder); [status] = rmdir(outTempFolder,'s'); if status ~= 1 warning('Could not delete the "%s" folder.\n', outTempFolder); end end [status] = mkdir(outTempFolder); if status ~= 1 error('Could not create folder "%s".', outTempFolder); else fprintf('Created new "%s" folder.\n\n', outTempFolder); end % Begin partitioning the AIS data file into separate files for each ship identifier. fprintf('\nPartitioning AIS file "%s" into separate data files...\n', [filePath fileName]); fprintf('This may take a while.\n'); lineNum = 0; fileNum = 0; % Create the progress bar. if displayProgBar == true aisWaitBar = waitbar(0, 'Processing AIS data...'); end % Ignore any predefined hearder entries rows from the analysis. for i = 1:numHeaderLines inLine = fgets(inFileId); % Exit the loop if the file is empty. if ischar(inLine) == false break; end lineNum = lineNum + 1; % Update the progress bar. if displayProgBar == true waitbar(lineNum/inFileLineNum, aisWaitBar, sprintf('Processing AIS entry %d of %d', lineNum, inFileLineNum)); end end % Parse through the AIS data line by line while the file is not EOF, and % dump the relative AIS data for each entry into the respective .tmp file.

24 March 2016 – E-20 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 87: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

inLine = fgets(inFileId); while ( ischar(inLine) ) try % Split the AIS entry into the different columns so that the relevant data can be extracted. modLine = regexprep(inLine, '\t\t', '\t.\t'); inCell = strsplit(modLine, '\t'); % Generate the appropriate ship name from the AIS line entry. % Remove any unwanted charcters from the entity name. This is necessary for both Windows and later for STK. identity_id = inCell{1,2}; identity_name = inCell{1,3}; identity_name = strrep(identity_name, '"', ''); identity_name = strtrim(identity_name); if (identity_name == '.') identity_name = ''; end if 0 == isempty(identity_name) nameCharArr = isstrprop(identity_name, 'alphanum'); for i = 1:length(nameCharArr) if nameCharArr(1, i) == 0 identity_name(i) = '_'; end end shipId = [identity_id '_' identity_name]; else shipId = identity_id; end % Open the associated entity tmp dump file. outTempId = fopen([outTempFolder '\' shipId '.tmp'], 'a+'); if outTempId == -1 warning('Could not open the "%s" file.\n', [outTempFolder '\' shipId '.tmp']); throw(FileException); end % Add the relative position data into the file. fprintf(outTempId, [... inCell{1,17} '\t' ... % report_date_time inCell{1,14} '\t' ... % lat inCell{1,15} '\r\n'] ); % long % Close the entity dump file. status = fclose(outTempId);

24 March 2016 – E-21 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 88: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

if status ~= 0 ; warning('Could not close interface to %s.\n', [outTempFolder '\' shipId '.tmp']); throw(FileException); end catch warning('Could not process line number %d properly:\n%s\n', lineNum, inLine); % Try and clean up the open files if they exist. Ignore any errors. try fclose(outTempId); catch % Do nothing. end end % Update the progress bar. lineNum = lineNum + 1; if displayProgBar == true waitbar(lineNum/inFileLineNum, aisWaitBar, sprintf('Processing AIS entry %d of %d', lineNum, inFileLineNum)); end % Get the next line from the AIS data. inLine = fgets(inFileId); end if displayProgBar == true close(aisWaitBar); end fprintf('Finished partitioning %d AIS entries.\n\n', lineNum - numHeaderLines); end % Close the AIS data file. % ---------------------------------------------------------------------------------------------------------------- status = fclose(inFileId); if status ~= 0 ; warning('Could not close interface to %s.\n', fileName); end % Generate the ephemeris files for the AIS entries. % ---------------------------------------------------------------------------------------------------------------- % Cleanup and initialize variables before moving on.

24 March 2016 – E-22 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 89: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

clearvars -except addTimeInterval aisCellDateTime aisCellId aisCellLat aisCellLong aisCellName checkAOR checkAorIntersect createStationaryEntity displayProgBar FileException numHeaderLines outEphemerisFolder outOtherFolder outTempFolder runInMemory saveOutsideAOR scenarioEpoch shipAltInMeters wgs84FirstEccentricity wgs84Radius epochDateVec = datevec(scenarioEpoch); ephFileId = -1; % Create ephemeris files from internal memory. % ---------------------------------------------------------------------------------------------------------------- if runInMemory == true fprintf('Converting AIS data entries to ephemeris data...\n'); numEntries = size(aisCellId,1); outCell = cell(numEntries, 4); % Break down the AIS cell arrays into appropriate ephemeris entries. % -------------------------------------------------------------------------------- for i = 1:numEntries try % Generate the appropriate ship name from the AIS line entry. % Remove any unwanted charcters from the entity name. This is necessary for both Windows and later for STK. identity_id = aisCellId(i,1); identity_name = aisCellName{i,1}; identity_name = strrep(identity_name, '"', ''); identity_name = strtrim(identity_name); if 0 == isempty(identity_name) nameCharArr = isstrprop(identity_name, 'alphanum'); for j = 1:length(nameCharArr) if nameCharArr(1, j) == 0 identity_name(j) = '_'; end end shipId = [num2str(identity_id) '_' identity_name]; else shipId = num2str(identity_id); end outCell{i,4} = shipId; % Determine the date/time relative to the epoch date and overwrite the value. outCell{i,1} = etime(datevec(aisCellDateTime{i,1}), epochDateVec); % Store the lat/long into the out cell array. outCell{i,2} = aisCellLat(i,1); outCell{i,3} = aisCellLong(i,1);

24 March 2016 – E-23 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 90: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

catch warning('Failed to generate associated ephemeris entry for AIS entry:\n%d %s %f %f %s\n', ... aisCellId(i,1), aisCellName{i,1}, aisCellLat(i,1), aisCellLong(i,1), aisCellDateTime{i,1}); end end clearvars aisCellId aisCellName aisCellLat aisCellLong aisCellDateTime identity_id identity_name latInRad longInRad N shipId % Sort the converted ephemeris according to name then by date/time. % -------------------------------------------------------------------------------- fprintf('Sorting ephemeris data entries...\n'); outCell = sortrows(outCell, [4 1]); % Create the set of STK ephemeris files. % -------------------------------------------------------------------------------- fprintf('Generating ephemeris files...\n'); ephCell = cell(1,4); ephEntryName = ''; ephEntries = 0; inAOR = false; if numEntries >= 1 ephEntryName = outCell{1,4}; % Ship ID / Name end % Iterate through the converted and sorted ephemeris cell data and create the ephemeris files. for i = 1:(numEntries) try % Complete the ephemeris file if the ship name does not match the previous entry. if strcmp(ephEntryName, outCell{i, 4}) == false % Skip the creation of the ephemeris if we aren't saving files outside of the AORs. if (inAOR == false && saveOutsideAOR == false) % Reset the ephemeris variables for the new ship Id. clearvars ephCell ephEntries prevLat prevLong; ephCell = cell(1,4); ephEntryName = outCell{i, 4}; % Ship ID / Name ephEntries = 1; inAOR = false; continue; end % Create the new ephemeris file.

24 March 2016 – E-24 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 91: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

if (inAOR == true) outFolder = outEphemerisFolder; else outFolder = outOtherFolder; end ephFileId = fopen([outFolder '\' ephEntryName '.e'], 'w+'); if ephFileId == -1 warning('Could not create/open the "%s" file.', [outFolder '\' ephEntryName '.e']); throw(FileException); end % Add second entry to create a stationary ephemeris file. if (ephEntries == 1 && createStationaryEntity == true) ephCell{2,1} = ephCell{1,1} + addTimeInterval; ephCell{2,2} = ephCell{1,2}; ephCell{2,3} = ephCell{1,3}; ephCell{2,4} = ephCell{1,4}; ephEntries = 2; end % Sort the data in the cell array accorinding to its date/time. ephCell = sortrows(ephCell, 1); % Print the header of the ephemeris file. fprintf(ephFileId, 'stk.v.10.0\r\n\r\n'); fprintf(ephFileId, '# WrittenBy MATLAB Generate_Ephemeris script\r\n\r\n'); fprintf(ephFileId, 'BEGIN Ephemeris\r\n\r\n'); fprintf(ephFileId, 'NumberOfEphemerisPoints %d\r\n\r\n', ephEntries); fprintf(ephFileId, 'ScenarioEpoch %s\r\n\r\n', scenarioEpoch); fprintf(ephFileId, 'CentralBody Earth\r\n\r\n'); fprintf(ephFileId, 'CoordinateSystem Fixed\r\n\r\n'); fprintf(ephFileId, 'EphemerisTimePos\r\n\r\n'); % Print the ephemeris entries collected from outCell. for j = 1:ephEntries fprintf(ephFileId, '%.14e %.14e %.14e %.14e\r\n', ... ephCell{j,1}, ephCell{j,2}, ephCell{j,3}, ephCell{j,4}); end fprintf(ephFileId, '\r\nEND Ephemeris\r\n\r\n'); % Print success and cleanup the variables. fprintf('Ephemeris file built for: %s\n', ephEntryName); clearvars ephCell ephEntries prevLat prevLong;

24 March 2016 – E-25 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 92: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Close the current ephemeris file. status = fclose(ephFileId); if status ~= 0 ; warning('Could not close interface to %s.\n', [outFolder '\' ephEntryName '.e']); throw(FileException); end % Reset the ephemeris variables for the new ship Id. ephCell = cell(1,4); ephEntryName = outCell{i, 4}; % Ship ID / Name ephEntries = 1; inAOR = false; else % Increase the number of ephemeris entries for a new line with the same ship Id as the previous entry. ephEntries = ephEntries + 1; end % Copy the data into separate cell array for this ship identifier. ephCell{ephEntries, 1} = outCell{i, 1}; % Time % Check to see if the ship exists within the AORs. if (inAOR == false) % Use the lat / long values to determine if the point exists in the AOR. if ( exist('prevLat', 'var') ~= 0 && exist('prevLong', 'var') ~= 0 ) inAOR = isGeoInAOR(checkAOR, outCell{i, 2}, outCell{i, 3}, prevLat, prevLong, checkAorIntersect); else inAOR = isGeoInAOR(checkAOR, outCell{i, 2}, outCell{i, 3}); prevLat = outCell{i, 2}; prevLong = outCell{i, 3}; end end % Perform intermediate calculation (prime vertical radius of curvature) latInRad = outCell{i, 2} * (pi/180); longInRad = outCell{i, 3} * (pi/180); % Convert Geodetic coordinates to ECEF coordinates. % Taken from https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates on Dec 08 2015. N = wgs84Radius / sqrt(1 - wgs84FirstEccentricity^2 * sin(latInRad)^2);

24 March 2016 – E-26 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 93: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Convert the latitude and longitude form degrees to earth-centered, earth-fixed(ECEF) cartesian values. ephCell{ephEntries, 2} = (N + shipAltInMeters) * cos(latInRad) * cos(longInRad); ephCell{ephEntries, 3} = (N + shipAltInMeters) * cos(latInRad) * sin(longInRad); ephCell{ephEntries, 4} = ((1 - wgs84FirstEccentricity^2) * N + shipAltInMeters) * sin(latInRad); catch warning('Could not process cell entry properly.'); % Try and clean up the open files if they exist. Ignore any errors. try fclose(ephFileId); catch % Do nothing. end end end % Create the final ephemeris file. if (inAOR == true || saveOutsideAOR == true) try % Create the new ephemeris file. if (inAOR == true) outFolder = outEphemerisFolder; ephFileId = fopen([outEphemerisFolder '\' ephEntryName '.e'], 'w+'); else outFolder = outOtherFolder; ephFileId = fopen([outOtherFolder '\' ephEntryName '.e'], 'w+'); end if ephFileId == -1 warning('Could not create/open the "%s" file.\n', [outFolder '\' ephEntryName '.e']); throw(FileException); end % Add second entry to create a stationary ephemeris file. if (ephEntries == 1 && createStationaryEntity == true) ephCell{2,1} = ephCell{1,1} + addTimeInterval; ephCell{2,2} = ephCell{1,2}; ephCell{2,3} = ephCell{1,3}; ephCell{2,4} = ephCell{1,4}; ephEntries = 2; end % Sort the data in the cell array accorinding to its date/time. ephCell = sortrows(ephCell, 1);

24 March 2016 – E-27 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 94: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Print the header of the ephemeris file. fprintf(ephFileId, 'stk.v.10.0\r\n\r\n'); fprintf(ephFileId, '# WrittenBy MATLAB Generate_Ephemeris script\r\n\r\n'); fprintf(ephFileId, 'BEGIN Ephemeris\r\n\r\n'); fprintf(ephFileId, 'NumberOfEphemerisPoints %d\r\n\r\n', ephEntries); fprintf(ephFileId, 'ScenarioEpoch %s\r\n\r\n', scenarioEpoch); fprintf(ephFileId, 'CentralBody Earth\r\n\r\n'); fprintf(ephFileId, 'CoordinateSystem Fixed\r\n\r\n'); fprintf(ephFileId, 'EphemerisTimePos\r\n\r\n'); % Print the ephemeris entries collected from outCell. for j = 1:ephEntries fprintf(ephFileId, '%.14e %.14e %.14e %.14e\r\n', ... ephCell{j,1}, ephCell{j,2}, ephCell{j,3}, ephCell{j,4}); end fprintf(ephFileId, '\r\nEND Ephemeris\r\n\r\n'); % Print success and cleanup the variables. fprintf('Ephemeris file built for: %s\n', ephEntryName); % Close the current ephemeris file. status = fclose(ephFileId); if status ~= 0 ; warning('Could not close interface to %s.\n', [outFolder '\' ephEntryName '.e']); throw(FileException); end catch warning('Could not process cell entry properly.\n'); % Try and clean up the open files if they exist. Ignore any errors. try fclose(ephFileId); catch % Do nothing. end end end fprintf('Completed generating ephemeris files.\n\n'); % Create ephemeris files from I/O operations. % ---------------------------------------------------------------------------------------------------------------- else % Get the list of temp files to be converted into ephemeris files. tmpFileList = dir(outTempFolder); tmpFileList = tmpFileList(~[tmpFileList.isdir]); %remove directories

24 March 2016 – E-28 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 95: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

tmpFileId = -1; fprintf('Generating %d new STK ephemeris files for the tmp data files...\n', numel(tmpFileList)); fprintf('This may take a while.\n'); % Create the progress bar. if displayProgBar == true ephWaitBar = waitbar(0, 'Generating ephemeris files...'); end for i = 1:numel(tmpFileList) try % Open the associated entity temp file. tmpFileId = fopen([outTempFolder '\' tmpFileList(i).name], 'r'); if tmpFileId == -1 warning('Could not open the "%s" file.\n', [outTempFolder '\' tmpFileList(i).name]); throw(FileException); end % Get the contents of the file and determine the number of entries in the tmp file. inCell = textscan(tmpFileId, '%s %f %f %*[^\n]', 'Delimiter','\t'); clearvars inCellDateTime inCellLat inCellLong; inCellDateTime = inCell{1}; inCellLat = inCell{2}; inCellLong = inCell{3}; clearvars inCell; % Get the number of entries in the tmp file. tmpEntries = size(inCellDateTime,1); outCell = cell(tmpEntries, 4); inAOR = false; clearvars prevLat prevLong; % Iterate through and break down the tmp file into appropriate ephemeris entries. for j = 1:tmpEntries % Check to see if the ship exists within the AORs. if (inAOR == false) % Use the lat / long values to determine if the point exists in the AOR. if ( exist('prevLat', 'var') ~= 0 && exist('prevLong', 'var') ~= 0 ) inAOR = isGeoInAOR(checkAOR, inCellLat(j,1), inCellLong(j,1), prevLat, prevLong, checkAorIntersect); else inAOR = isGeoInAOR(checkAOR, inCellLat(j,1), inCellLong(j,1));

24 March 2016 – E-29 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 96: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

prevLat = inCellLat(j,1); prevLong = inCellLong(j,1); end end % Determine the date/time relative to the epoch date and overwrite the value. outCell{j,1} = etime(datevec(inCellDateTime{j,1}), epochDateVec); % Perform intermediate calculation (prime vertical radius of curvature) latInRad = inCellLat(j,1) * (pi/180); longInRad = inCellLong(j,1) * (pi/180); % Convert Geodetic coordinates to ECEF coordinates. % Taken from https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates on Dec 08 2015. N = wgs84Radius / sqrt(1 - wgs84FirstEccentricity^2 * sin(latInRad)^2); % Convert the latitude and longitude form degrees to earth-centered, earth-fixed(ECEF) cartesian values. outCell{j,2} = (N + shipAltInMeters) * cos(latInRad) * cos(longInRad); outCell{j,3} = (N + shipAltInMeters) * cos(latInRad) * sin(longInRad); outCell{j,4} = ((1 - wgs84FirstEccentricity^2) * N + shipAltInMeters) * sin(latInRad); end % Add second entry to create a stationary ephemeris file. if (tmpEntries == 1 && createStationaryEntity == true) outCell{2,1} = outCell{1,1} + addTimeInterval; outCell{2,2} = outCell{1,2}; outCell{2,3} = outCell{1,3}; outCell{2,4} = outCell{1,4}; end % Sort the data in the cell array accorinding to its date/time. outCell = sortrows(outCell, 1); ephEntries = size(outCell,1); % Skip the creation of the ephemeris if we aren't saving files outside of the AORs. if (inAOR == false && saveOutsideAOR == false) continue; end % Create the new ephemeris file.

24 March 2016 – E-30 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 97: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

ephEntryName = strrep(tmpFileList(i).name, '.tmp', '.e'); if (inAOR == true) outFolder = outEphemerisFolder; else outFolder = outOtherFolder; end ephFileId = fopen([outFolder '\' ephEntryName], 'w+'); if ephFileId == -1 warning('Could not create/open the "%s" file.\n', [outFolder '\' ephEntryName]); throw(FileException); end % Print the header of the ephemeris file. fprintf(ephFileId, 'stk.v.10.0\r\n\r\n'); fprintf(ephFileId, '# WrittenBy MATLAB Generate_Ephemeris script\r\n\r\n'); fprintf(ephFileId, 'BEGIN Ephemeris\r\n\r\n'); fprintf(ephFileId, 'NumberOfEphemerisPoints %d\r\n\r\n', ephEntries); fprintf(ephFileId, 'ScenarioEpoch %s\r\n\r\n', scenarioEpoch); fprintf(ephFileId, 'CentralBody Earth\r\n\r\n'); fprintf(ephFileId, 'CoordinateSystem Fixed\r\n\r\n'); fprintf(ephFileId, 'EphemerisTimePos\r\n\r\n'); % Print the sorted EphemerisTimePos points. for j = 1:ephEntries fprintf(ephFileId, '%.14e %.14e %.14e %.14e\r\n', ... outCell{j,1}, outCell{j,2}, outCell{j,3}, outCell{j,4}); end fprintf(ephFileId, '\r\nEND Ephemeris\r\n\r\n'); % Close the tmp entity dump file. status = fclose(tmpFileId); if status ~= 0 ; warning('Could not close interface to %s.\n', tmpFileList(i).name); throw(FileException); end % Close the ephemeris file. status = fclose(ephFileId); if status ~= 0 ; warning('Could not close interface to %s.\n', ephEntryName); throw(FileException); end % Print success.

24 March 2016 – E-31 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 98: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

%fprintf('Ephemeris file built for: %s\n', ephEntryName); % Update the progress bar. if displayProgBar == true waitbar(i/numel(tmpFileList), ephWaitBar, sprintf('Creating ephemeris file %d of %d', i, numel(tmpFileList))); end catch warning('Could not process tmp file "%s" properly:\n', tmpFileList(i).name); clearvars inCell inCellDateTime inCellLat inCellLong; % Try and clean up the open files if they exist. Ignore any errors. try fclose(tmpFileId); catch % Do nothing. end try fclose(ephFileId); catch % Do nothing. end end % Remove previous position data from memory. clearvars inCell outCell end if displayProgBar == true close(ephWaitBar); end fprintf('Completed generating ephemeris files.\n\n'); % Delete the intermediate tmp files. if exist(outTempFolder, 'dir') fprintf('Deleting temporary "%s" folder...\n', outTempFolder); [status] = rmdir(outTempFolder,'s'); if status == 1 fprintf('Successfully deleted "%s" folder.\n\n', outTempFolder); else warning('Could not delete the "%s" folder.\n\n', outTempFolder); end end end

24 March 2016 – E-32 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 99: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Clean up. % ---------------------------------------------------------------------------------------------------------------- clearvars fprintf('Completed generating STK ephemeris file(s) from tmp S-AIS file.\n\n'); fprintf('End Time: %s\n', datestr(now));

E.3 CORA_198_Deliverable_B_Import_Ship % ================================================================================================================ % CORA_198_Deliverable_B_Import_Ship % ================================================================================================================ % Copyright (C) Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2015 % % Contract: W7714-083663/001/SV % Author: Kenzie MacNeil (CAE Inc.) % Version: 1.0 % Date: January 05 2016 % % This script is designed to run in MATLAB R2015a and requires AGI STK 10.1.3, STK Pro and STK Connect. % This script will automatically generate ship objects in an AGI STK scenario for selected STK formated % ephemeris files (*.e). % ================================================================================================================ fprintf('Executing Task 198''s AGI STK ship import based on ephemeris data.\n\n'); % Set instance-dependent configuration variables % ---------------------------------------------------------------------------------------------------------------- % Folder name, or subpath, of where the ephemeris files will be stored in the connected STK scenario folder. stkEphemerisFolder = '\Ephemeris_Data\'; % Boolean used to determine whether the script selects a set of ephemeris files or imports all ephemeris files in a folder. getEphemerisDir = true; % Boolean used to determine whether or not the STK scenario should be saved after importing the ship objects. saveStkScenario = true; % Boolean used to set whether an imported ship is visible or not by default. areShipsVisible = true; % Connect to an existing STK session; % ---------------------------------------------------------------------------------------------------------------- % Establish the connection an existing instance of AGI STK 10.

24 March 2016 – E-33 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 100: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

fprintf('Connecting to AGI STK 10...\n'); try uiApplication = actxGetRunningServer('STK10.Application'); root = uiApplication.Personality2; catch clearvars error('AGI STK 10 is not currently running. Please open the STK scenario you wish to modify and execute this script again.'); end fprintf('Getting current open STK scenario...\n'); % Check that there is an open STK scenario. stkScenario = root.CurrentScenario; if isempty(stkScenario) clearvars error('There is no open STK scenario. Please open the STK scenario you wish to modify and execute this script again.'); end fprintf('Successfully connected to STK scenario: %s.\n\n', stkScenario.InstanceName); % Ensure that the current STK scenario directory can be accessed. % ---------------------------------------------------------------------------------------------------------------- try cmdResult = root.ExecuteCommand('GetDirectory / Scenario'); stkScenarioDir = cmdResult.Item(0); clearvars cmdResult; % Create an Ephemeris data folder if one does not already exist. if exist([stkScenarioDir stkEphemerisFolder], 'dir') == 0 [status] = mkdir([stkScenarioDir stkEphemerisFolder]); if status ~= 1 error('Could not create folder "%s".', [stkScenarioDir stkEphemerisFolder]); else fprintf('Created new "%s" folder.\n', [stkScenarioDir stkEphemerisFolder]); end else fprintf('The "%s" folder already exists. Some previous *.e might be overridden.\n', [stkScenarioDir stkEphemerisFolder]); end fprintf('The selected ephemeris files will be moved to: %s\n\n', [stkScenarioDir stkEphemerisFolder]); catch error('Failed to get the STK scenario directory path.\n');

24 March 2016 – E-34 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 101: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

end % Select the desired Ephemeris files to be imported into the scenario as ship objects. % ---------------------------------------------------------------------------------------------------------------- if getEphemerisDir == true % Have the user select a folder containing ephemeris files. fprintf('Select folder containing the Ephemeris files to be imported into the scenario as ship objects.\n'); pathName = uigetdir('.', 'Select STK Ship Ephemeris folder'); % Check to see if any folder was selected. if pathName ~= 0 fileData = dir([pathName '\*.e']); if numel(fileData) > 0 pathName = [pathName '\']; filterIndex = 1; % Break down the directory data into a cell array of file names. fileDataCell = struct2cell(fileData); fileNames = fileDataCell(1,:); clearvars fileData fileDataCell; else % Set flag to indicate that the directory does not contain any *.e files. filterIndex = 0; end else % Set flag to indicate that no directory was selected. filterIndex = 0; end else % Have the user select specific ephemeris file(s). fprintf('Select Ephemeris files to be imported into the scenario as ship objects.\n'); [fileNames, pathName, filterIndex] = uigetfile( {'*.e','Ephemeris File (*.e)'}, 'Select STK Ship Ephemeris file(s)', 'MultiSelect', 'on'); end % Iterate through and import the selected Ephemeris files. % ---------------------------------------------------------------------------------------------------------------- if filterIndex ~= 0 % Convert string into cell array if only one file is selected. if ischar(fileNames) fileNames = {fileNames}; end

24 March 2016 – E-35 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 102: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Import ephemeris files as new ship objects in the STK scenario. fprintf('Importing the %d ephemeris files as new ship objects...\n', numel(fileNames)); for i=1:numel(fileNames) shipName = fileNames{i}; shipName = strrep(shipName, '.e', ''); %fprintf('Importing new ship object: %s\n', shipName); try % Copy the ephemeris file into the STK scenario directory. %fprintf(' - Copying %s to %s\n', fileNames{i}, [stkScenarioDir stkEphemerisFolder]); [copyStatus,errMsg] = copyfile([pathName fileNames{i}], [stkScenarioDir stkEphemerisFolder]); % The ephemeris was successfully copied into the STK scenario folder. if copyStatus == 1 %fprintf(' - File successfully copied.\n'); % Delete the ship if it already exists in the scenario. if stkScenario.Children.Contains('eShip',shipName); shipObj = stkScenario.Children.Item(shipName); shipObj.Unload; %fprintf(' - Deleted previous %s ship object.\n', shipName); end % Add the ship based on the ephemeris file. shipObj = stkScenario.Children.New('eShip', shipName); shipObj.SetRouteType('ePropagatorStkExternal'); shipObj.Route.Filename = [stkScenarioDir stkEphemerisFolder '\' fileNames{i}]; shipObj.Route.Propagate; % Set default ship visual properties. shipObj.Graphics.Attributes.Color = 16776974; shipObj.Graphics.Attributes.IsVisible = areShipsVisible; else % Failed to copy the ephemeris file into the STK scenario folder. warning('Failed to copy the ephemeris file "%s" into the scenario folder.\nCopy error: %s\n', fileNames{i}, errMsg); end fprintf('Successfully imported ship object: %s.\n', shipName); catch warning('Failed to import ephemeris file "%s" as ship object.\n', fileNames{i}); end end

24 March 2016 – E-36 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 103: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

fprintf('Finished importing the ephemeris data into the STK scenario.\n\n'); else fprintf('No STK ship ephemeris files selected.\nSkipping ship object import commands.\n\n'); end % Save the STK scenario. % ---------------------------------------------------------------------------------------------------------------- if saveStkScenario == true fprintf('Saving changes to the "%s" scenario...\n', stkScenario.InstanceName); try root.Save; fprintf('Scenario saved.\n\n'); catch warning('Warning: Could not save STK scenario.\n\n'); end end % Clean up. % ---------------------------------------------------------------------------------------------------------------- uiApplication.release; clearvars fprintf('Completed importing ephemeris data into AGI STK as ship objects.\n\n');

E.4 CORA_198_Deliverable_C_Analyze_STK_Model % ================================================================================================================ % CORA_198_Deliverable_C_Analyze_STK_Model % ================================================================================================================ % Copyright (C) Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2015-2016 % % Contract: W7714-083663/001/SV % Author: Kenzie MacNeil (CAE Inc.) % Version: 1.1 % Date: February 22, 2016 % % This script is designed to run in MATLAB R2015a and requires AGI STK 10.1.3, STK Pro and STK Connect. % The script will then calculate the ship access with the exact earth AIS sensor to determine the number of

24 March 2016 – E-37 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 104: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% transmitted messages over the course of an access interval with an AOR. The total number of transmissions % over the access time is then used to determine the probability of extracting an uncorrupted AIS class A % position report message according to the probabilistic model presented in % "The Performance of a Space-Based AIS System" by James K.E. Tunaley, London Research and Development % Corporation Technical Report, August 8th 2011. % This script will return whether or not it successfully completed its operations in the 'exitStatus' boolean. % The exit status will be true if all operations were completed successfully. % ================================================================================================================ fprintf('Executing Task 198''s parametric sensor model in STK...\n'); tStart = datevec(now); fprintf('Start Time: %s\n\n', datestr(tStart)); % Set instance-dependent configuration variables % ---------------------------------------------------------------------------------------------------------------- % Flag indicating whether or not to us to compute the probability of receiving an uncorrupted message when the % satellite has access to the JTFA area target. computeJtfaMsgs = true; % Flag indicating whether or not to us to compute the probability of receiving an uncorrupted message when the % satellite has access to the JTFN area target. computeJtfnMsgs = true; % Flag indicating whether or not to us to compute the probability of receiving an uncorrupted message when the % satellite has access to the JTFP area target. computeJtfpMsgs = true; % The probability of receiving an uncorrupted message at the input of the receiving system regardless of collisions. % The default value from "The Performance of a Space-Based AIS System" paper is 0.2683. gammaZero = 0.2683; % The sensor area overlap factor based on AIS sensor altitude and swath width. % The default value from "The Performance of a Space-Based AIS System" paper is 0.6744. s = 0.6744; % The probability that a single message will be uncorrupted by the simultaneous arrival of another singleton message. % The default value from "The Performance of a Space-Based AIS System" paper is 0.904. q = 0.904; % Start time of the STK scenario being analyzed. scenarioStartTime = '31 Aug 2015 00:00:00.000'; % Flag indicating whether or not to clear the access computation in STK once the results have been imported into MATLAB. clearSTKAccess = true; % Flag indicating whether or not to save the STK scenario after computing the access values. saveSTKScenario = false; % Matlab exception used to throw file access related errors. FileException = MException('MyComponent:FileError', 'File could not be accessed properly.');

24 March 2016 – E-38 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 105: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Connect to an existing STK session; % ---------------------------------------------------------------------------------------------------------------- % Establish the connection an existing instance of AGI STK 10. fprintf('Connecting to AGI STK 10...\n'); try uiApplication = actxGetRunningServer('STK10.Application'); if isempty(uiApplication) == true % Start STK. uiApplication = actxserver('STK10.Application'); end uiApplication.Visible = 1; % Get interface STK Object Model Root. root = uiApplication.Personality2; catch clearvars error('Could not connect to AGI STK 10 application.'); end % Check that there is no open STK scenario. stkScenario = root.CurrentScenario; if isempty(stkScenario) == false root.Save; root.CloseScenario; end % Ensure that the current STK scenario directory can be accessed. cmdResult = root.ExecuteCommand('GetDirectory / DefaultUser'); stkScenarioDir = cmdResult.Item(0); clearvars cmdResult; % Get the STK scenario folders. stkAisScenarioSubfolder = uigetdir(stkScenarioDir, 'Select the subdirectory containing the AIS scenarios'); stkScenarioList = getAllFilesOfType(stkAisScenarioSubfolder, '*.sc'); % Generate the relative datevec for the start time. startDateVec = datevec(scenarioStartTime); % Iterate through the list of STK scenarios. % ---------------------------------------------------------------------------------------------------------------- for i = 1:numel(stkScenarioList) try

24 March 2016 – E-39 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 106: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

fprintf('Accessing STK scenario: %s\n', stkScenarioList{i}); root.LoadScenario( stkScenarioList{i} ); stkScenario = root.CurrentScenario; % Get the satellite references. exactViewSat = stkScenario.Children.Item('exactview1_38709'); aisSensor = exactViewSat.Children.Item('exactview1_AIS'); % Get the AOR and exact earth AIS sensor access times. % ----------------------------------------------------- % Get the JTFA access times. if (computeJtfaMsgs == true && exist('jtfaAccessTimes', 'var') == false) areaTarget = stkScenario.Children.Item('JTFA'); areaTargetAccess = aisSensor.GetAccessToObject(areaTarget); areaTargetAccess.ComputeAccess; accessTimes = areaTargetAccess.ComputedAccessIntervalTimes.ToArray(0, areaTargetAccess.ComputedAccessIntervalTimes.Count); jtfaAccessTimes = convertAccessStringCellToDateTime(accessTimes, scenarioStartTime); % Clean up the previous access calculations to save memory in STK. if clearSTKAccess == true areaTargetAccess.ClearAccess; end clearvars areaTarget areaTargetAccess accessTimes; end % Get the JTFN access times. if (computeJtfnMsgs == true && exist('jtfnAccessTimes', 'var') == false) areaTarget = stkScenario.Children.Item('JTFN'); areaTargetAccess = aisSensor.GetAccessToObject(areaTarget); areaTargetAccess.ComputeAccess; accessTimes = areaTargetAccess.ComputedAccessIntervalTimes.ToArray(0, areaTargetAccess.ComputedAccessIntervalTimes.Count); jtfnAccessTimes = convertAccessStringCellToDateTime(accessTimes, scenarioStartTime); % Clean up the previous access calculations to save memory in STK. if clearSTKAccess == true areaTargetAccess.ClearAccess; end clearvars areaTarget areaTargetAccess accessTimes; end % Get the JTFP access times. if (computeJtfpMsgs == true && exist('jtfpAccessTimes', 'var') == false) areaTarget = stkScenario.Children.Item('JTFP'); areaTargetAccess = aisSensor.GetAccessToObject(areaTarget); areaTargetAccess.ComputeAccess;

24 March 2016 – E-40 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 107: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

accessTimes = areaTargetAccess.ComputedAccessIntervalTimes.ToArray(0, areaTargetAccess.ComputedAccessIntervalTimes.Count); jtfpAccessTimes = convertAccessStringCellToDateTime(accessTimes, scenarioStartTime); % Clean up the previous access calculations to save memory in STK. if clearSTKAccess == true areaTargetAccess.ClearAccess; end clearvars areaTarget areaTargetAccess accessTimes; end % Get a list of the ships in the scenario. shipCollection = stkScenario.Children.GetElements('eShip'); % Iterate through the set of ships in the scenario. for shipIndex = 0:(shipCollection.Count - 1) shipName = 'ERROR - Could not get ship name.'; try shipObj = shipCollection.Item(cast(shipIndex, 'int32')); shipName = shipObj.InstanceName; % Compute the access between the satellite sensor and the new ship object. shipAccess = aisSensor.GetAccessToObject(shipObj); shipAccess.ComputeAccess; % If there are any access times between the satellite and ship then % update the total number of transmissions for the appropriate AOR. if (shipAccess.ComputedAccessIntervalTimes.Count > 0) % Get the full set of access times from STK. accessTimes = shipAccess.ComputedAccessIntervalTimes.ToArray(0, shipAccess.ComputedAccessIntervalTimes.Count); % Create book keeping matrices to determine if a ship as already reported during a particular AOR access interval. clearvars prevJtfaReportIndices prevJtfnReportIndices prevJtfpReportIndices; prevJtfaReportIndices = zeros( numel(jtfaAccessTimes(:, 1)), 1 ); prevJtfnReportIndices = zeros( numel(jtfnAccessTimes(:, 1)), 1 ); prevJtfpReportIndices = zeros( numel(jtfpAccessTimes(:, 1)), 1 ); % Iterate through the satellite/ship access times to determine % if the satellite is currently in contact with an AOR. for j = 1:numel(accessTimes(:, 1)) % Convert the start and end date times to the relative second value. accessStartTimeInSec = etime(datevec(accessTimes(j, 1)), startDateVec); accessEndTimeInSec = etime(datevec(accessTimes(j, 2)), startDateVec);

24 March 2016 – E-41 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 108: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Compare the access time against the JTFA area target access times. if computeJtfaMsgs == true rowIndex = isTimeInAccessInterval(accessStartTimeInSec, accessEndTimeInSec, jtfaAccessTimes); % The access/detection time occured when the satellite sensor had access to JTFA area target. if rowIndex > 0 % Increase the message count by 1. jtfaAccessTimes{rowIndex, 5} = jtfaAccessTimes{rowIndex, 5} + 1; if prevJtfaReportIndices(rowIndex) == false jtfaAccessTimes{rowIndex, 6} = jtfaAccessTimes{rowIndex, 6} + 1; prevJtfaReportIndices(rowIndex) = true; end end end % Compare the access time against the JTFN area target access times. if computeJtfnMsgs == true rowIndex = isTimeInAccessInterval(accessStartTimeInSec, accessEndTimeInSec, jtfnAccessTimes); % The access/detection time occured when the satellite sensor had access to JTFN area target. if rowIndex > 0 % Increase the message count by 1. jtfnAccessTimes{rowIndex, 5} = jtfnAccessTimes{rowIndex, 5} + 1; if prevJtfnReportIndices(rowIndex) == false jtfnAccessTimes{rowIndex, 6} = jtfnAccessTimes{rowIndex, 6} + 1; prevJtfnReportIndices(rowIndex) = true; end end end % Compare the access time against the JTFA area target access times. if computeJtfpMsgs == true rowIndex = isTimeInAccessInterval(accessStartTimeInSec, accessEndTimeInSec, jtfpAccessTimes); % The access/detection time occured when the satellite sensor had access to JTFA area target. if rowIndex > 0 % Increase the message count by 1. jtfpAccessTimes{rowIndex, 5} = jtfpAccessTimes{rowIndex, 5} + 1; if prevJtfpReportIndices(rowIndex) == false jtfpAccessTimes{rowIndex, 6} = jtfpAccessTimes{rowIndex, 6} + 1; prevJtfpReportIndices(rowIndex) = true; end end end end end

24 March 2016 – E-42 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 109: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Clean up the previous access calculations to save memory in STK. if clearSTKAccess == true shipAccess.ClearAccess; end catch warning('Failed to properly process ship: %s.\n', shipName); end % Clear the data from the previous ship object. clear shipName shipObj shipAccess; clear accessTimes accessStartTimeInSec accessEndTimeInSec rowIndex; end catch warning('Failed to process STK scenario: %s', stkScenarioList{i}); end if saveSTKScenario == true root.Save; pause(15); end root.CloseScenario; pause(30); % Wait for STK to reformat it's windows. clearvars stkScenario shipCollection exactViewSat aisSensor end % Save and close the current scenario. fprintf('Completed gathering ship data from the STK scenarios.\n'); fprintf('Time: %s\n\n', datestr(now)); % Clean up STK connection. clearvars aisSensor areShipsVisible exactViewSat FileException i inShipFolder j root satImportOption satImportPath; clearvars scenarioEndTime scenarioName scenarioStartTime shipEphFileList startDateVec stkDefaultScenarioName stkScenario; clearvars stkScenarioDir stkScenarioShipDataPath stkScenarioSubDir stkShipDataSubDir; clearvars maxNumOfShipsPerScenario numImportBeforeSave clearSTKAccess; clearvars prevJtfaReportIndices prevJtfnReportIndices prevJtfpReportIndices; uiApplication.release; clearvars uiApplication; % Calculate the probability of receiving an uncorrupted AIS message for the relative AORs. % ----------------------------------------------------------------------------------------------------------------

24 March 2016 – E-43 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 110: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

fprintf('Started probability analysis.\n'); % Get the JTFA probability of receiving uncorrupted message. if computeJtfaMsgs == true [jtfaProbArray, jtfaMinProb, jtfaMaxProb, jtfaAvgProb] = processAisMessageArray( 'JTFA', gammaZero, q, s, jtfaAccessTimes ); fprintf('Probabilities of extracting uncorrupted S-AIS message for JTFA:\n'); fprintf(' - Minimum Probability = %0.10f\n', jtfaMinProb); fprintf(' - Maximum Probability = %0.10f\n', jtfaMaxProb); fprintf(' - Average Probability = %0.10f\n\n', jtfaAvgProb); end % Get the JTFN probability of receiving uncorrupted message. if computeJtfnMsgs == true [jtfnProbArray, jtfnMinProb, jtfnMaxProb, jtfnAvgProb] = processAisMessageArray( 'JTFN', gammaZero, q, s, jtfnAccessTimes ); fprintf('Probabilities of extracting uncorrupted S-AIS message for JTFN:\n'); fprintf(' - Minimum Probability = %0.10f\n', jtfnMinProb); fprintf(' - Maximum Probability = %0.10f\n', jtfnMaxProb); fprintf(' - Average Probability = %0.10f\n\n', jtfnAvgProb); end % Get the JTFP probability of receiving uncorrupted message. if computeJtfpMsgs == true [jtfpProbArray, jtfpMinProb, jtfpMaxProb, jtfpAvgProb] = processAisMessageArray( 'JTFP', gammaZero, q, s, jtfpAccessTimes ); fprintf('Probabilities of extracting uncorrupted S-AIS message for JTFP:\n'); fprintf(' - Minimum Probability = %0.10f\n', jtfpMinProb); fprintf(' - Maximum Probability = %0.10f\n', jtfpMaxProb); fprintf(' - Average Probability = %0.10f\n\n', jtfpAvgProb); end clearvars computeJtfaMsgs computeJtfnMsgs computeJtfpMsgs; % Save the MATLAB Workspace variables for future analysis % Use 'load' command to load the variables back into MATLAB. tEnd = datevec(now); variableFileName = datestr(tEnd); variableFileName = strrep(variableFileName, ':', ''); variableFileName = strrep(variableFileName, ' ', '_'); variableFileName = sprintf('CORA_198_Analysis_Variables_%s.mat', variableFileName); save(variableFileName); fprintf('\nCompleted probability analysis.\n\n'); fprintf('End Time: %s\n', datestr(tEnd));

24 March 2016 – E-44 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 111: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

tDiff = datenum(0,0,0,0,0,etime(tEnd,tStart)); fprintf('Execution Time: %s\n\n', datestr(tDiff, 'HH:MM:SS.FFF')); % Clean up but leave certain variables to support the Execute_All script. clearvars -except tAllStart exitStatus = true;

E.5 CORA_198_Deliverable_C_Create_Analyze_STK_Model % ================================================================================================================ % CORA_198_Deliverable_C_Create_Analyze_STK_Model % ================================================================================================================ % Copyright (C) Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2015-2016 % % Contract: W7714-083663/001/SV % Author: Kenzie MacNeil (CAE Inc.) % Version: 1.1 % Date: February 22, 2016 % % This script is designed to run in MATLAB R2015a and requires AGI STK 10.1.3, STK Pro and STK Connect. % This script will automatically create STK scenarios and import a set of STK ephemeris (*.e) and STK interval % constraint files (*.int) previously generated by the Generate_STK_Files MATLAB script. % The script will then calculate the ship access with the exact earth AIS sensor to determine the number of % transmitted messages over the course of an access interval with an AOR. The total number of transmissions % over the access time is then used to determine the probability of extracting an uncorrupted AIS class A % position report message according to the probabilistic model presented in % "The Performance of a Space-Based AIS System" by James K.E. Tunaley, London Research and Development % Corporation Technical Report, August 8th 2011. % This script will return whether or not it successfully completed its operations in the 'exitStatus' boolean. % The exit status will be true if all operations were completed successfully. % ================================================================================================================ fprintf('Executing Task 198''s parametric sensor model in STK...\n'); tStart = datevec(now); fprintf('Start Time: %s\n\n', datestr(tStart)); % Set instance-dependent configuration variables % ---------------------------------------------------------------------------------------------------------------- % Flag indicating whether or not to us to compute the probability of receiving an uncorrupted message when the % satellite has access to the JTFA area target. computeJtfaMsgs = true; % Flag indicating whether or not to us to compute the probability of receiving an uncorrupted message when the

24 March 2016 – E-45 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 112: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% satellite has access to the JTFN area target. computeJtfnMsgs = true; % Flag indicating whether or not to us to compute the probability of receiving an uncorrupted message when the % satellite has access to the JTFP area target. computeJtfpMsgs = true; % The probability of receiving an uncorrupted message at the input of the receiving system regardless of collisions. % The default value from "The Performance of a Space-Based AIS System" paper is 0.2683. gammaZero = 0.2683; % The sensor area overlap factor based on AIS sensor altitude and swath width. % The default value from "The Performance of a Space-Based AIS System" paper is 0.6744. s = 0.6744; % The probability that a single message will be uncorrupted by the simultaneous arrival of another singleton message. % The default value from "The Performance of a Space-Based AIS System" paper is 0.904. q = 0.904; % Subdirectory name where the new scenarios will be created in current user's STK folder. % There should be no spaces or special characters in this path name. stkScenarioSubDir = 'CORA_198_Analysis_Scenarios'; % The default scenario name for the STK scenarios used in the model's analysis. stkDefaultScenarioName = 'CORA_198_Analysis'; % Subdirectory in the STK scenario folder were the ephemeris and interval files are copied to. % There should be no spaces or special characters in this path name. stkShipDataSubDir = '\Ship_Data\'; % Start time of the STK scenario being analyzed. scenarioStartTime = '31 Aug 2015 00:00:00.000'; % End time of the STK scenario being analyzed. scenarioEndTime = '31 Aug 2015 23:59:59.999'; % The exact earth satellite creation option passed to the createNewCora198Scenario function. % - 'Import' = Adds the satellite based on an existing *.sa STK satellite file. % - 'Local' = Adds the satellite from the local, offline satellite database. % - 'TLE' = Adds the satellite based on a selected TLE file. % - 'Online' = Adds the satellite from the AGI servers. satImportOption = 'Import'; % The path to either the STK *.sa or TLE file when the 'Import' or 'TLE' option is selected. satImportPath = 'C:\Users\Kenzie\Documents\STK 10\exactview1_38709.sa'; % Boolean used to set whether the imported ship is visible or not in the STK scenario by default. areShipsVisible = false; % The maximum number of ship objects to be added into a single STK scenario before the script creates a new scenario. % It is recommend that this value not be higher than 5000. maxNumOfShipsPerScenario = 1000; % The number of ship objects which are added to a STK scenario before an interim save command is performed. % This value must be less than the maxNumOfShipsPerScenario value. % No interim save commands will be performed if this value is 0. numImportBeforeSave = 250; % Flag indicating whether or not to clear the access computation in STK once the results have been imported into MATLAB. clearSTKAccess = true;

24 March 2016 – E-46 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 113: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Matlab exception used to throw file access related errors. FileException = MException('MyComponent:FileError', 'File could not be accessed properly.'); % Check to see if the necessary folders exists. % ---------------------------------------------------------------------------------------------------------------- % Check to see if the path variable from the Generate_STK_Files script is still present in the workspace. % Otherwise have the user select the input folder. if (exist('outStkDataFolder', 'var') == 0) inShipFolder = uigetdir('.', 'Select STK Data Folder'); else inShipFolder = outStkDataFolder; clearvars outStkDataFolder; end % Check the STK ephermis and temporal contraint data folder exist. if ( exist(inShipFolder, 'dir') == 0 ) fprintf('The STK ship data folder "%s" is not available.\nExiting script.\n', inShipFolder); clearvars; exitStatus = false; return; end % Check that the import variable is valid. if (strcmpi(satImportOption, 'Import') ~= true && ... strcmpi(satImportOption, 'Local') ~= true && ... strcmpi(satImportOption, 'TLE') ~= true && ... strcmpi(satImportOption, 'Online') ~= true ) fprintf('Invalid exact view satellite import option selected.\nExiting script.\n'); clearvars; exitStatus = false; return; end % Check that the appropriate satellite or TLE file is present. if (strcmpi(satImportOption, 'Import') == true || strcmpi(satImportOption, 'TLE') == true) if ( exist(satImportPath, 'file') == 0 ) fprintf('The exact view satellite file "%s" is not available.\nExiting script.\n', satImportPath); clearvars; exitStatus = false; return; end end

24 March 2016 – E-47 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 114: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Connect to an existing STK session; % ---------------------------------------------------------------------------------------------------------------- % Establish the connection an existing instance of AGI STK 10. fprintf('Connecting to AGI STK 10...\n'); try uiApplication = actxGetRunningServer('STK10.Application'); if isempty(uiApplication) == true % Start STK. uiApplication = actxserver('STK10.Application'); end uiApplication.Visible = 1; % Get interface STK Object Model Root. root = uiApplication.Personality2; catch clearvars error('Could not connect to AGI STK 10 application.'); end % Check that there is no open STK scenario. stkScenario = root.CurrentScenario; if isempty(stkScenario) == false root.Save; root.CloseScenario; end % Ensure that the current STK scenario directory can be accessed. cmdResult = root.ExecuteCommand('GetDirectory / DefaultUser'); stkScenarioDir = cmdResult.Item(0); clearvars cmdResult; % Generate the relative datevec for the start time. startDateVec = datevec(scenarioStartTime); % Create the initial STK scenario. % ---------------------------------------------------------------------------------------------------------------- scenarioNum = 1; scenarioName = sprintf('%s_%d', stkDefaultScenarioName, scenarioNum); % Create subdirecotry in the STK scenario folder for the analysis scenarios. stkScenarioShipDataPath = [stkScenarioDir '\' stkScenarioSubDir '\' scenarioName stkShipDataSubDir]; [status] = mkdir(stkScenarioShipDataPath);

24 March 2016 – E-48 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 115: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

if status ~= 1 error('Could not create folder "%s".', stkScenarioShipDataPath); end clearvars status; % Create the CORA 198 baseline scenario. fprintf('Generating new scenario: %s\n', scenarioName); createNewCora198Scenario( root, ... scenarioName, ... [stkScenarioDir '\' stkScenarioSubDir '\' scenarioName '\' scenarioName '.sc'], ... scenarioStartTime, ... scenarioEndTime, ... satImportOption, ... satImportPath); stkScenario = root.CurrentScenario; % Get the satellite references. exactViewSat = stkScenario.Children.Item('exactview1_38709'); aisSensor = exactViewSat.Children.Item('exactview1_AIS'); % Get the AOR and exact earth AIS sensor access times. % ---------------------------------------------------------------------------------------------------------------- % Get the JTFA access times. if computeJtfaMsgs == true areaTarget = stkScenario.Children.Item('JTFA'); areaTargetAccess = aisSensor.GetAccessToObject(areaTarget); areaTargetAccess.ComputeAccess; accessTimes = areaTargetAccess.ComputedAccessIntervalTimes.ToArray(0, areaTargetAccess.ComputedAccessIntervalTimes.Count); jtfaAccessTimes = convertAccessStringCellToDateTime(accessTimes, scenarioStartTime); % Clean up the previous access calculations to save memory in STK. if clearSTKAccess == true areaTargetAccess.ClearAccess; end clearvars areaTarget areaTargetAccess accessTimes; end % Get the JTFN access times. if computeJtfnMsgs == true areaTarget = stkScenario.Children.Item('JTFN'); areaTargetAccess = aisSensor.GetAccessToObject(areaTarget); areaTargetAccess.ComputeAccess; accessTimes = areaTargetAccess.ComputedAccessIntervalTimes.ToArray(0, areaTargetAccess.ComputedAccessIntervalTimes.Count); jtfnAccessTimes = convertAccessStringCellToDateTime(accessTimes, scenarioStartTime);

24 March 2016 – E-49 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 116: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Clean up the previous access calculations to save memory in STK. if clearSTKAccess == true areaTargetAccess.ClearAccess; end clearvars areaTarget areaTargetAccess accessTimes; end % Get the JTFP access times. if computeJtfpMsgs == true areaTarget = stkScenario.Children.Item('JTFP'); areaTargetAccess = aisSensor.GetAccessToObject(areaTarget); areaTargetAccess.ComputeAccess; accessTimes = areaTargetAccess.ComputedAccessIntervalTimes.ToArray(0, areaTargetAccess.ComputedAccessIntervalTimes.Count); jtfpAccessTimes = convertAccessStringCellToDateTime(accessTimes, scenarioStartTime); % Clean up the previous access calculations to save memory in STK. if clearSTKAccess == true areaTargetAccess.ClearAccess; end clearvars areaTarget areaTargetAccess accessTimes; end % Get the set of ephermis files and compute the associated access times with the exact earth satellite. % ---------------------------------------------------------------------------------------------------------------- shipEphFileList = dir([inShipFolder '\*.e']); shipEphFileList = shipEphFileList(~[shipEphFileList.isdir]); %remove directories % Iterate through the ship ephermis files. for i = 1:numel(shipEphFileList) try % Get the ship name from the ephermis file name. shipName = strrep(shipEphFileList(i).name, '.e', ''); % Find the associated interval file. intFileData = dir([inShipFolder '\' shipName '.int']); % Stop importing the ship if any of the files cannot be found. if isempty(intFileData) == true throw(FileException); end % Copy the ephemeris file into the STK scenario directory.

24 March 2016 – E-50 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 117: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

[copyEphStatus,errEphMsg] = copyfile([inShipFolder '\' shipEphFileList(i).name], stkScenarioShipDataPath); [copyIntStatus,errIntMsg] = copyfile([inShipFolder '\' intFileData.name], stkScenarioShipDataPath); % Stop importing the ship if any of the file copies failed. if (copyEphStatus ~= 1 && copyIntStatus ~= 1) warning('Failed to copy the ephemeris file "%s" and interval file "%s" into the scenario folder. Copy errors:\n%s\n%s\n', ... shipEphFileList(i).name, intFileData.name, errEphMsg, errIntMsg); break; elseif copyEphStatus ~= 1 warning('Failed to copy the ephemeris file "%s" into the scenario folder.\nCopy error: %s\n', ... shipEphFileList(i).name, errEphMsg); break; elseif copyIntStatus ~= 1 warning('Failed to copy the interval file "%s" into the scenario folder.\nCopy error: %s\n', ... intFileData.name, errIntMsg); break; else % The ephemeris and interval files were successfully copied into the STK scenario folder. end % Delete the ship if it already exists in the scenario. if stkScenario.Children.Contains('eShip',shipName) == true shipObj = stkScenario.Children.Item(shipName); shipObj.Unload; end % Add the ship based on the ephemeris file. shipObj = stkScenario.Children.New('eShip', shipName); shipObj.SetRouteType('ePropagatorStkExternal'); shipObj.Route.Filename = [stkScenarioShipDataPath shipEphFileList(i).name]; shipObj.Route.Propagate; % Add temporal interval constraints based on the *.int file. intervalConstraints = shipObj.AccessConstraints.AddConstraint('eCstrIntervals'); intervalConstraints.Intervals.LoadIntervals([stkScenarioShipDataPath intFileData.name]); % Set default ship visual properties. shipObj.Graphics.Attributes.Color = 16776974; shipObj.Graphics.Attributes.IsVisible = areShipsVisible; % Compute the access between the satellite sensor and the new ship object. shipAccess = aisSensor.GetAccessToObject(shipObj); shipAccess.ComputeAccess;

24 March 2016 – E-51 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 118: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% If there are any access times between the satellite and ship then % update the total number of transmissions for the appropriate AOR. if (shipAccess.ComputedAccessIntervalTimes.Count > 0) % Get the full set of access times from STK. accessTimes = shipAccess.ComputedAccessIntervalTimes.ToArray(0, shipAccess.ComputedAccessIntervalTimes.Count); % Create book keeping matrices to determine if a ship as already reported during a particular AOR access interval. clearvars prevJtfaReportIndices prevJtfnReportIndices prevJtfpReportIndices; prevJtfaReportIndices = zeros( numel(jtfaAccessTimes(:, 1)), 1 ); prevJtfnReportIndices = zeros( numel(jtfnAccessTimes(:, 1)), 1 ); prevJtfpReportIndices = zeros( numel(jtfpAccessTimes(:, 1)), 1 ); % Iterate through the satellite/ship access times to determine % if the satellite is currently in contact with an AOR. for j = 1:numel(accessTimes(:, 1)) % Convert the start and end date times to the relative second value. accessStartTimeInSec = etime(datevec(accessTimes(j, 1)), startDateVec); accessEndTimeInSec = etime(datevec(accessTimes(j, 2)), startDateVec); % Compare the access time against the JTFA area target access times. if computeJtfaMsgs == true rowIndex = isTimeInAccessInterval(accessStartTimeInSec, accessEndTimeInSec, jtfaAccessTimes); % The access/detection time occured when the satellite sensor had access to JTFA area target. if rowIndex > 0 % Increase the message count by 1. jtfaAccessTimes{rowIndex, 5} = jtfaAccessTimes{rowIndex, 5} + 1; if prevJtfaReportIndices(rowIndex) == false jtfaAccessTimes{rowIndex, 6} = jtfaAccessTimes{rowIndex, 6} + 1; prevJtfaReportIndices(rowIndex) = true; end end end % Compare the access time against the JTFN area target access times. if computeJtfnMsgs == true rowIndex = isTimeInAccessInterval(accessStartTimeInSec, accessEndTimeInSec, jtfnAccessTimes); % The access/detection time occured when the satellite sensor had access to JTFN area target. if rowIndex > 0 % Increase the message count by 1. jtfnAccessTimes{rowIndex, 5} = jtfnAccessTimes{rowIndex, 5} + 1; if prevJtfnReportIndices(rowIndex) == false jtfnAccessTimes{rowIndex, 6} = jtfnAccessTimes{rowIndex, 6} + 1; prevJtfnReportIndices(rowIndex) = true;

24 March 2016 – E-52 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 119: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

end end end % Compare the access time against the JTFA area target access times. if computeJtfpMsgs == true rowIndex = isTimeInAccessInterval(accessStartTimeInSec, accessEndTimeInSec, jtfpAccessTimes); % The access/detection time occured when the satellite sensor had access to JTFA area target. if rowIndex > 0 % Increase the message count by 1. jtfpAccessTimes{rowIndex, 5} = jtfpAccessTimes{rowIndex, 5} + 1; if prevJtfpReportIndices(rowIndex) == false jtfpAccessTimes{rowIndex, 6} = jtfpAccessTimes{rowIndex, 6} + 1; prevJtfpReportIndices(rowIndex) = true; end end end end end % Clean up the previous access calculations to save memory in STK. if clearSTKAccess == true shipAccess.ClearAccess; end catch warning('Failed to properly process file: %s.\n', [inShipFolder '\' shipEphFileList(i).name]); end % Stop adding ships to this scenario and open a new scenario. if ( mod(i, maxNumOfShipsPerScenario) == 0 ) % Save and close the current scenario. root.Save; pause(15); root.CloseScenario; pause(30); % Wait for STK to reformat it's windows. fprintf('Maximum number of entities reached in scenario: %s\n\n', scenarioName); % Generate new scenario name. scenarioNum = scenarioNum + 1; scenarioName = sprintf('%s_%d', stkDefaultScenarioName, scenarioNum); % Create STK scenario subdirectory. stkScenarioShipDataPath = [stkScenarioDir '\' stkScenarioSubDir '\' scenarioName stkShipDataSubDir];

24 March 2016 – E-53 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 120: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

[status] = mkdir(stkScenarioShipDataPath); if status ~= 1 error('Could not create folder "%s".', stkScenarioShipDataPath); end % Create the STK scenario. fprintf('Generating new scenario: %s\n', scenarioName); createNewCora198Scenario( root, ... scenarioName, ... [stkScenarioDir '\' stkScenarioSubDir '\' scenarioName '\' scenarioName '.sc'], ... scenarioStartTime, ... scenarioEndTime, ... satImportOption, ... satImportPath); stkScenario = root.CurrentScenario; % Get the satellite references. exactViewSat = stkScenario.Children.Item('exactview1_38709'); aisSensor = exactViewSat.Children.Item('exactview1_AIS'); % Save the scenario if a certain number of ship additions is reached. elseif ( mod(i, numImportBeforeSave) == 0 && numImportBeforeSave > 0 ) root.Save; end % Clear the data from the previous ship object. clear shipName intFileData copyEphStatus errEphMsg copyIntStatus errIntMsg; clear shipObj intervalConstraints shipAccess; clear accessTimes accessStartTimeInSec accessEndTimeInSec rowIndex; end % Save and close the current scenario. root.Save; root.CloseScenario; fprintf('Completed importing ship data into STK scenarios.\n'); fprintf('Time: %s\n\n', datestr(now)); % Clean up STK connection. clearvars aisSensor areShipsVisible exactViewSat FileException i inShipFolder j root satImportOption satImportPath; clearvars scenarioEndTime scenarioName scenarioStartTime shipEphFileList startDateVec stkDefaultScenarioName stkScenario; clearvars stkScenarioDir stkScenarioShipDataPath stkScenarioSubDir stkShipDataSubDir; clearvars maxNumOfShipsPerScenario numImportBeforeSave clearSTKAccess; clearvars prevJtfaReportIndices prevJtfnReportIndices prevJtfpReportIndices; uiApplication.release; clearvars uiApplication;

24 March 2016 – E-54 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 121: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Calculate the probability of receiving an uncorrupted AIS message for the relative AORs. % ---------------------------------------------------------------------------------------------------------------- fprintf('Started probability analysis.\n'); % Get the JTFA probability of receiving uncorrupted message. if computeJtfaMsgs == true [jtfaProbArray, jtfaMinProb, jtfaMaxProb, jtfaAvgProb] = processAisMessageArray( 'JTFA', gammaZero, q, s, jtfaAccessTimes ); fprintf('Probabilities of extracting uncorrupted S-AIS message for JTFA:\n'); fprintf(' - Minimum Probability = %0.10f\n', jtfaMinProb); fprintf(' - Maximum Probability = %0.10f\n', jtfaMaxProb); fprintf(' - Average Probability = %0.10f\n\n', jtfaAvgProb); end % Get the JTFN probability of receiving uncorrupted message. if computeJtfnMsgs == true [jtfnProbArray, jtfnMinProb, jtfnMaxProb, jtfnAvgProb] = processAisMessageArray( 'JTFN', gammaZero, q, s, jtfnAccessTimes ); fprintf('Probabilities of extracting uncorrupted S-AIS message for JTFN:\n'); fprintf(' - Minimum Probability = %0.10f\n', jtfnMinProb); fprintf(' - Maximum Probability = %0.10f\n', jtfnMaxProb); fprintf(' - Average Probability = %0.10f\n\n', jtfnAvgProb); end % Get the JTFP probability of receiving uncorrupted message. if computeJtfpMsgs == true [jtfpProbArray, jtfpMinProb, jtfpMaxProb, jtfpAvgProb] = processAisMessageArray( 'JTFP', gammaZero, q, s, jtfpAccessTimes ); fprintf('Probabilities of extracting uncorrupted S-AIS message for JTFP:\n'); fprintf(' - Minimum Probability = %0.10f\n', jtfpMinProb); fprintf(' - Maximum Probability = %0.10f\n', jtfpMaxProb); fprintf(' - Average Probability = %0.10f\n\n', jtfpAvgProb); end clearvars computeJtfaMsgs computeJtfnMsgs computeJtfpMsgs; % Save the MATLAB Workspace variables for future analysis % Use 'load' command to load the variables back into MATLAB. tEnd = datevec(now); variableFileName = datestr(tEnd); variableFileName = strrep(variableFileName, ':', ''); variableFileName = strrep(variableFileName, ' ', '_'); variableFileName = sprintf('CORA_198_Analysis_Variables_%s.mat', variableFileName); save(variableFileName);

24 March 2016 – E-55 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 122: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

fprintf('\nCompleted probability analysis.\n\n'); fprintf('End Time: %s\n', datestr(tEnd)); tDiff = datenum(0,0,0,0,0,etime(tEnd,tStart)); fprintf('Execution Time: %s\n\n', datestr(tDiff, 'HH:MM:SS.FFF')); % Clean up but leave certain variables to support the Execute_All script. clearvars -except tAllStart exitStatus = true;

E.6 CORA_198_Deliverable_C_Execute_All % ================================================================================================================ % CORA_198_Deliverable_C_Execute_All % ================================================================================================================ % Copyright (C) Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2015-2016 % % Contract: W7714-083663/001/SV % Author: Kenzie MacNeil (CAE Inc.) % Version: 1.2 % Date: February 22, 2016 % % This script is designed to run in MATLAB R2015a and requires AGI STK 10.1.3, STK Pro and STK Connect. % This script will execute the following CORA_198 scripts: % 1 - Process_AIS_Data % 2 - Generate_STK_Files % 3 - Create_Analyze_STK_Model % In order to completely automate the CORA 198 model in MATLAB. % ================================================================================================================ fprintf('Executing the complete set of Task 198''s AIS message model analysis.\n'); fprintf('Please ensure that the correct paths and values have been set in the relative scripts...\n'); tAllStart = datevec(now); fprintf('Start Time: %s\n', datestr(tAllStart)); fprintf('----------------------------------------------------------------------\n\n'); run('CORA_198_Deliverable_C_Process_AIS_Data'); if( exist('exitStatus', 'var') == false || exitStatus == false ) error('Failed to properly process the raw AIS JSON data. Stopping execution of model analysis scripts.'); end

24 March 2016 – E-56 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 123: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

run('CORA_198_Deliverable_C_Generate_STK_Files'); if( exist('exitStatus', 'var') == false || exitStatus == false ) error('Failed to properly generate the necessary STK ephemeris and interval constraint files. Stopping execution of model analysis scripts.'); end run('CORA_198_Deliverable_C_Create_Analyze_STK_Model'); if( exist('exitStatus', 'var') == false || exitStatus == false ) error('Failed to properly analyze all of the message data in STK. Stopping execution of model analysis scripts.'); end fprintf('\n\n----------------------------------------------------------------------\n'); fprintf('Finished executing the model analysis scripts.\n'); tEnd = datevec(now); fprintf('End Time: %s\n', datestr(tEnd)); if exist('tAllStart', 'var') tDiff = datenum(0,0,0,0,0,etime(tEnd,tAllStart)); fprintf('Total Execution Time: %s\n\n', datestr(tDiff, 'HH:MM:SS.FFF')); else fprintf('Total Execution Time: Unknown. Missing start time value.\n\n'); end clearvars

E.7 CORA_198_Deliverable_C_Generate_STK_Files % ================================================================================================================ % CORA_198_Deliverable_C_Generate_STK_Files % ================================================================================================================ % Copyright (C) Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2015-2016 % % Contract: W7714-083663/001/SV % Author: Kenzie MacNeil (CAE Inc.) % Version: 1.1 % Date: February 22, 2016 % % This script is designed to run in MATLAB R2015a. % This script used the previously partitioned AIS data from the Process_AIS_Data script and converts it into a % STK ephermis file (*.e) and STK temporal interval constaint file (*.int) for each partitioned AIS ship file. % This script will return whether or not it successfully completed its operations in the 'exitStatus' boolean. % The exit status will be true if all operations were completed successfully. % ================================================================================================================

24 March 2016 – E-57 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 124: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

fprintf('Executing Task 198''s script to generate STK ephemeris and interval constraint files.\n'); tStart = datevec(now); fprintf('Start Time: %s\n\n', datestr(tStart)); % Set instance-dependent configuration variables % ---------------------------------------------------------------------------------------------------------------- % Folder name to be appended to the root path of the JSON data folder. The final folder will contain the STK files. outSubFolder = '\STK Ship Data'; % Flag indicating whether or not to delete the current contents of the output folder. deletePrevData = false; % The reference date/time which the STK ephemeris files are based on. % Recommend setting this value to the start time of the desired STK scenario. scenarioEpoch = '31 Aug 2015 00:00:00.000'; % The AIS transmission time in seconds which is used to determine the length of the interval constraint. % The end time is AIS report time and the start time is end time minus the transmissionTime value. transmissionTime = 0.027; % Flag indicating whether or not to use the isGeoInAOA function when evaluating a ship objects. useCheckAoa = true; % Flag indicating whether or not to use the isGeoInAOR function when evaluating a ship objects. % The isGeoInAOR will only be used when useCheckAoa is false since the AOR will always be within the AOA. useCheckAor = false; % String passed the isGeoInAOA or isGeoInAOR function to determine which AOA to check against. % Options: 'ALL', 'JTFA', 'JTFN' or 'JTFP'. checkArea = 'ALL'; % Flag passed to the isGeoInAOR function to determine whether or not to check for line segment intersections % when evaluating if a set of points are in an AOR checkAorIntersect = false; % Flag indicating that ships with only 1 entry should be assigned a second, identical entry in order to become a % stationary entity in STK (otherwise the entity only exists for a fraction of a second). createStationaryEntity = true; % Time in seconds to add to the single entry time when createStationaryEntity flag is enabled. addTimeInterval = -1; % Constants used when converting geodetic latitude/longitude to ECEF (Earth-Centered, Earth-Fixed) Cartesian coordinate system. % The altitude of ship object. Altitude at 0.0 m assumes sea-level. shipAltInMeters = 33.0; % WGS-84 ellipsoid equatorial radius in meters. Taken from https://en.wikipedia.org/wiki/Earth_ellipsoid on Dec 08 2015. wgs84Radius = 6378137; % WGS-84 first eccentricity. Taken from http://earth-info.nga.mil/GandG/publications/tr8350.2/changes.pdf on Dec 08 2015. wgs84FirstEccentricity = 8.1819190842622e-2; % Matlab exception used to throw file access related errors. FileException = MException('MyComponent:FileError', 'File could not be accessed properly.');

24 March 2016 – E-58 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 125: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Check to see if the necessary folders exists. % ---------------------------------------------------------------------------------------------------------------- % Check to see if the path variable from the Process_AIS_Data script is still present in the workspace. % Otherwise have the user select the input folder. if (exist('outAisPartitionFolder', 'var') == 0) inParitionedAisShipDataFolder = uigetdir('.', 'Select AIS Partition Data Folder'); else inParitionedAisShipDataFolder = outAisPartitionFolder; clearvars outAisPartitionFolder; end % Remove any extra '\' characters. while ( isempty(strfind(inParitionedAisShipDataFolder, '\\')) == 0 ) inParitionedAisShipDataFolder = strrep(inParitionedAisShipDataFolder, '\\', '\'); end % Check the partitioned S-AIS JSON input folder. if exist(inParitionedAisShipDataFolder, 'dir') fprintf('Partitioned AIS data "%s" selected.\n', inParitionedAisShipDataFolder); else % Exit the script if no AIS folder is present. fprintf('The partitioned AIS data folder "%s" is not available.\nExiting script.\n', inParitionedAisShipDataFolder); clearvars; exitStatus = false; return; end % Output Path to the directory where the generated ephemeris and interval constraint files will be stored. inFolderSplit = regexp(inParitionedAisShipDataFolder,'\','split'); outStkDataFolder = inFolderSplit{1}; for i = 2:(numel(inFolderSplit) - 1) outStkDataFolder = strcat(outStkDataFolder, '\'); outStkDataFolder = strcat(outStkDataFolder, inFolderSplit{i}); end outStkDataFolder = [outStkDataFolder outSubFolder]; clearvars inFolderSplit outSubFolder; % Create an empty output folder to store the STK files. if (deletePrevData && exist(outStkDataFolder, 'dir')) fprintf('Deleting the exsisting "%s" folder...\n', outStkDataFolder);

24 March 2016 – E-59 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 126: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

[status] = rmdir(outStkDataFolder,'s'); if status ~= 1 warning('Could not delete the "%s" folder.\n', outStkDataFolder); end end if (exist(outStkDataFolder, 'dir') == false) [status] = mkdir(outStkDataFolder); if status ~= 1 error('Could not create folder "%s".', outStkDataFolder); else fprintf('Created new "%s" folder.\n', outStkDataFolder); end end % Create ephemeris and interval constrain files. % ---------------------------------------------------------------------------------------------------------------- % Get the list of partitioned files to be converted into STK files. rawAisFileList = dir(inParitionedAisShipDataFolder); rawAisFileList = rawAisFileList(~[rawAisFileList.isdir]); %remove directories rawAisFileId = -1; fprintf('Generating new STK ephemeris and interval constraint files for the %d partitioned AIS data files...\n', numel(rawAisFileList)); fprintf('This operation may take several hours to complete.\n'); epochDateVec = datevec(scenarioEpoch); lineNum = 0; for i = 1:numel(rawAisFileList) try % Open the associated entity AIS data file. rawAisFileId = fopen([inParitionedAisShipDataFolder '\' rawAisFileList(i).name], 'r'); if rawAisFileId == -1 warning('Could not open the "%s" file.\n', [inParitionedAisShipDataFolder '\' rawAisFileList(i).name]); throw(FileException); end % Get the contents of the file and determine the number of entries in the AIS file. inCell = textscan(rawAisFileId, '%s %f %f %*[^\n]', 'Delimiter','\t'); clearvars inCellDateTime inCellLat inCellLong; inCellDateTime = inCell{1};

24 March 2016 – E-60 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 127: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

inCellLat = inCell{2}; inCellLong = inCell{3}; clearvars inCell; % Close the AIS entity dump file. status = fclose(rawAisFileId); if status ~= 0 ; warning('Could not close interface to "%s" file.\n', [inParitionedAisShipDataFolder '\' rawAisFileList(i).name]); throw(FileException); end % Get the number of entries in the AIS file. numAisRows = size(inCellDateTime, 1); % Create the associated ephermis and interval cell arrays to store the converted data before writing to the file. % Ephermis cell columns: % 1 = Epoch date/time relative to the start time. % 2 = ECEF X value. % 3 = ECEF Y value. % 4 = ECEF Z value. outEphCell = cell(numAisRows, 4); % Interval constraint cell columns: % 1 = Epoch date/time relative to the start time. % 2 = Interval start date/time string. % 3 = Interval end date/time string. outIntCell = cell(numAisRows, 3); % Boolean indicated whether or not the ship can be found in the AOR or AOA depending on evaluation flags. inArea = false; clearvars prevLat prevLong; % Iterate through and break down the AIS data into appropriate ephemeris and interval entries. for j = 1:numAisRows % Check to see if the ship exists within a specific area. if (inArea == false) % Check to see if the ship is within the AOA. if (useCheckAoa == true) inArea = isGeoInAOA(checkArea, inCellLat(j,1), inCellLong(j,1)); % Check to see if the ship is within or crosses the AOR. elseif (useCheckAor == true) % Use the lat / long values to determine if the point exists in the AOR. if ( exist('prevLat', 'var') ~= 0 && exist('prevLong', 'var') ~= 0 ) inArea = isGeoInAOR(checkArea, inCellLat(j,1), inCellLong(j,1), prevLat, prevLong, checkAorIntersect);

24 March 2016 – E-61 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 128: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

else inArea = isGeoInAOR(checkArea, inCellLat(j,1), inCellLong(j,1)); prevLat = inCellLat(j,1); prevLong = inCellLong(j,1); end % No area based evaluation was selected so ignore checks. else inArea = true; end end % Convert the AIS data into ephemeris related values. % --------------------------------------------------------------------------- % Determine the date/time relative to the epoch date and overwrite the value. outEphCell{j,1} = etime(datevec(inCellDateTime{j,1}), epochDateVec); % Perform intermediate calculation (prime vertical radius of curvature) latInRad = inCellLat(j,1) * (pi/180); longInRad = inCellLong(j,1) * (pi/180); % Convert Geodetic coordinates to ECEF coordinates. % Taken from https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates on Dec 08 2015. N = wgs84Radius / sqrt(1 - wgs84FirstEccentricity^2 * sin(latInRad)^2); % Convert the latitude and longitude form degrees to earth-centered, earth-fixed(ECEF) cartesian values. outEphCell{j,2} = (N + shipAltInMeters) * cos(latInRad) * cos(longInRad); outEphCell{j,3} = (N + shipAltInMeters) * cos(latInRad) * sin(longInRad); outEphCell{j,4} = ((1 - wgs84FirstEccentricity^2) * N + shipAltInMeters) * sin(latInRad); % Convert the AIS data into interval containt related values. % --------------------------------------------------------------------------- % Add time to the temporal interval constraint cell. outIntCell{j,1} = etime(datevec(inCellDateTime{j,1}), epochDateVec); % Add transmission start date time. transmissionStartTime = datevec(inCellDateTime{j,1}); transmissionStartTime(6) = transmissionStartTime(6) - transmissionTime; outIntCell{j,2} = datestr(transmissionStartTime, 'dd mmm yyyy HH:MM:SS.FFF'); % Add transmission end date time. outIntCell{j,3} = datestr(datevec(inCellDateTime{j,1}), 'dd mmm yyyy HH:MM:SS.FFF');

24 March 2016 – E-62 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 129: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

end % The appropriate ephermis and interval data has been created. % However, skip the creation of the files if the ship is not within the specified area. if (inArea == false) clearvars inCell outCell continue; end % Add second entry to create a stationary ephemeris file. if (numAisRows == 1 && createStationaryEntity == true) outEphCell{2,1} = outEphCell{1,1} + addTimeInterval; outEphCell{2,2} = outEphCell{1,2}; outEphCell{2,3} = outEphCell{1,3}; outEphCell{2,4} = outEphCell{1,4}; end % Sort the data in the cell arrays accorinding to its date/time. outEphCell = sortrows(outEphCell, 1); numEphEntries = size(outEphCell,1); outIntCell = sortrows(outIntCell, 1); numIntEntries = size(outIntCell,1); % Create the new ephermis file. ephEntryName = strrep(rawAisFileList(i).name, '.txt', '.e'); ephFileId = fopen([outStkDataFolder '\' ephEntryName], 'w+'); if ephFileId == -1 warning('Could not create/open the "%s" file.\n', [outStkDataFolder '\' ephEntryName]); throw(FileException); end % Create the new interval file. intEntryName = strrep(rawAisFileList(i).name, '.txt', '.int'); intFileId = fopen([outStkDataFolder '\' intEntryName], 'w+'); if intFileId == -1 warning('Could not create/open the "%s" file.\n', [outStkDataFolder '\' intEntryName]); throw(FileException); end % Print the ephemeris file. % --------------------------------------------------------------------------- fprintf(ephFileId, 'stk.v.10.0\r\n\r\n');

24 March 2016 – E-63 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 130: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

fprintf(ephFileId, '# WrittenBy MATLAB Generate_STK_Files script on %s\r\n\r\n', datestr(now)); fprintf(ephFileId, 'BEGIN Ephemeris\r\n\r\n'); fprintf(ephFileId, 'NumberOfEphemerisPoints %d\r\n\r\n', numEphEntries); fprintf(ephFileId, 'ScenarioEpoch %s\r\n\r\n', scenarioEpoch); fprintf(ephFileId, 'CentralBody Earth\r\n\r\n'); fprintf(ephFileId, 'CoordinateSystem Fixed\r\n\r\n'); fprintf(ephFileId, 'EphemerisTimePos\r\n\r\n'); % Print the sorted EphemerisTimePos points. for j = 1:numEphEntries fprintf(ephFileId, '%.14e %.14e %.14e %.14e\r\n', ... outEphCell{j,1}, outEphCell{j,2}, outEphCell{j,3}, outEphCell{j,4}); end fprintf(ephFileId, '\r\nEND Ephemeris\r\n\r\n'); % Close the ephemeris file. status = fclose(ephFileId); if status ~= 0 ; warning('Could not close interface to %s.\n', ephEntryName); throw(FileException); end % Print the interval constraint file. % --------------------------------------------------------------------------- fprintf(intFileId, 'stk.v.10.0\r\n\r\n'); fprintf(intFileId, '# WrittenBy MATLAB Generate_STK_Files script on %s\r\n\r\n', datestr(now)); fprintf(intFileId, 'BEGIN IntervalList\r\n\r\n'); fprintf(intFileId, 'DateUnitAbrv UTCG\r\n\r\n'); fprintf(intFileId, 'BEGIN Intervals\r\n\r\n'); % Print the sorted interval times. for j = 1:numIntEntries fprintf(intFileId, ' "%s" "%s"\r\n', ... outIntCell{j,2}, outIntCell{j,3}); end fprintf(intFileId, '\r\nEND Intervals\r\n'); fprintf(intFileId, '\r\nEND IntervalList\r\n\r\n'); % Close the ephemeris file. status = fclose(intFileId); if status ~= 0 warning('Could not close interface to %s.\n', intEntryName); throw(FileException); end

24 March 2016 – E-64 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 131: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

catch warning('Could not process AIS file "%s" properly:\n', [inParitionedAisShipDataFolder '\' rawAisFileList(i).name]); clearvars inCell inCellDateTime inCellLat inCellLong; % Try and clean up the open files if they exist. Ignore any errors. try fclose(rawAisFileId); catch % Do nothing. end try fclose(ephFileId); catch % Do nothing. end try fclose(intFileId); catch % Do nothing. end end % Remove previous position data from memory. clearvars inCell outCell end fprintf('Completed generating STK ephemeris and interval constraint files from partitioned AIS data files.\n'); tEnd = datevec(now); fprintf('End Time: %s\n', datestr(tEnd)); tDiff = datenum(0,0,0,0,0,etime(tEnd,tStart)); fprintf('Execution Time: %s\n\n', datestr(tDiff, 'HH:MM:SS.FFF')); % Clean up. clearvars -except tAllStart outStkDataFolder exitStatus = true;

24 March 2016 – E-65 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 132: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

E.8 CORA_198_Deliverable_C_Process_AIS_Data % ================================================================================================================ % CORA_198_Deliverable_C_Process_AIS_Data % ================================================================================================================ % Copyright (C) Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2015-2016 % % Contract: W7714-083663/001/SV % Author: Kenzie MacNeil (CAE Inc.) % Version: 1.1 % Date: February 22, 2016 % % This script is designed to run in MATLAB R2015a. % This script partitions the data in an S-AIS file into separate files; one for each ship identifier in the AIS file. % The separate ship files are used by other scripts to sort the data and generate STK data files. % This script will return whether or not it successfully completed its operations in the 'exitStatus' boolean. % The exit status will be true if all operations were completed successfully. % ================================================================================================================ fprintf('Executing Task 198''s script to partition and organize JSON S-AIS data file.\n'); tStart = datevec(now); fprintf('Start Time: %s\n\n', datestr(tStart)); % Set instance-dependent configuration variables % ---------------------------------------------------------------------------------------------------------------- % Folder name to be appended to the path of the JSON data file. The final folder will contain the partitioned AIS data files. outSubFolder = '\Partitioned AIS Ship Data'; % Flag indicating whether or not to delete the current contents of the output folder. deletePrevData = false; % The number of header lines in the AIS data file. numHeaderLines = 1; % Flag indicating whether or not to only include AIS Position Class A Reports in the final partitioned data. onlyPositionReportClassA = true; % Column in the AIS file which contains the ship ID number. jsonAisIdCol = 2; % Column in the AIS file which contains the ship name. Row entries can be blank. jsonAisNameCol = 3; % Column in the AIS file which contains the ship's latitude at the report time. jsonAisLatCol = 14; % Column in the AIS file which contains the ship's longitude at the report time. jsonAisLongCol = 15; % Column in the AIS file which contains the report time of the position report. jsonAisReportTimeCol = 17;

24 March 2016 – E-66 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 133: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Matlab exception used to throw file access related errors. FileException = MException('MyComponent:FileError', 'File could not be accessed properly.'); % Select the desired S-AIS file to be partitioned into separate files. % ---------------------------------------------------------------------------------------------------------------- % Get the raw S-AIS JSON data file. fprintf('Select S-AIS data file to convert into STK data...\n'); [inFileName, inFilePath, inFilterIndex] = uigetfile( ... {'*.txt','Text Files (*.txt)'; ...' '*.*', 'All Files (*.*)'}, ... 'Select S-AIS file', 'MultiSelect', 'off'); % Check the raw S-AIS JSON data file. if inFilterIndex ~= 0 fprintf('File "%s" selected.\n\n', [inFilePath inFileName]); % Open and ensure that the AIS data file can be read. inRawAisFile = fopen([inFilePath inFileName], 'r'); if inRawAisFile == -1 error('Could not open the "%s" file.\n', [inFilePath inFileName]); end else % Exit the script if no AIS file is selected. fprintf('No S-AIS file selected. Exiting script.\n'); clearvars; exitStatus = false; return; end % Create an empty output folder to store the seperate entity values. outAisPartitionFolder = [inFilePath outSubFolder]; if (deletePrevData && exist(outAisPartitionFolder, 'dir')) fprintf('Deleting the exsisting "%s" folder...\n', outAisPartitionFolder); [status] = rmdir(outAisPartitionFolder,'s'); if status ~= 1 warning('Could not delete the "%s" folder.\n', outAisPartitionFolder); end end [status] = mkdir(outAisPartitionFolder); if status ~= 1 error('Could not create folder "%s".', outAisPartitionFolder); else fprintf('Created new "%s" folder.\n', outAisPartitionFolder);

24 March 2016 – E-67 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 134: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

end % Begin partitioning the AIS data file into separate files for each ship identifier. % ------------------------------------------------------------------------------- fprintf('\nPartitioning S-AIS file "%s" into separate data files...\n', [inFilePath inFileName]); fprintf('This operation may take several hours to complete.\n'); lineNum = 0; numOtherReports = 0; % Ignore any predefined hearder entries rows from the analysis. for i = 1:numHeaderLines inLine = fgets(inRawAisFile); % Exit the loop if the file is empty. if ischar(inLine) == false break; end lineNum = lineNum + 1; end % Parse through the AIS data line by line while the file is not EOF, and % dump the relative AIS data for each entry into the respective ship file. inLine = fgets(inRawAisFile); while ( ischar(inLine) ) try % Split the AIS entry into the different columns so that the relevant data can be extracted. modLine = regexprep(inLine, '\t\t', '\t.\t'); inCell = strsplit(modLine, '\t'); % Generate the appropriate ship name from the AIS line entry. % Remove any unwanted charcters from the entity name. This is necessary for both Windows and later for STK. identity_id = inCell{1,jsonAisIdCol}; identity_name = inCell{1,jsonAisNameCol}; identity_name = strrep(identity_name, '"', ''); identity_name = strtrim(identity_name); if (identity_name == '.') identity_name = ''; end if 0 == isempty(identity_name) nameCharArr = isstrprop(identity_name, 'alphanum'); for i = 1:length(nameCharArr) if nameCharArr(1, i) == 0 identity_name(i) = '_';

24 March 2016 – E-68 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 135: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

end end shipId = [identity_id '_' identity_name]; else shipId = identity_id; end % Determine if the message type is a Position A report. lastEntryNum = size(inCell); messageTypeStr = inCell{1, (lastEntryNum(1,2) - 1)}; messageType = str2double(messageTypeStr); % JSON format position A reports are 18, 19 or 20. % JSON format position B reports are 35 or 36. if (messageType ~= 18 && messageType ~= 19 && messageType ~= 20 && onlyPositionReportClassA) numOtherReports = numOtherReports + 1; % Skip this line and get the next line from the AIS data. lineNum = lineNum + 1; inLine = fgets(inRawAisFile); continue; end % Open the associated entity temp file. outTempId = fopen([outAisPartitionFolder '\' shipId '.txt'], 'a+'); if outTempId == -1 warning('Could not open the "%s" file.\n', [outAisPartitionFolder '\' shipId '.txt']); throw(FileException); end % Add the relative position data into the file. fprintf(outTempId, [... inCell{1,jsonAisReportTimeCol} '\t' ... % report_date_time inCell{1,jsonAisLatCol} '\t' ... % lat inCell{1,jsonAisLongCol} '\r\n'] ); % long % Close the entity dump file. status = fclose(outTempId); if status ~= 0 ; warning('Could not close interface to "%s" file.\n', [outAisPartitionFolder '\' shipId '.txt']); throw(FileException); end

24 March 2016 – E-69 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 136: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

catch warning('Could not process line number %d properly:\n%s\n', lineNum, inLine); % Try and clean up the open files if they exist. Ignore any errors. try fclose(outTempId); catch % Do nothing. end end % Get the next line from the AIS data. lineNum = lineNum + 1; inLine = fgets(inRawAisFile); end % Print the resulting stats of the script. if (onlyPositionReportClassA == true) fprintf('Finished processing the %d raw S-AIS JSON Position Report Class A entries.\n', lineNum - numHeaderLines - numOtherReports); fprintf('There were %d other non-class A reports which were not processed.\n', numOtherReports); else fprintf('Finished processing the %d raw S-AIS JSON entries.\n', lineNum - numHeaderLines); end tEnd = datevec(now); fprintf('End Time: %s\n', datestr(tEnd)); tDiff = datenum(0,0,0,0,0,etime(tEnd,tStart)); fprintf('Execution Time: %s\n\n', datestr(tDiff, 'HH:MM:SS.FFF')); % Clean up but leave certain variables to support the Execute_All script. clearvars -except tAllStart outAisPartitionFolder exitStatus = true;

24 March 2016 – E-70 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 137: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

APPENDIX F MATLAB FUNCTIONS

This appendix contains all the source code for the MATLAB functions delivered as part of this task.

F.1 convertAccessStringCellToDateTime function outputCell = convertAccessStringCellToDateTime( accessTimes, scenarioStartTime ) % convertAccessStringCellToDateTime Converts the STK interval access times from 2 column string cell array to a 6 column cell array with additional eTime values. % % Syntax: [outputCell] = convertAccessStringCellToDateTime( accessTimes, scenarioStartTime ) % % Inputs: % accessTimes - STK interval access times from 2 column string cell array you wish to convert (required). % scenarioStartTime - STK scenario start time string (required). % % Outputs: % outputCell - New 6 column cell array with additional access eTime values and columns to keep track of number of % unique ships and number of transmissions in the access time. % % Notes: % This function is designed to run in MATLAB R2015a and take the access time cell array created by % AGI STK 10.1.3, STK Pro and STK Connect ComputedAccessIntervalTimes.ToArray() command. % % Copyright (C) Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2015-2016 % % Contract: W7714-083663/001/SV % Author: Kenzie MacNeil (CAE Inc.) % Version: 1.0 % Date: February 02, 2016 % ================================================================================================================ % Validate input parameters. % --------------------------------------------------------------------------------------------- inParser = inputParser; inParser.addRequired('accessTimes', @iscell); inParser.addRequired('scenarioStartTime', @ischar); inParser.parse(accessTimes, scenarioStartTime); % Generate the relative datevec for the start time. startDateVec = datevec(scenarioStartTime);

24 March 2016 – F-1 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 138: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Get the number of entries in the access cell array. numAccessTimes = size(accessTimes); % Create the empty output cell array. outputCell = cell(numAccessTimes(1), 6); % Iterate through the access times. for i = 1:(numAccessTimes(1)) % Add the string values to the new cell array. outputCell{i, 1} = accessTimes(i, 1); outputCell{i, 2} = accessTimes(i, 2); % Convert the start and end times from string to second values % relative to the scenario start time. outputCell{i, 3} = etime(datevec(accessTimes(i, 1)), startDateVec); outputCell{i, 4} = etime(datevec(accessTimes(i, 2)), startDateVec); % Number of transmissions made during the access interval. outputCell{i, 5} = 0; % Number of unique ship objects making transmissions within the access interval. outputCell{i, 6} = 0; end end % End of the function

F.2 createNewCora198Scenario function createNewCora198Scenario( root, scenarioName, stkScenarioPath, scenarioStartTime, scenarioEndTime, satImportOption, varargin ) % createNewCora198Scenario Creates a new STK 10 scenario containing the necessary area target, satellite and sensor objects for CORA Task 198. % % Syntax: createNewCora198Scenario(root, scenarioName, stkScenarioPath, scenarioStartTime, scenarioEndTime, satImportOption, [satImportPath]) % % Inputs: % root - AGI STK 10 object root interface (required). % scenarioName - String indicating the scenario name of the new scenario. % This string cannot include spaces or special characters. % stkScenarioPath - The *.sc file path name for the STK new scenario. % scenarioStartTime - String containing the start date/time of the scenario. % scenarioEndTime - String containing the end date/time of the scenario. % satImportOption - The satellite import option for the exact earth satellite object. This can either be

24 March 2016 – F-2 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 139: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% "Import" = Adds the satellite based on an existing *.sa STK satellite file. % "Local" = Adds the satellite from the local, offline satellite database. % "TLE" = Adds the satellite based on a selected TLE file. % "Online" = Adds the satellite from the AGI servers. % satImportPath - Path of either the *.sa or TLE file when Import or TLE is selected. % % Outputs: % None % % Notes: % This function is designed to run in MATLAB R2015a and requires AGI STK 10.1.3, STK Pro and STK Connect. % % Copyright (C) Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2015-2016 % % Contract: W7714-083663/001/SV % Author: Kenzie MacNeil (CAE Inc.) % Version: 1.0 % Date: February 02, 2016 % ================================================================================================================ % Validate input parameters. % --------------------------------------------------------------------------------------------- inParser = inputParser; inParser.addRequired('root', @isinterface); inParser.addRequired('scenarioName', @ischar); inParser.addRequired('stkScenarioPath', @ischar); inParser.addRequired('scenarioStartTime', @ischar); inParser.addRequired('scenarioEndTime', @ischar); inParser.addRequired('satImportOption', @ischar); inParser.addOptional('satImportPath', '', @ischar); inParser.parse(root, scenarioName, stkScenarioPath, scenarioStartTime, scenarioEndTime, satImportOption, varargin{:}); % Get the optional parameters if they exist. if ( isempty(varargin) == false ) satImportPath = varargin{1}; end % Check to see if a proper valid satellite data has been passed in. if ( strcmpi(satImportOption, 'Import') == true ) % Check to see if the satellite file exists. if ( exist(satImportPath, 'file') == false ) error('Invalid input: %s. Satellite file does not exist.', satImportPath); end

24 March 2016 – F-3 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 140: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

elseif ( strcmpi(satImportOption, 'Local') == true ) % No other check required. elseif ( strcmpi(satImportOption, 'TLE') == true ) % Check to see if the TLE file exists. if ( exist(satImportPath, 'file') == false ) error('Invalid input: %s. Satellite TLE file does not exist.', satImportPath); end elseif ( strcmpi(satImportOption, 'Online') == true ) % Check to see if the machine has an internet connection. url = java.net.URL('http://tycho.usno.navy.mil/cgi-bin/timer.pl'); try link = openStream(url); parse = java.io.InputStreamReader(link); snip = java.io.BufferedReader(parse); if ~isempty(snip) isOnline = true; else isOnline = false; end catch isOnline = false; end clearvars url link parse snip; % Reset the propagator defaults. if isOnline == true root.ExecuteCommand('SetPropagatorDefaults / SGP4 UpdateMode OnlineAGI'); else error('Cannot connect to the internet to use the AGI STK online databases.'); end else error('Invalid input: %s. Satellite import option not recognized.', satImportOption); end % Save and close any open STK scenario. % --------------------------------------------------------------------------------------------- stkScenario = root.CurrentScenario;

24 March 2016 – F-4 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 141: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

if isempty(stkScenario) == false root.Save; root.CloseScenario; end % Create the new scenario. % --------------------------------------------------------------------------------------------- root.NewScenario(scenarioName); % Set units to UTCG before setting scenario time period and animation period. root.UnitPreferences.Item('DateFormat').SetCurrentUnit('UTCG'); stkScenario = root.CurrentScenario; % Set scenario time period and animation period stkScenario.SetTimePeriod(scenarioStartTime, scenarioEndTime); %stkScenario.Epoch = '31 Aug 2015 00:00:00.000'; root.ExecuteCommand('Animate * Reset'); % Generates a new satellite object with the properties of the exactEarth satellite (with sensor) as defined in CORA Task 192 (D2). % --------------------------------------------------------------------------------------------- if ( strcmpi(satImportOption, 'Import') == true ) % Import the exactView-1 satellite from a *.sa file. exactViewSat = stkScenario.Children.ImportObject(satImportPath); exactViewSat.InstanceName = 'exactview1_38709'; exactViewSat.Graphics.Attributes.Color = 65535; elseif ( strcmpi(satImportOption, 'Local') == true ) % Import the exactView-1 satellite from a the local satellite database. root.ExecuteCommand('ImportFromDB * Satellite DefaultSatDB AutoUpdate On Propagate On TimePeriod UseScenarioInterval Rename exactview1_38709 SSCNumber 38709'); exactViewSat = stkScenario.Children.Item('exactview1_38709'); exactViewSat.Graphics.Attributes.Color = 65535; elseif ( strcmpi(satImportOption, 'TLE') == true ) % Import the exactView-1 satellite from a TLE file. root.ExecuteCommand(['ImportTLEFile * "' satImportPath '" SSCNumber 38709 AutoPropagate On']); exactViewSat = stkScenario.Children.Item('tle-38709'); exactViewSat.InstanceName = 'exactview1_38709'; exactViewSat.Graphics.Attributes.Color = 65535; elseif ( strcmpi(satImportOption, 'Online') == true ) % Import the exactView-1 satellite from the AGIServers.

24 March 2016 – F-5 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 142: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

root.ExecuteCommand('ImportFromDB * Satellite AGIServer AutoUpdate On Propagate On TimePeriod UseScenarioInterval Rename exactview1_38709 SSCNumber 38709'); exactViewSat = stkScenario.Children.Item('exactview1_38709'); exactViewSat.Graphics.Attributes.Color = 65535; end % Delete the any existing sensors which might have been partially imported. if exactViewSat.Children.Contains('eSensor','exactview1_AIS') sensorObj = exactViewSat.Children.Item('exactview1_AIS'); sensorObj.Unload; end % Add the AIS sensor the the exactView-1 satellite with the appropriate properties. exactViewSensor = exactViewSat.Children.New('eSensor','exactview1_AIS'); exactViewSensor.CommonTasks.SetPatternSimpleConic(90.0, 4.0); exactViewSensor.CommonTasks.SetPointingFixedAzEl(0.0, 90, 'eAzElAboutBoresightRotate'); exactViewSensor.Graphics.Color = 65535; exactViewSensor.VO.ProjectionType = 'eProjectionEarthIntersections'; % Generates the area targets. % --------------------------------------------------------------------------------------------- try % Create AOR_MIDDLE_NORTH Area Target areaTarget = stkScenario.Children.New('eAreaTarget','AOR_MIDDLE_NORTH'); areaTarget.AreaTypeData.RemoveAll; boundary = {51.35, -138.04; 50.74, -137.26; 50.74, -137.21; 50.45, -136.8445; 49.62, -135.82; 48.48, -134.5; 48.49, -140.25; 51.89, -144.5; 55, -144.5; 55, -144.3; 55, -139.41; 52.43, -139.41}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'AOR_MN'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(52.1189, -142.467, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; % Create AOR_MIDDLE_SOUTH Area Target areaTarget = stkScenario.Children.New('eAreaTarget','AOR_MIDDLE_SOUTH');

24 March 2016 – F-6 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 143: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

areaTarget.AreaTypeData.RemoveAll; boundary = {46, -128; 48.03, -125; 47.21, -124.48; 45.45, -124.12; 44.82, -124.26; 42.52, -127.72; 41.58, -128.98; 48.3, -140; 48.49, -140.25; 48.48, -134.5; 46, -130}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'AOR_MS'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(46.8631, -135.522, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; % Create AOR_OUTER_NORTH Area Target areaTarget = stkScenario.Children.New('eAreaTarget','AOR_OUTER_NORTH'); areaTarget.AreaTypeData.RemoveAll; boundary = {55, -155; 55, -144.5; 51.89, -144.5; 48.49, -140.25; 48.3, -155}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'AOR_ON'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(51.7435, -150.585, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; % Create AOR_OUTER_SOUTH Area Target areaTarget = stkScenario.Children.New('eAreaTarget','AOR_OUTER_SOUTH'); areaTarget.AreaTypeData.RemoveAll; boundary = {48.3, -155; 48.49, -140.25; 48.3, -140; 41.58, -128.98; 35, -138}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'AOR_OS'; areaTarget.AutoCentroid = true; areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; % Create CENTRAL_COAST Area Target areaTarget = stkScenario.Children.New('eAreaTarget','CENTRAL_COAST'); areaTarget.AreaTypeData.RemoveAll;

24 March 2016 – F-7 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 144: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

boundary = {51.45, -124.91; 50.39, -125.9; 50.23, -127.74; 49.38, -128.85; 50.45, -130.765; 50.72, -131.27; 51.63, -131.27; 51.63, -130.49; 51.78, -130.01; 52.27, -130.01; 52.27, -128.88; 52.37, -129; 52.38, -128.75; 52.49, -128.76; 52.65, -128.54; 52.88, -128.51; 53.16, -127.77; 53.34, -127.56}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'CC'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(51.0865, -128.248, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; % Create GULF_OF_ALASKA_EAST Area Target areaTarget = stkScenario.Children.New('eAreaTarget','GULF_OF_ALASKA_EAST'); areaTarget.AreaTypeData.RemoveAll; boundary = {55, -135.08; 55, -139.41; 55, -144.3; 59.3, -144.3; 59.3, -141; 59, -139}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'GOAE'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(56.8586, -141.059, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; % Create GULF_OF_ALASKA_WEST Area Target areaTarget = stkScenario.Children.New('eAreaTarget','GULF_OF_ALASKA_WEST'); areaTarget.AreaTypeData.RemoveAll; boundary = {59.3, -144.3; 55, -144.3; 55, -144.5; 55, -155; 56.1, -155; 56.15, -153.5; 57.3, -151.3; 58.5, -151; 59.3, -149; 59.3, -146.5; 59.1, -146.5; 59.1, -145.5; 59.3, -145.5}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'GOAW'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(56.624, -148.614, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; % Create HAIDA_GWAI Area Target areaTarget = stkScenario.Children.New('eAreaTarget','HAIDA_GWAI');

24 March 2016 – F-8 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 145: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

areaTarget.AreaTypeData.RemoveAll; boundary = {53.35, -131.21; 52.27, -130.12; 52.27, -130.01; 51.78, -130.01; 51.63, -130.49; 51.63, -131.27; 52.67, -132.97; 53.26, -133.53; 54.01, -134.03; 54.3, -134.02; 54.68, -132.72; 54.72, -131.3; 54.46, -131.3; 54.25, -131.51}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'HG'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(53.4329, -132.424, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; % Create NORTH_COAST Area Target areaTarget = stkScenario.Children.New('eAreaTarget','NORTH_COAST'); areaTarget.AreaTypeData.RemoveAll; boundary = {54.79, -129.58; 53.34, -127.56; 53.16, -127.77; 52.88, -128.51; 52.65, -128.54; 52.49, -128.76; 52.38, -128.75; 52.37, -129; 52.27, -128.88; 52.27, -130.01; 52.27, -130.12; 53.35, -131.21; 54.25, -131.51; 54.46, -131.3; 54.72, -131.3; 54.72, -130.62; 54.79, -130.62; 55, -130.27; 55.2, -130.14; 55.32, -129.99; 55.62, -130.14; 55.84, -130.16; 56, -129.99; 55.54, -129.42}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'NC'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(53.3391, -129.843, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; % Create PACIFIC_COAST_NORTH Area Target areaTarget = stkScenario.Children.New('eAreaTarget','PACIFIC_COAST_NORTH'); areaTarget.AreaTypeData.RemoveAll; boundary = {50.45, -130.765; 50.45, -136.8445; 50.74, -137.21; 50.74, -137.26; 51.35, -138.04; 52.43, -139.41; 55, -139.41; 55, -135.08; 55, -134; 54.3, -134.02; 54.01, -134.03; 53.26, -133.53; 52.67, -132.97; 51.63, -131.27; 50.72, -131.27}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'PC-N'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(52.55, -136, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5;

24 March 2016 – F-9 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 146: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Create PACIFIC_COAST_SOUTH Area Target areaTarget = stkScenario.Children.New('eAreaTarget','PACIFIC_COAST_SOUTH'); areaTarget.AreaTypeData.RemoveAll; boundary = {48.03, -125; 48.02, -126.34; 49.38, -128.85; 50.45, -130.765; 50.45, -136.8445; 49.62, -135.82; 48.48, -134.5; 46, -130; 46, -128}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'PC-S'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(48.177, -131.11, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; % Create SOUTH_COAST Area Target areaTarget = stkScenario.Children.New('eAreaTarget','SOUTH_COAST'); areaTarget.AreaTypeData.RemoveAll; boundary = {48.26, -123.54; 48.28, -123.81; 48.52, -124.76; 48.51, -124.99; 48.03, -125; 48.02, -126.34; 49.38, -128.85; 50.23, -127.74; 50.39, -125.9; 51.45, -124.91; 49.66, -122.3; 49.02, -122.27; 49.03, -123.33; 48.81, -123.02; 48.69, -123.32; 48.44, -123.18; 48.32, -123.29}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'SC'; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(49.7726, -125.197, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; catch warning('createNewCora198Scenario: Failed create the internal JTFP area targets.'); end % Create JTFP Area Target areaTarget = stkScenario.Children.New('eAreaTarget','JTFA'); areaTarget.AreaTypeData.RemoveAll; boundary = {50.0914, -75.0237; 59.334, -66.0123; 60.422, -64.4209; 60.422, -57.3009; 60.422, -48.2041; 60.2534, -46.2225; 59.5547, -45.2804; 59.3701, -43.5122; 56.1947, -38.1948; 52.07, -31.52; 46, -39.25; 40, -46; 40, -50; 39.9865, -66; 41.5355, -66; 42, -66; 44, -67; 44.4, -67; 44.48, -66.53; 45.1022, -67.0854; 45.1011, -67.2157; 45.1454, -67.2701; 45.3551, -67.31; 45.4332, -67.4449; 47.0342, -

24 March 2016 – F-10 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 147: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

67.4925; 47.2013, -68.1742; 47.1225, -68.5526; 47.1531, -69.0242; 47.2717, -69.0301; 47.2637, -69.1246; 46.4222, -69.5638; 46.1949, -70.1227; 45.5517, -70.17}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'JTFA'; areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; % Create JTFN Area Target areaTarget = stkScenario.Children.New('eAreaTarget','JTFN'); areaTarget.AreaTypeData.RemoveAll; boundary = {60.000065, -94.746322; 59.989114, -94.741209; 59.985808, -94.746780; 59.981348, -94.751682; 59.977375, -94.761856; 59.975221, -94.768093; 59.970094, -94.777595; 59.965968, -94.780188; 59.960356, -94.784413; 59.955896, -94.789306; 59.951436, -94.794197; 59.946976, -94.799088; 59.943669, -94.804647; 59.937239, -94.805895; 59.933113, -94.808483; 59.925048, -94.803793; 59.917132, -94.806668; 59.909886, -94.804949; 59.904127, -94.801604; 59.899855, -94.796634; 59.895916, -94.789367; 59.891159, -94.779139; 59.886552, -94.776469; 59.879642, -94.772465; 59.873215, -94.773720; 59.867941, -94.775641; 59.861181, -94.779188; 59.857392, -94.779481; 59.850483, -94.775482; 59.844058, -94.776736; 59.837967, -94.775697; 59.832693, -94.777617; 59.825450, -94.775913; 59.818876, -94.769629; 59.816908, -94.766008; 59.811151, -94.762682; 59.804243, -94.758694; 59.797335, -94.754708; 59.791912, -94.749099; 59.788458, -94.747107; 59.784186, -94.742165; 59.778430, -94.738848; 59.772673, -94.735533; 59.768552, -94.738120; 59.764915, -94.745943; 59.760460, -94.750815; 59.754854, -94.755024; 59.748096, -94.758567; 59.743158, -94.758202; 59.737551, -94.762407; 59.731944, -94.766610; 59.723700, -94.771771; 59.719578, -94.774351; 59.715456, -94.776929; 59.710851, -94.774280; 59.704761, -94.773251; 59.699005, -94.769939; 59.693249, -94.766628; 59.686341, -94.762657; 59.682888, -94.760672; 59.677131, -94.757366; 59.672526, -94.754721; 59.667252, -94.756639; 59.662795, -94.761499; 59.659155, -94.769298; 59.653694, -94.780995; 59.650387, -94.786511; 59.634200, -94.785305; 59.631955, -94.786701; 59.629711, -94.788097; 59.626839, -94.789131; 59.623159, -94.791043; 59.620288, -94.792077; 59.616789, -94.792750; 59.612401, -94.790223; 59.610702, -94.787902; 59.608376, -94.785220; 59.605605, -94.780940; 59.603461, -94.777021; 59.601943, -94.773464; 59.599799, -94.769546; 59.597028, -94.765269; 59.595148, -94.764189; 59.592822, -94.761512; 59.590496, -94.758835; 59.587989, -94.757396; 59.584592, -94.752763; 59.581459, -94.750966; 59.577699, -94.748810; 59.574565, -94.747013; 59.570179, -94.744499; 59.567673, -94.743063; 59.563106, -94.741787; 59.561045, -94.741948; 59.558357, -94.741749; 59.553247, -94.744182; 59.551186, -94.744342; 59.548944, -94.745738; 59.545894, -94.748011; 59.542399, -94.748690; 59.539350, -94.750963; 59.536481, -94.751999; 59.533250, -94.755507; 59.530382, -94.756543; 59.527513, -94.757579; 59.524464, -94.759850; 59.521233, -94.763356; 59.519617, -94.765109; 59.517193, -94.767738; 59.514325, -94.768773; 59.511820, -94.767337; 59.508689, -94.765544; 59.506184, -94.764110; 59.502427, -94.761961; 59.498851, -94.758576; 59.496528, -94.755909; 59.494204, -94.753243; 59.491699, -94.751811; 59.488931, -94.747553; 59.486427, -94.746122; 59.483840, -94.740633; 59.481698, -94.736735; 59.478303, -94.732123; 59.476424, -94.731052; 59.472849, -94.727675; 59.469718, -94.725889; 59.465779, -94.724980; 59.462286, -94.725661; 59.459155, -94.723876; 59.456288, -94.724914; 59.452794, -94.725596; 59.449927, -94.726633; 59.447241, -94.726439; 59.444374, -94.727476; 59.441243, -94.725692; 59.437749, -94.726373; 59.434256, -94.727055; 59.430581, -94.728967; 59.427713, -94.730003; 59.424846, -94.731039; 59.422160, -94.730844; 59.419474, -94.730649; 59.416162, -94.730097; 59.412405, -94.727959; 59.408647, -94.725824; 59.406769, -94.724756; 59.404000, -94.720516; 59.403292, -94.716111; 59.400886, -94.709409; 59.397672, -94.703583; 59.396155, -94.700055; 59.393024, -94.698277; 59.389266, -94.696145; 59.386761, -94.694724; 59.383184, -94.691362; 59.381305, -94.690297; 59.379788, -94.686771; 59.379260, -94.681141; 59.377297, -94.676032; 59.375335, -94.670924; 59.373817, -94.667400; 59.372662, -94.661417; 59.369000, -94.654017; 59.366855, -94.650141; 59.364530, -94.647494; 59.361398, -94.645724; 59.358711, -94.645537; 59.355217, -94.646226; 59.352168, -94.648498; 59.350373, -94.651477; 59.347505, -94.652519; 59.345083, -94.655144; 59.340599, -94.657935; 59.338984, -94.659685; 59.331700, -94.677394; 59.330465, -

24 March 2016 – F-11 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 148: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

94.678730; 59.328473, -94.681671; 59.326620, -94.683674; 59.325247, -94.685947; 59.322916, -94.687678; 59.320446, -94.690348; 59.318593, -94.692349; 59.316740, -94.694351; 59.314888, -94.696352; 59.312557, -94.698082; 59.310087, -94.700749; 59.305765, -94.705415; 59.304531, -94.706748; 59.302679, -94.708747; 59.300349, -94.710475; 59.298497, -94.712473; 59.296167, -94.714201; 59.293219, -94.716594; 59.291506, -94.717655; 59.289655, -94.719652; 59.287803, -94.721649; 59.285473, -94.723375; 59.283622, -94.725371; 59.281015, -94.728968; 59.279025, -94.731899; 59.277652, -94.734165; 59.275323, -94.735889; 59.273132, -94.736677; 59.271081, -94.736530; 59.268890, -94.737318; 59.266360, -94.736900; 59.263692, -94.737418; 59.261640, -94.737270; 59.258972, -94.737787; 59.256442, -94.737369; 59.253435, -94.736681; 59.250767, -94.737198; 59.248377, -94.735845; 59.246464, -94.734764; 59.243318, -94.735010; 59.241405, -94.733929; 59.239492, -94.732848; 59.237102, -94.731496; 59.234712, -94.730145; 59.231706, -94.729457; 59.229039, -94.729974; 59.226850, -94.730761; 59.223088, -94.731671; 59.222610, -94.731401; 59.219944, -94.731918; 59.217000, -94.734301; 59.214950, -94.734154; 59.212144, -94.735604; 59.210434, -94.736660; 59.207490, -94.739043; 59.205918, -94.739166; 59.203113, -94.740615; 59.201402, -94.741670; 59.199075, -94.743389; 59.196271, -94.744836; 59.193944, -94.746554; 59.191756, -94.747339; 59.189429, -94.749056; 59.187380, -94.748908; 59.184437, -94.751287; 59.182526, -94.750206; 59.180338, -94.750990; 59.178427, -94.749909; 59.176378, -94.749761; 59.173034, -94.747870; 59.172078, -94.747329; 59.168596, -94.746371; 59.167163, -94.745561; 59.165729, -94.744751; 59.163819, -94.743671; 59.161908, -94.742591; 59.159381, -94.742174; 59.157470, -94.741094; 59.155421, -94.740946; 59.152555, -94.739327; 59.150505, -94.739180; 59.147224, -94.740355; 59.144898, -94.742070; 59.142233, -94.742584; 59.140523, -94.743637; 59.137720, -94.745082; 59.134438, -94.746256; 59.133206, -94.747579; 59.131974, -94.748901; 59.129309, -94.749414; 59.126845, -94.752058; 59.124657, -94.752840; 59.122947, -94.753892; 59.120760, -94.754674; 59.117617, -94.754916; 59.115430, -94.755698; 59.113381, -94.755549; 59.111332, -94.755400; 59.109144, -94.756182; 59.106957, -94.756963; 59.104908, -94.756814; 59.102381, -94.756396; 59.100471, -94.755317; 59.097467, -94.754628; 59.096512, -94.754089; 59.093646, -94.752471; 59.091258, -94.751123; 59.089825, -94.750314; 59.087776, -94.750166; 59.085727, -94.750017; 59.082722, -94.749329; 59.080057, -94.749841; 59.077731, -94.751551; 59.075682, -94.751403; 59.073356, -94.753113; 59.070690, -94.753624; 59.058563, -94.761258; 59.058699, -94.760342; 59.057162, -94.753512; 59.056159, -94.749964; 59.054685, -94.746151; 59.053817, -94.741688; 59.051874, -94.737610; 59.049794, -94.734448; 59.047244, -94.731020; 59.044089, -94.728242; 59.042344, -94.726263; 59.039325, -94.722572; 59.036504, -94.720977; 59.035229, -94.719265; 59.033485, -94.717288; 59.031740, -94.715311; 59.029327, -94.710974; 59.028052, -94.709264; 59.025838, -94.707023; 59.024835, -94.703483; 59.023361, -94.699679; 59.022159, -94.694047; 59.021291, -94.689595; 59.019817, -94.685792; 59.018343, -94.681990; 59.016264, -94.678839; 59.014385, -94.677781; 59.012640, -94.675810; 59.010291, -94.674488; 59.007472, -94.672902; 59.004652, -94.671316; 59.002303, -94.669995; 58.999953, -94.668674; 58.997939, -94.668531; 58.995589, -94.667211; 58.992300, -94.665363; 58.989951, -94.664044; 58.987602, -94.662725; 58.985723, -94.661669; 58.983509, -94.659438; 58.982370, -94.656821; 58.980762, -94.653941; 58.979360, -94.646233; 58.978826, -94.642968; 58.978428, -94.638789; 58.978029, -94.634612; 58.978100, -94.630698; 58.977701, -94.626520; 58.977102, -94.620255; 58.977372, -94.618430; 58.977108, -94.613340; 58.976979, -94.607339; 58.976914, -94.604339; 58.977119, -94.599513; 58.976249, -94.595076; 58.975110, -94.592464; 58.973770, -94.587765; 58.972161, -94.584891; 58.971021, -94.582280; 58.967398, -94.579271; 58.965049, -94.577961; 58.962700, -94.576651; 58.960351, -94.575341; 58.958002, -94.574032; 58.955654, -94.572723; 58.953775, -94.571676; 58.950956, -94.570105; 58.948607, -94.568797; 58.945789, -94.567228; 58.943910, -94.566182; 58.941092, -94.564613; 58.938743, -94.563306; 58.936394, -94.561999; 58.934045, -94.560692; 58.930757, -94.558863; 58.929683, -94.559252; 58.927804, -94.558207; 58.925790, -94.558074; 58.923776, -94.557941; 58.920688, -94.558196; 58.917600, -94.558451; 58.916526, -94.558840; 58.914512, -94.558707; 58.911289, -94.559873; 58.910215, -94.560262; 58.907596, -94.560778; 58.904978, -94.561294; 58.903433, -94.561422; 58.900815, -94.561938; 58.899271, -94.562066; 58.896787, -94.561672; 58.894773, -94.561539; 58.892759, -94.561406; 58.890745, -94.561273; 58.888596, -94.562050; 58.886582, -94.561917; 58.884568, -94.561785; 58.882418, -94.562562; 58.880404, -94.562430; 58.878055, -94.561127; 58.876176, -94.560085; 58.874431, -94.558133; 58.872082, -94.556830; 58.870003, -94.553709; 58.868307, -94.539559; 58.863998, -94.537167; 58.859997, -94.532694; 58.855996, -94.528223; 58.852302, -94.521672; 58.847994, -94.519284; 58.839993, -94.510350; 58.836300, -94.503806; 58.831530, -94.496667; 58.828913, -94.490722; 58.824913, -94.486262; 58.821219, -94.479724; 58.817526, -94.473188; 58.813832, -94.466654; 58.810138, -94.460122; 58.806444, -94.453591; 58.802750, -94.447062; 58.800133, -94.441128; 58.793673, -94.437572; 58.787213, -94.434018; 58.783983, -94.432242; 58.779065, -94.434027; 58.774452, -94.433736; 58.769534, -94.435521; 58.764152, -94.432562; 58.756617, -94.428422; 58.753388, -94.426649; 58.748006, -94.423694;

24 March 2016 – F-12 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 149: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

58.742930, -94.418666; 58.738161, -94.411565; 58.735543, -94.405647; 58.731849, -94.399140; 58.730919, -94.389666; 58.731065, -94.380783; 58.733363, -94.373077; 58.734584, -94.364781; 58.736109, -94.354411; 58.738405, -94.346702; 58.740396, -94.341067; 58.744073, -94.331870; 58.747444, -94.324746; 58.750815, -94.317620; 58.755568, -94.309006; 58.759711, -94.304540; 58.764931, -94.300660; 58.769543, -94.300932; 58.775536, -94.299715; 58.778906, -94.292581; 58.782276, -94.285446; 58.783796, -94.275059; 58.785011, -94.266749; 58.788380, -94.259610; 58.792826, -94.253055; 58.797742, -94.251242; 58.802658, -94.249429; 58.808955, -94.246121; 58.812020, -94.241055; 58.815389, -94.233907; 58.816905, -94.223507; 58.814581, -94.215512; 58.810573, -94.211092; 58.804108, -94.207584; 58.801953, -94.206415; 58.797643, -94.204077; 58.790101, -94.199987; 58.785319, -94.192911; 58.780537, -94.185837; 58.777135, -94.177270; 58.775111, -94.167210; 58.773088, -94.157151; 58.772141, -94.147675; 58.770417, -94.135541; 58.769468, -94.126066; 58.769120, -94.112437; 58.767994, -94.096151; 58.768295, -94.094073; 58.768723, -94.083101; 58.767771, -94.073628; 58.767897, -94.064734; 58.766768, -94.048447; 58.767492, -94.035396; 58.769561, -93.998220; 58.768846, -93.985704; 58.766967, -93.972569; 58.766770, -93.965193; 58.764568, -93.954316; 58.762686, -93.941192; 58.761646, -93.930944; 58.762931, -93.921948; 58.763894, -93.915200; 58.765179, -93.906204; 58.769109, -93.896206; 58.770392, -93.887205; 58.772315, -93.873703; 58.773915, -93.862450; 58.774875, -93.855703; 58.774467, -93.840967; 58.775746, -93.831973; 58.775860, -93.822357; 58.776293, -93.810493; 58.777570, -93.801498; 58.777363, -93.794133; 58.777474, -93.784518; 58.778749, -93.775527; 58.780341, -93.764285; 58.782778, -93.755909; 58.787223, -93.751015; 58.793041, -93.754104; 58.798859, -93.757189; 58.800449, -93.745940; 58.797701, -93.729975; 58.796326, -93.721995; 58.794105, -93.711149; 58.793046, -93.700921; 58.791669, -93.692942; 58.789763, -93.679856; 58.787855, -93.666772; 58.784150, -93.657574; 58.781077, -93.643883; 58.778850, -93.633058; 58.778950, -93.623457; 58.776722, -93.612633; 58.775124, -93.597317; 58.773742, -93.589355; 58.772142, -93.574046; 58.773717, -93.562813; 58.773497, -93.555464; 58.775070, -93.544231; 58.776328, -93.535245; 58.776421, -93.525652; 58.774499, -93.512596; 58.771949, -93.504036; 58.769399, -93.495477; 58.764520, -93.485708; 58.760491, -93.478794; 58.756775, -93.469636; 58.751895, -93.459877; 58.749342, -93.451329; 58.744461, -93.441576; 58.741907, -93.433032; 58.738501, -93.421643; 58.738587, -93.412064; 58.741000, -93.403690; 58.744036, -93.390827; 58.746447, -93.382451; 58.750645, -93.370184; 58.754531, -93.360162; 58.758104, -93.352383; 58.762842, -93.345203; 58.765250, -93.336821; 58.767658, -93.328438; 58.770919, -93.322900; 58.772782, -93.309423; 58.775188, -93.301036; 58.776739, -93.289803; 58.778289, -93.278569; 58.779837, -93.267334; 58.779911, -93.257747; 58.778510, -93.249811; 58.776562, -93.236785; 58.774305, -93.226008; 58.771737, -93.217480; 58.767696, -93.210603; 58.763107, -93.198641; 58.758208, -93.188928; 58.754166, -93.182058; 58.747177, -93.178492; 58.741353, -93.175521; 58.734364, -93.171958; 58.730869, -93.170177; 58.725045, -93.167209; 58.720386, -93.164835; 58.713397, -93.161276; 58.710210, -93.157254; 58.679116, -93.130658; 58.676058, -93.134077; 58.670900, -93.133948; 58.663004, -93.134915; 58.657847, -93.134785; 58.653900, -93.135268; 58.648745, -93.135139; 58.642061, -93.136717; 58.637225, -93.134268; 58.631181, -93.131208; 58.625137, -93.128149; 58.619092, -93.125092; 58.614258, -93.122646; 58.607008, -93.118980; 58.603063, -93.119464; 58.598230, -93.117021; 58.591551, -93.118601; 58.585191, -93.117864; 58.580929, -93.120664; 58.575778, -93.120537; 58.567892, -93.121504; 58.565158, -93.122598; 58.558481, -93.124174; 58.550597, -93.125140; 58.543922, -93.126715; 58.537566, -93.125978; 58.529685, -93.126942; 58.522441, -93.123285; 58.518819, -93.121457; 58.512782, -93.118411; 58.507953, -93.115975; 58.503123, -93.113540; 58.495880, -93.109888; 58.492259, -93.108063; 58.486224, -93.105022; 58.481396, -93.102590; 58.474153, -93.098943; 58.469326, -93.096513; 58.461195, -93.089955; 58.455796, -93.082307; 58.450969, -93.079881; 58.447348, -93.078061; 58.441631, -93.072724; 58.436803, -93.070300; 58.431976, -93.067877; 58.423211, -93.065942; 58.415335, -93.066917; 58.409874, -93.069103; 58.404729, -93.068985; 58.399585, -93.068866; 58.392345, -93.065236; 58.388726, -93.063420; 58.383899, -93.061001; 58.379390, -93.056281; 58.373991, -93.048656; 58.368274, -93.043335; 58.363764, -93.038619; 58.359254, -93.033905; 58.353853, -93.026287; 58.350549, -93.022178; 58.343625, -93.016261; 58.340321, -93.012155; 58.336126, -93.005147; 58.330723, -92.997539; 58.325320, -92.989933; 58.320493, -92.987528; 58.314458, -92.984522; 58.308107, -92.983815; 58.300550, -92.982508; 58.296929, -92.980705; 58.260079, -92.950344; 58.256394, -92.948513; 58.249344, -92.942528; 58.244433, -92.940091; 58.239840, -92.935328; 58.233702, -92.932285; 58.229433, -92.925203; 58.224843, -92.920447; 58.219344, -92.912760; 58.214754, -92.908007; 58.210483, -92.900933; 58.203758, -92.892648; 58.200395, -92.888507; 58.196124, -92.881439; 58.188173, -92.872558; 58.183266, -92.870139; 58.174680, -92.865909; 58.168232, -92.865210; 58.162101, -92.862192; 58.155653, -92.861494; 58.147980, -92.860193; 58.141531, -92.859496; 58.137853, -92.857686; 58.132631, -92.857592; 58.126184, -92.856896; 58.121281, -92.854485; 58.116379, -92.852075; 58.110253, -92.849065; 58.105671, -92.844343; 58.099545, -92.841336; 58.093736, -92.836013; 58.088835, -

24 March 2016 – F-13 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 150: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

92.833610; 58.082711, -92.830606; 58.075996, -92.822376; 58.071414, -92.817663; 58.066515, -92.815264; 58.060709, -92.809953; 58.056760, -92.800618; 58.052178, -92.795911; 58.045738, -92.795231; 58.039299, -92.794551; 58.031319, -92.795585; 58.024248, -92.799527; 58.019942, -92.802354; 58.014412, -92.804581; 58.009515, -92.802189; 58.002171, -92.798602; 57.998182, -92.799119; 57.991746, -92.798440; 57.986217, -92.800667; 57.979781, -92.799988; 57.957710, -92.799065; 57.956486, -92.798468; 57.950367, -92.795485; 57.945473, -92.793100; 57.939355, -92.790119; 57.934777, -92.785431; 57.928659, -92.782453; 57.924081, -92.777768; 57.917963, -92.774791; 57.908175, -92.770033; 57.902373, -92.764758; 57.896256, -92.761786; 57.890454, -92.756514; 57.886191, -92.749537; 57.879165, -92.743675; 57.874271, -92.741303; 57.869377, -92.738931; 57.859589, -92.734189; 57.850709, -92.732342; 57.843645, -92.736277; 57.838436, -92.736207; 57.832319, -92.733246; 57.826201, -92.730287; 57.820398, -92.725031; 57.815504, -92.722665; 57.809386, -92.719709; 57.802045, -92.716162; 57.793479, -92.712027; 57.788585, -92.709664; 57.780019, -92.705532; 57.777571, -92.704352; 57.769005, -92.700222; 57.761662, -92.696683; 57.757991, -92.694915; 57.751872, -92.691968; 57.744528, -92.688433; 57.739633, -92.686077; 57.733513, -92.683133; 57.702513, -92.654364; 57.701050, -92.653047; 57.698972, -92.651434; 57.697818, -92.650266; 57.696127, -92.648225; 57.694587, -92.647485; 57.693741, -92.646465; 57.691355, -92.644705; 57.689814, -92.643965; 57.688273, -92.643225; 57.687428, -92.642206; 57.686274, -92.641038; 57.684812, -92.639722; 57.683659, -92.638555; 57.681430, -92.635645; 57.679969, -92.634330; 57.678507, -92.633015; 57.676430, -92.631405; 57.674431, -92.629220; 57.672970, -92.627906; 57.671200, -92.626445; 57.669431, -92.624983; 57.667662, -92.623523; 57.665892, -92.622061; 57.662970, -92.619435; 57.661509, -92.618123; 57.659969, -92.617385; 57.658737, -92.616795; 57.657197, -92.616058; 57.655737, -92.614746; 57.655199, -92.613876; 57.653431, -92.612417; 57.651433, -92.610236; 57.649435, -92.608055; 57.648131, -92.605593; 57.646441, -92.603559; 57.645753, -92.601392; 57.627639, -92.573144; 57.610140, -92.564911; 57.592278, -92.556343; 57.574418, -92.547785; 57.563705, -92.542658; 57.545854, -92.534127; 57.541374, -92.513051; 57.529804, -92.494427; 57.491390, -92.476234; 57.470200, -92.466217; 57.453323, -92.455637; 57.429157, -92.446873; 57.409953, -92.443068; 57.384131, -92.436158; 57.365919, -92.435449; 57.347053, -92.429213; 57.332728, -92.426014; 57.309554, -92.429162; 57.298864, -92.424138; 57.263216, -92.435467; 57.231134, -92.448451; 57.207972, -92.451599; 57.183044, -92.439917; 57.175923, -92.436583; 57.140315, -92.419930; 57.123409, -92.405052; 57.102942, -92.388531; 57.084262, -92.358911; 57.081603, -92.322800; 57.080712, -92.273579; 57.072694, -92.248977; 57.078898, -92.203057; 57.085968, -92.150570; 57.092136, -92.104639; 57.098286, -92.058700; 57.105295, -92.006188; 57.110537, -91.966799; 57.113153, -91.947101; 57.121853, -91.881431; 57.122721, -91.874863; 57.136676, -91.797629; 57.146159, -91.725335; 57.161020, -91.669333; 57.181988, -91.595129; 57.206482, -91.522416; 57.216840, -91.471277; 57.228213, -91.441452; 57.238543, -91.390262; 57.248850, -91.339043; 57.259754, -91.253237; 57.273103, -91.147556; 57.278916, -91.101291; 57.283886, -91.061624; 57.289671, -91.015329; 57.293511, -90.954260; 57.295684, -90.906412; 57.290685, -90.855539; 57.285663, -90.804680; 57.279807, -90.760455; 57.271979, -90.701500; 57.260546, -90.641074; 57.247471, -90.593934; 57.233583, -90.553433; 57.219681, -90.512960; 57.206563, -90.465896; 57.191435, -90.404154; 57.168316, -90.346166; 57.150764, -90.304362; 57.128823, -90.267768; 57.126025, -90.259708; 57.110010, -90.204745; 57.107991, -90.190075; 57.054485, -90.046216; 57.052524, -90.032237; 57.048851, -90.017575; 57.045176, -90.002918; 57.039791, -89.987586; 57.034039, -89.975408; 57.027669, -89.953115; 57.023369, -89.928365; 57.019428, -89.900480; 57.019790, -89.897334; 57.014495, -89.865645; 57.010904, -89.834647; 57.003887, -89.802324; 56.999206, -89.780787; 56.991820, -89.751641; 56.992538, -89.745358; 56.983794, -89.712431; 56.977470, -89.673912; 56.973486, -89.646155; 56.968499, -89.611476; 56.961794, -89.576155; 56.959503, -89.549096; 56.955850, -89.518253; 56.953547, -89.491209; 56.949229, -89.450332; 56.944852, -89.425795; 56.941174, -89.394999; 56.938499, -89.371126; 56.935119, -89.353524; 56.934458, -89.343479; 56.928005, -89.321467; 56.924271, -89.307011; 56.920885, -89.289428; 56.919523, -89.285656; 56.910685, -89.252998; 56.904566, -89.227893; 56.897791, -89.176488; 56.897118, -89.166464; 56.899559, -89.111981; 56.902997, -89.080671; 56.903689, -89.058123; 56.901638, -89.044341; 56.891718, -89.021167; 56.881112, -89.004266; 56.869481, -88.996763; 56.861270, -88.990512; 56.858190, -88.986136; 56.855785, -88.959242; 56.857487, -88.943601; 56.859186, -88.927958; 56.868406, -88.908536; 56.873184, -88.897256; 56.874539, -88.884734; 56.874878, -88.881604; 56.869726, -88.863476; 56.861149, -88.844119; 56.853944, -88.828516; 56.846400, -88.816049; 56.836806, -88.806099; 56.829260, -88.793641; 56.822385, -88.774933; 56.816883, -88.759971; 56.815137, -88.743110; 56.813389, -88.726249; 56.809927, -88.708779; 56.807840, -88.695048; 56.798904, -88.678883; 56.793057, -88.667068; 56.787209, -88.655257; 56.777603, -88.645360; 56.766283, -88.634862; 56.757007, -88.621850; 56.747398, -88.611967; 56.737787, -88.602090; 56.722707, -88.593526; 56.713095, -88.583657; 56.706575, -88.578120; 56.699335, -88.562620; 56.688995, -88.542799; 56.678652, -88.522986; 56.673116, -88.508103;

24 March 2016 – F-14 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 151: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

56.667249, -88.496342; 56.659667, -88.483985; 56.644498, -88.459282; 56.635524, -88.443219; 56.629975, -88.428355; 56.621648, -88.406066; 56.616418, -88.388090; 56.610536, -88.376353; 56.602937, -88.364028; 56.559987, -88.275652; 56.557739, -88.271192; 56.557086, -88.270966; 56.554961, -88.265324; 56.550832, -88.252856; 56.546824, -88.239209; 56.543348, -88.226978; 56.539993, -88.213568; 56.537047, -88.202754; 56.534223, -88.190760; 56.531155, -88.181137; 56.528740, -88.171739; 56.526204, -88.163527; 56.524319, -88.155539; 56.522435, -88.147553; 56.519488, -88.136760; 56.516613, -88.118655; 56.514509, -88.099596; 56.511630, -88.081504; 56.509161, -88.066001; 56.507224, -88.051905; 56.505165, -88.038992; 56.502332, -88.027045; 56.500272, -88.014139; 56.497265, -87.997255; 56.494017, -87.982737; 56.492952, -87.979939; 56.487508, -87.967135; 56.485671, -87.965301; 56.479096, -87.957005; 56.474890, -87.951943; 56.469380, -87.946447; 56.464935, -87.943746; 56.459068, -87.941792; 56.458416, -87.941575; 56.450593, -87.938972; 56.447334, -87.937887; 56.444727, -87.937020; 56.440403, -87.933145; 56.436318, -87.926914; 56.432527, -87.924437; 56.427432, -87.921527; 56.421687, -87.918402; 56.416712, -87.914317; 56.411563, -87.905307; 56.411030, -87.903914; 56.405467, -87.892336; 56.404816, -87.892121; 56.400731, -87.885903; 56.396884, -87.877333; 56.395286, -87.873156; 56.391734, -87.868335; 56.387530, -87.863299; 56.383088, -87.860619; 56.379298, -87.858154; 56.375626, -87.854512; 56.372487, -87.852263; 56.359113, -87.834336; 56.356902, -87.828571; 56.355122, -87.825467; 56.352788, -87.820923; 56.348429, -87.815712; 56.344746, -87.810726; 56.341615, -87.807180; 56.337809, -87.803414; 56.333451, -87.798209; 56.328971, -87.794224; 56.323263, -87.788580; 56.319702, -87.782386; 56.315345, -87.777188; 56.307978, -87.767238; 56.301718, -87.760167; 56.297361, -87.754976; 56.290305, -87.748906; 56.281346, -87.740964; 56.270796, -87.735017; 56.269568, -87.733363; 56.260058, -87.723997; 56.251222, -87.714855; 56.245394, -87.710456; 56.244720, -87.710237; 56.236626, -87.707611; 56.227183, -87.704549; 56.221355, -87.700154; 56.216081, -87.697193; 56.214058, -87.696538; 56.202281, -87.688970; 56.196211, -87.687007; 56.190383, -87.682620; 56.184002, -87.676805; 56.177068, -87.669562; 56.170686, -87.663752; 56.167556, -87.660241; 56.161053, -87.655645; 56.158476, -87.653565; 56.147803, -87.648880; 56.145105, -87.648012; 56.110646, -87.600250; 56.108844, -87.595613; 56.105045, -87.588305; 56.103314, -87.571523; 56.104092, -87.563660; 56.102164, -87.548848; 56.098170, -87.543515; 56.091597, -87.541413; 56.083220, -87.534684; 56.081223, -87.532021; 56.077490, -87.512596; 56.072272, -87.496758; 56.071047, -87.486245; 56.069436, -87.479659; 56.059834, -87.462443; 56.052938, -87.452165; 56.047847, -87.446509; 56.041661, -87.440509; 56.036185, -87.438779; 56.027230, -87.437972; 56.020659, -87.435897; 56.016471, -87.432554; 56.012151, -87.419069; 56.008732, -87.407891; 56.005504, -87.394757; 56.005041, -87.376436; 56.001864, -87.351212; 56.000630, -87.340732; 55.995919, -87.331186; 55.988635, -87.324875; 55.982827, -87.314992; 55.979210, -87.305795; 55.973592, -87.293962; 55.973782, -87.292005; 55.967258, -87.277878; 55.964924, -87.267074; 55.964589, -87.258906; 55.962252, -87.248104; 55.960105, -87.235346; 55.957767, -87.224546; 55.956523, -87.214086; 55.955845, -87.197758; 55.955354, -87.179473; 55.954295, -87.167060; 55.953235, -87.154647; 55.953833, -87.136701; 55.950954, -87.119705; 55.950264, -87.103382; 55.948102, -87.090638; 55.946500, -87.072025; 55.945616, -87.057661; 55.945454, -87.047544; 55.944195, -87.037094; 55.943845, -87.028934; 55.943122, -87.024688; 55.935050, -86.901234; 55.932295, -86.896603; 55.930316, -86.889357; 55.926960, -86.879798; 55.923346, -86.867317; 55.922054, -86.864081; 55.916200, -86.847138; 55.915081, -86.842058; 55.910086, -86.827281; 55.905952, -86.814665; 55.903023, -86.806206; 55.900524, -86.798824; 55.898112, -86.790522; 55.896560, -86.784374; 55.893371, -86.773001; 55.891043, -86.763783; 55.889231, -86.754719; 55.886299, -86.746273; 55.882590, -86.734758; 55.879828, -86.724474; 55.876464, -86.714960; 55.873184, -86.704527; 55.870766, -86.696244; 55.868780, -86.689036; 55.866793, -86.681828; 55.865669, -86.676767; 55.864198, -86.669713; 55.861863, -86.660514; 55.859096, -86.650245; 55.855125, -86.641516; 55.847791, -86.628971; 55.845106, -86.617789; 55.844572, -86.606291; 55.844469, -86.595864; 55.843764, -86.586208; 55.840823, -86.577792; 55.835033, -86.565716; 55.829410, -86.551803; 55.828544, -86.549662; 55.823184, -86.538664; 55.822319, -86.536524; 55.819192, -86.524287; 55.815115, -86.510834; 55.814333, -86.507775; 55.810603, -86.496313; 55.809121, -86.489278; 55.806074, -86.476129; 55.805291, -86.473072; 55.802757, -86.460072; 55.801624, -86.455027; 55.798905, -86.438202; 55.796718, -86.427193; 55.794881, -86.418173; 55.790107, -86.406425; 55.784297, -86.394384; 55.783428, -86.392248; 55.782559, -86.390113; 55.778650, -86.380505; 55.775609, -86.373034; 55.773001, -86.366629; 55.771345, -86.361440; 55.769689, -86.356251; 55.767597, -86.349995; 55.764635, -86.341606; 55.747764, -86.301707; 55.747428, -86.298094; 55.745263, -86.292790; 55.741064, -86.288086; 55.737172, -86.279952; 55.733484, -86.269533; 55.733688, -86.267246; 55.728272, -86.254000; 55.725327, -86.242624; 55.723669, -86.231611; 55.723229, -86.229144; 55.721773, -86.215847; 55.718825, -86.204475; 55.717740, -86.201828; 55.713569, -86.181918; 55.710617, -86.170551; 55.709597, -86.159725; 55.706845, -86.146075; 55.702601, -86.134353; 55.699885, -86.127743; 55.698457, -86.121491; 55.697432, -86.110668; 55.696606, -

24 March 2016 – F-15 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 152: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

86.097560; 55.695879, -86.083308; 55.695695, -86.070377; 55.695895, -86.068091; 55.696553, -86.053051; 55.695377, -86.036333; 55.692019, -86.014330; 55.690093, -85.998578; 55.689301, -85.992505; 55.679397, -85.944619; 55.677484, -85.937319; 55.676143, -85.923404; 55.676044, -85.909830; 55.674510, -85.898124; 55.669627, -85.880995; 55.665606, -85.868619; 55.661393, -85.858452; 55.654695, -85.847615; 55.648860, -85.841525; 55.641592, -85.837305; 55.637189, -85.829352; 55.632785, -85.821401; 55.627516, -85.808714; 55.623489, -85.796365; 55.619837, -85.779616; 55.617802, -85.758801; 55.619305, -85.741188; 55.620243, -85.730180; 55.617638, -85.715975; 55.615901, -85.706507; 55.610434, -85.696047; 55.603537, -85.687460; 55.595397, -85.678548; 55.588499, -85.669970; 55.583029, -85.659524; 55.583215, -85.657325; 55.575631, -85.641826; 55.571031, -85.636115; 55.566430, -85.630404; 55.559343, -85.624039; 55.554742, -85.618332; 55.549082, -85.610101; 55.544480, -85.604397; 55.540063, -85.596498; 55.532101, -85.585423; 55.522893, -85.574028; 55.510324, -85.557269; 55.498994, -85.540846; 55.485174, -85.523784; 55.467619, -85.505762; 55.466375, -85.505439; 55.436335, -85.390077; 55.436835, -85.384033; 55.424151, -85.368435; 55.413175, -85.353288; 55.408324, -85.327385; 55.401262, -85.307095; 55.394916, -85.299321; 55.393229, -85.277331; 55.395699, -85.247162; 55.393263, -85.234232; 55.389362, -85.217858; 55.384968, -85.207520; 55.374222, -85.189439; 55.363963, -85.165341; 55.362007, -85.146408; 55.358095, -85.130066; 55.353937, -85.116740; 55.340982, -85.104303; 55.332671, -85.099170; 55.322649, -85.093615; 55.309447, -85.084208; 55.303089, -85.076499; 55.299409, -85.057187; 55.297680, -85.035292; 55.299369, -85.014242; 55.301803, -85.005641; 55.299824, -84.986759; 55.297842, -84.967880; 55.295617, -84.952012; 55.291679, -84.935729; 55.287738, -84.919451; 55.285031, -84.909603; 55.280563, -84.877892; 55.276850, -84.858622; 55.274610, -84.842774; 55.271895, -84.832937; 55.267941, -84.816680; 55.265460, -84.803842; 55.264219, -84.797423; 55.260727, -84.775169; 55.258241, -84.762337; 55.258476, -84.759333; 55.253733, -84.730672; 55.251707, -84.711841; 55.251159, -84.696421; 55.253480, -84.666394; 55.254869, -84.648376; 55.255332, -84.642370; 55.254214, -84.611532; 55.254111, -84.590108; 55.254799, -84.581098; 55.257922, -84.496841; 55.261454, -84.486405; 55.262951, -84.478712; 55.264447, -84.471020; 55.266181, -84.460169; 55.269589, -84.451314; 55.271861, -84.445409; 55.274251, -84.437926; 55.277776, -84.427489; 55.278845, -84.413275; 55.279794, -84.400643; 55.280505, -84.391169; 55.281333, -84.380117; 55.282939, -84.370850; 55.284426, -84.363164; 55.285912, -84.355477; 55.286383, -84.349163; 55.286971, -84.341271; 55.287677, -84.331802; 55.287602, -84.320551; 55.287174, -84.314035; 55.284172, -84.305330; 55.280274, -84.296423; 55.278519, -84.283192; 55.277544, -84.271745; 55.279139, -84.262489; 55.284006, -84.245957; 55.288638, -84.232576; 55.290895, -84.226673; 55.291908, -84.225299; 55.294627, -84.213089; 55.295437, -84.202051; 55.295349, -84.190813; 55.295375, -84.177999; 55.293491, -84.166362; 55.291721, -84.153151; 55.289834, -84.141517; 55.287832, -84.131462; 55.287508, -84.123384; 55.288309, -84.112355; 55.286419, -84.100728; 55.283517, -84.090479; 55.284314, -84.079452; 55.286121, -84.067050; 55.286689, -84.059174; 55.288380, -84.048347; 55.293326, -84.030237; 55.299052, -84.013898; 55.300625, -84.004643; 55.303432, -83.990860; 55.305003, -83.981605; 55.306686, -83.970774; 55.309265, -83.960138; 55.310049, -83.949110; 55.310497, -83.942808; 55.312060, -83.920752; 55.313174, -83.904997; 55.312723, -83.898500; 55.310478, -83.891613; 55.305432, -83.885717; 55.300496, -83.878249; 55.300043, -83.871754; 55.300597, -83.863879; 55.299026, -83.860341; 55.294751, -83.843428; 55.293400, -83.836742; 55.292613, -83.834973; 55.291151, -83.829862; 55.287328, -83.819447; 55.283285, -83.812183; 55.280248, -83.803539; 55.276422, -83.793130; 55.274609, -83.779959; 55.273582, -83.768555; 55.272991, -83.750855; 55.273864, -83.738261; 55.274300, -83.731964; 55.275415, -83.729007; 55.278650, -83.721709; 55.285364, -83.716749; 55.287376, -83.713981; 55.289604, -83.708064; 55.290147, -83.700189; 55.291015, -83.687588; 55.289762, -83.679331; 55.286715, -83.670695; 55.284240, -83.666974; 55.279397, -83.657959; 55.275558, -83.647561; 55.271825, -83.635589; 55.268414, -83.618895; 55.266258, -83.610454; 55.264744, -83.592565; 55.263014, -83.577825; 55.261859, -83.567999; 55.262392, -83.560124; 55.261342, -83.548723; 55.260657, -83.545385; 55.254379, -83.507672; 55.253368, -83.505419; 55.252155, -83.500402; 55.251167, -83.492029; 55.249706, -83.484921; 55.246694, -83.472050; 55.243838, -83.462615; 55.243208, -83.460444; 55.240307, -83.451683; 55.238755, -83.445922; 55.239203, -83.439214; 55.239875, -83.429152; 55.240189, -83.424457; 55.237821, -83.407654; 55.236019, -83.399808; 55.234323, -83.384508; 55.233692, -83.382340; 55.231391, -83.370318; 55.230804, -83.367480; 55.228118, -83.355383; 55.227487, -83.353217; 55.227432, -83.342335; 55.227476, -83.341665; 55.228184, -83.330939; 55.229745, -83.319028; 55.229833, -83.317687; 55.230789, -83.309049; 55.232891, -83.300643; 55.233978, -83.289994; 55.234770, -83.277925; 55.234576, -83.269055; 55.233617, -83.260031; 55.231303, -83.248019; 55.229665, -83.237502; 55.229457, -83.234744; 55.227436, -83.224151; 55.225665, -83.215646; 55.223937, -83.206472; 55.224024, -83.205131; 55.222677, -83.196034; 55.222086, -83.193199; 55.222955, -83.179789; 55.224795, -83.169288; 55.227357, -83.159608; 55.229788, -83.151939; 55.231324, -83.146130; 55.233841, -83.137116; 55.236654, -83.129519;

24 March 2016 – F-16 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 153: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

55.238911, -83.124529; 55.240403, -83.119387; 55.240489, -83.118045; 55.241177, -83.107306; 55.241263, -83.105963; 55.241693, -83.099251; 55.241186, -83.095072; 55.241061, -83.090969; 55.239066, -83.085818; 55.233979, -83.070146; 55.231426, -83.054393; 55.231514, -83.053024; 55.234727, -83.039788; 55.237157, -83.032638; 55.239804, -83.022063; 55.240021, -83.012401; 55.238935, -82.998327; 55.239065, -82.996273; 55.237978, -82.982199; 55.237761, -82.979385; 55.238577, -82.960141; 55.239223, -82.949872; 55.239610, -82.943710; 55.239606, -82.937474; 55.239211, -82.931161; 55.236822, -82.925158; 55.232042, -82.913153; 55.227133, -82.903205; 55.223528, -82.897665; 55.218276, -82.893195; 55.215238, -82.891227; 55.210322, -82.886130; 55.206842, -82.883321; 55.204164, -82.880668; 55.199610, -82.875518; 55.191176, -82.867489; 55.189257, -82.865697; 55.183274, -82.857431; 55.176977, -82.847686; 55.173043, -82.839106; 55.172327, -82.837546; 55.169911, -82.830683; 55.169597, -82.829200; 55.167397, -82.818823; 55.165012, -82.804859; 55.164827, -82.801269; 55.163329, -82.786056; 55.163847, -82.777624; 55.164365, -82.769193; 55.164710, -82.763572; 55.164968, -82.759356; 55.165670, -82.754514; 55.168163, -82.753561; 55.172087, -82.755721; 55.177444, -82.760995; 55.182800, -82.766271; 55.186954, -82.771321; 55.194359, -82.776277; 55.200061, -82.775933; 55.203356, -82.775134; 55.206509, -82.770038; 55.211566, -82.760322; 55.214804, -82.753818; 55.217955, -82.748720; 55.222882, -82.741110; 55.225316, -82.734453; 55.226504, -82.728272; 55.225856, -82.718900; 55.221366, -82.705962; 55.217465, -82.696697; 55.213795, -82.690321; 55.211643, -82.685653; 55.209535, -82.680282; 55.207742, -82.676393; 55.206350, -82.672579; 55.205402, -82.668137; 55.203019, -82.660586; 55.201712, -82.655369; 55.199602, -82.650002; 55.197091, -82.644562; 55.196331, -82.643711; 55.193631, -82.634685; 55.191605, -82.627916; 55.189896, -82.622628; 55.188144, -82.618042; 55.185316, -82.611128; 55.182086, -82.604142; 55.181220, -82.598301; 55.179869, -82.593792; 55.178517, -82.589283; 55.176256, -82.579638; 55.173804, -82.566410; 55.172277, -82.551224; 55.171468, -82.537589; 55.169688, -82.526618; 55.167532, -82.521967; 55.164248, -82.511481; 55.160336, -82.510762; 55.157656, -82.508289; 55.149789, -82.497940; 55.147612, -82.496552; 55.143428, -82.490841; 55.145061, -82.482239; 55.145075, -82.472353; 55.143684, -82.467156; 55.138326, -82.462226; 55.129846, -82.452778; 55.123987, -82.446776; 55.121537, -82.440404; 55.121548, -82.430531; 55.121947, -82.423690; 55.120168, -82.415470; 55.114925, -82.408602; 55.109625, -82.402713; 55.105386, -82.398004; 55.102821, -82.393598; 55.100928, -82.387339; 55.099375, -82.375223; 55.099100, -82.370242; 55.099665, -82.360481; 55.100060, -82.353648; 55.100286, -82.349744; 55.103472, -82.343408; 55.104701, -82.341654; 55.107160, -82.338147; 55.107385, -82.334242; 55.109843, -82.330734; 55.113808, -82.330453; 55.114366, -82.330552; 55.120062, -82.329592; 55.122854, -82.330089; 55.124473, -82.331363; 55.125590, -82.331562; 55.129443, -82.333234; 55.133352, -82.333929; 55.137593, -82.338632; 55.143568, -82.342657; 55.149711, -82.343753; 55.152002, -82.343174; 55.154851, -82.342695; 55.154907, -82.341717; 55.156474, -82.334097; 55.155695, -82.328033; 55.152736, -82.320595; 55.148548, -82.314915; 55.143187, -82.310015; 55.137939, -82.303164; 55.129620, -82.290840; 55.124484, -82.282043; 55.122641, -82.274814; 55.122640, -82.264951; 55.121188, -82.260753; 55.117447, -82.257137; 55.116330, -82.256940; 55.110858, -82.254008; 55.107564, -82.252445; 55.102038, -82.250491; 55.095954, -82.248441; 55.089480, -82.243368; 55.088475, -82.241223; 55.083117, -82.236348; 55.071788, -82.237322; 55.070672, -82.237127; 55.066598, -82.239368; 55.064254, -82.240926; 55.060348, -82.240244; 55.057502, -82.240731; 55.054377, -82.246086; 55.051364, -82.249496; 55.048965, -82.252030; 55.045226, -82.258265; 55.042269, -82.260700; 55.037413, -82.266732; 55.034512, -82.268194; 55.028932, -82.267219; 55.024078, -82.263423; 55.021456, -82.260015; 55.018220, -82.257483; 55.012808, -82.253589; 55.005219, -82.248333; 54.995845, -82.244734; 54.985354, -82.240942; 54.978100, -82.239681; 54.967497, -82.237838; 54.958010, -82.236191; 54.950754, -82.234932; 54.949638, -82.234738; 54.933438, -82.227485; 54.929405, -82.223831; 54.927217, -82.217553; 54.922180, -82.216672; 54.915381, -82.216958; 54.911185, -82.216225; 54.906823, -82.218409; 54.902626, -82.217676; 54.899269, -82.217089; 54.895994, -82.215045; 54.894729, -82.207463; 54.893216, -82.204255; 54.890189, -82.197840; 54.886241, -82.192738; 54.880617, -82.187348; 54.878101, -82.186912; 54.871390, -82.185749; 54.866275, -82.186332; 54.862920, -82.185751; 54.858727, -82.185024; 54.854534, -82.184298; 54.850341, -82.183571; 54.845310, -82.182700; 54.837682, -82.182850; 54.832487, -82.184890; 54.827374, -82.185475; 54.820504, -82.187224; 54.814554, -82.187663; 54.807684, -82.189412; 54.804249, -82.190286; 54.799221, -82.189417; 54.798383, -82.189272; 54.792352, -82.191165; 54.784728, -82.191315; 54.780373, -82.193496; 54.776019, -82.195678; 54.770827, -82.197714; 54.767393, -82.198588; 54.758851, -82.200046; 54.753576, -82.203533; 54.750143, -82.204406; 54.746626, -82.206730; 54.742273, -82.208910; 54.738002, -82.209638; 54.737164, -82.209493; 54.730298, -82.211237; 54.721591, -82.215593; 54.713638, -82.221544; 54.709118, -82.226622; 54.706355, -82.230538; 54.702755, -82.234309; 54.699156, -82.238079; 54.692876, -82.244313; 54.689192, -82.249532; 54.683917, -82.253009; 54.675460, -82.253007; 54.664574, -82.251121; 54.654274, -82.253729; 54.645817, -82.253729; 54.638113, -82.255322; 54.633843, -

24 March 2016 – F-17 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 154: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

82.256046; 54.626054, -82.259087; 54.615586, -82.264584; 54.608551, -82.269215; 54.605117, -82.270083; 54.599003, -82.273409; 54.594563, -82.277025; 54.585851, -82.281363; 54.585013, -82.281218; 54.578229, -82.281506; 54.567172, -82.282516; 54.561225, -82.282949; 54.556867, -82.285119; 54.515843, -82.302045; 54.515121, -82.301919; 54.509051, -82.305890; 54.506015, -82.307874; 54.500668, -82.311969; 54.496188, -82.313702; 54.492431, -82.315560; 54.485712, -82.318158; 54.479066, -82.319512; 54.473865, -82.321117; 54.468015, -82.321353; 54.462960, -82.320474; 54.455017, -82.319092; 54.446279, -82.318828; 54.440429, -82.319065; 54.419854, -82.329855; 54.419086, -82.329722; 54.416283, -82.331234; 54.413518, -82.332086; 54.410292, -82.334189; 54.407105, -82.335633; 54.403918, -82.337077; 54.403073, -82.338261; 54.399042, -82.340888; 54.396584, -82.343122; 54.393399, -82.344565; 54.390980, -82.346140; 54.388946, -82.347782; 54.385721, -82.349882; 54.383725, -82.350865; 54.379695, -82.353489; 54.375782, -82.354138; 54.373058, -82.354329; 54.370757, -82.353928; 54.370374, -82.353861; 54.367150, -82.355959; 54.364655, -82.358848; 54.361893, -82.359697; 54.357136, -82.361526; 54.354758, -82.362441; 54.353185, -82.362832; 54.351190, -82.363813; 54.346779, -82.366366; 54.343939, -82.368528; 54.341522, -82.370099; 54.338722, -82.371604; 54.332777, -82.373887; 54.328483, -82.374466; 54.323805, -82.374978; 54.317783, -82.378574; 54.314561, -82.380667; 54.296800, -82.392827; 54.294805, -82.393805; 54.293155, -82.395507; 54.291466, -82.397865; 54.289698, -82.401536; 54.287125, -82.405729; 54.284669, -82.407953; 54.281024, -82.410631; 54.278686, -82.410884; 54.274127, -82.409422; 54.273743, -82.409355; 54.268457, -82.407103; 54.265008, -82.406500; 54.260871, -82.404450; 54.257117, -82.402468; 54.254169, -82.399964; 54.250798, -82.398049; 54.250032, -82.397915; 54.245856, -82.396523; 54.242062, -82.395198; 54.227259, -82.388749; 54.224168, -82.385393; 54.220994, -82.383430; 54.212205, -82.379079; 54.211473, -82.377545; 54.199511, -82.371238; 54.196421, -82.367887; 54.192516, -82.364395; 54.189508, -82.359655; 54.186500, -82.354914; 54.182760, -82.348643; 54.178938, -82.343764; 54.176012, -82.337637; 54.173003, -82.332901; 54.168449, -82.326494; 54.163730, -82.322869; 54.162102, -82.322587; 54.153479, -82.315480; 54.145587, -82.309905; 54.140868, -82.306285; 54.137045, -82.301417; 54.134686, -82.299608; 54.131513, -82.297659; 54.125981, -82.293902; 54.120366, -82.291535; 54.114916, -82.286392; 54.107919, -82.279583; 54.100272, -82.269862; 54.094170, -82.261811; 54.089532, -82.256815; 54.084731, -82.254595; 54.076920, -82.247659; 54.070572, -82.243777; 54.065933, -82.238786; 54.059748, -82.232133; 54.053644, -82.224096; 54.043550, -82.213987; 54.039723, -82.209141; 54.004144, -82.184950; 54.000235, -82.181495; 53.996245, -82.179426; 53.993230, -82.174725; 53.988587, -82.169751; 53.985571, -82.165051; 53.980846, -82.161463; 53.976041, -82.159259; 53.970341, -82.158304; 53.964721, -82.155965; 53.959180, -82.152243; 53.956002, -82.150314; 53.952009, -82.148250; 53.946468, -82.144530; 53.941580, -82.143713; 53.934248, -82.142487; 53.930174, -82.141807; 53.925285, -82.140990; 53.920396, -82.140174; 53.918767, -82.139902; 53.911592, -82.135913; 53.906703, -82.135098; 53.900262, -82.132629; 53.890480, -82.130999; 53.884038, -82.128531; 53.877595, -82.126063; 53.872782, -82.123868; 53.864866, -82.118368; 53.858660, -82.111760; 53.852214, -82.109296; 53.845847, -82.105451; 53.839399, -82.102988; 53.832054, -82.101771; 53.827157, -82.100959; 53.822259, -82.100148; 53.818993, -82.099607; 53.782941, -82.095402; 53.778641, -82.094690; 53.772619, -82.093694; 53.767374, -82.094295; 53.761185, -82.096210; 53.757660, -82.097095; 53.749666, -82.100178; 53.745112, -82.103829; 53.739698, -82.107338; 53.731619, -82.111871; 53.727065, -82.115520; 53.723371, -82.119310; 53.716842, -82.127033; 53.714008, -82.130964; 53.710228, -82.136206; 53.705589, -82.141303; 53.701202, -82.142041; 53.693373, -82.142205; 53.688125, -82.142799; 53.681848, -82.146154; 53.676515, -82.148200; 53.671958, -82.151840; 53.630666, -82.174272; 53.629805, -82.174129; 53.622747, -82.175881; 53.617411, -82.177921; 53.611298, -82.178366; 53.603546, -82.177074; 53.595709, -82.177232; 53.591402, -82.176514; 53.583648, -82.175223; 53.580202, -82.174649; 53.572448, -82.173358; 53.568140, -82.172641; 53.565555, -82.172211; 53.560470, -82.169902; 53.554438, -82.168899; 53.551937, -82.167021; 53.546074, -82.163121; 53.542712, -82.161100; 53.538401, -82.160384; 53.532451, -82.157934; 53.526500, -82.155484; 53.519686, -82.152892; 53.514596, -82.150587; 53.513734, -82.150444; 53.505971, -82.149157; 53.500795, -82.148300; 53.493198, -82.144119; 53.487326, -82.140225; 53.484043, -82.136760; 53.481538, -82.134885; 53.477307, -82.132725; 53.472991, -82.132011; 53.445733, -82.123762; 53.437990, -82.122487; 53.436884, -82.122305; 53.427038, -82.118809; 53.422831, -82.114369; 53.416194, -82.113278; 53.406238, -82.111643; 53.398494, -82.110371; 53.390750, -82.109100; 53.383113, -82.105975; 53.373264, -82.102488; 53.365627, -82.099365; 53.356775, -82.097916; 53.348031, -82.094614; 53.340283, -82.093347; 53.334749, -82.092443; 53.327001, -82.091177; 53.311504, -82.088646; 53.297110, -82.086298; 53.291574, -82.085395; 53.287144, -82.084673; 53.281606, -82.083770; 53.276069, -82.082868; 53.257369, -82.086154; 53.250742, -82.092072; 53.241433, -82.108050; 53.234398, -82.120894; 53.227566, -82.130268; 53.218048, -82.149691; 53.213287, -82.159398; 53.203969, -82.175342; 53.197132, -82.184699; 53.190090, -82.197515; 53.183252, -82.206866; 53.176619, -82.212753; 53.170191, -82.215179;

24 March 2016 – F-18 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 155: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

53.157130, -82.223487; 53.148422, -82.229023; 53.137639, -82.234211; 53.133285, -82.236977; 53.118146, -82.244925; 53.109642, -82.246996; 53.101139, -82.249067; 53.092635, -82.251137; 53.084337, -82.249753; 53.065872, -82.243190; 53.055498, -82.241462; 53.038898, -82.238700; 53.022295, -82.235938; 53.005691, -82.233179; 52.989084, -82.230420; 52.974551, -82.228008; 52.962711, -82.215608; 52.952944, -82.203557; 52.942970, -82.194953; 52.931122, -82.182568; 52.924242, -82.157103; 52.922978, -82.142992; 52.917962, -82.121316; 52.912538, -82.106527; 52.905033, -82.091402; 52.901480, -82.080399; 52.891690, -82.068383; 52.879817, -82.056032; 52.860223, -82.032019; 52.846459, -82.015906; 52.834771, -82.000135; 52.827042, -81.988477; 52.815148, -81.976153; 52.803251, -81.963834; 52.791349, -81.951518; 52.787185, -81.950850; 52.768833, -81.940975; 52.748196, -81.934205; 52.735888, -81.928771; 52.723578, -81.923340; 52.713352, -81.918244; 52.703316, -81.909715; 52.695556, -81.898087; 52.687795, -81.886462; 52.678524, -81.864213; 52.669055, -81.845400; 52.661475, -81.830352; 52.654082, -81.811874; 52.640800, -81.785550; 52.637192, -81.774597; 52.633014, -81.773940; 52.623137, -81.762006; 52.613255, -81.750073; 52.575748, -81.717140; 52.570261, -81.711531; 52.562962, -81.686553; 52.549904, -81.660714; 52.542331, -81.640485; 52.531877, -81.619831; 52.521682, -81.594455; 52.514098, -81.574247; 52.512004, -81.559628; 52.504679, -81.534676; 52.496823, -81.519216; 52.480073, -81.507222; 52.471439, -81.505958; 52.457050, -81.503844; 52.448417, -81.502575; 52.428273, -81.499616; 52.411008, -81.497082; 52.396619, -81.494972; 52.382231, -81.492860; 52.361573, -81.499336; 52.338551, -81.495950; 52.327040, -81.494256; 52.318406, -81.492986; 52.304273, -81.486162; 52.293017, -81.479761; 52.273381, -81.467388; 52.259245, -81.460580; 52.236218, -81.457223; 52.222081, -81.450426; 52.213700, -81.444466; 52.205319, -81.438509; 52.189058, -81.417194; 52.167032, -81.395056; 52.156016, -81.383993; 52.150506, -81.378461; 52.137108, -81.357595; 52.129216, -81.342263; 52.123953, -81.332043; 52.113672, -81.306912; 52.103380, -81.281780; 52.093329, -81.251964; 52.085663, -81.231959; 52.080876, -81.212366; 52.073928, -81.178275; 52.072494, -81.149689; 52.073457, -81.130898; 52.074655, -81.107404; 52.070080, -81.083108; 52.062376, -81.063107; 52.052018, -81.038015; 52.046719, -81.027821; 52.039003, -81.007835; 52.027928, -80.996854; 52.011541, -80.975685; 51.997803, -80.959618; 51.981403, -80.938467; 51.970307, -80.927489; 51.950778, -80.910662; 51.937018, -80.894618; 51.926142, -80.878967; 51.915035, -80.868015; 51.907042, -80.852762; 51.893938, -80.822650; 51.889497, -80.793703; 51.886827, -80.788619; 51.881932, -80.769063; 51.860773, -80.723717; 51.838255, -80.675167; 51.816402, -80.656966; 51.800051, -80.642573; 51.791080, -80.632216; 51.782109, -80.621866; 51.771543, -80.605196; 51.766189, -80.598386; 51.755342, -80.587817; 51.742759, -80.573975; 51.729896, -80.566225; 51.718629, -80.564792; 51.709383, -80.560565; 51.696666, -80.549795; 51.687422, -80.545577; 51.680055, -80.541598; 51.665324, -80.533644; 51.655941, -80.532467; 51.646560, -80.531291; 51.637460, -80.524056; 51.626486, -80.516591; 51.617528, -80.506337; 51.610590, -80.493308; 51.605384, -80.483532; 51.594271, -80.479112; 51.586768, -80.478184; 51.575516, -80.476793; 51.569749, -80.479123; 51.556904, -80.471462; 51.547809, -80.464266; 51.537120, -80.450803; 51.530041, -80.440827; 51.522682, -80.436894; 51.515183, -80.435982; 51.502061, -80.434390; 51.487065, -80.432574; 51.472070, -80.430762; 51.455200, -80.428727; 51.447703, -80.427823; 51.440205, -80.426919; 51.425351, -80.422100; 51.412231, -80.420525; 51.401125, -80.416166; 51.384537, -80.408127; 51.375586, -80.397979; 51.370523, -80.385274; 51.367333, -80.372795; 51.367612, -80.366779; 51.366294, -80.354525; 51.361505, -80.335817; 51.352826, -80.319683; 51.342546, -80.297331; 51.333864, -80.281216; 51.329064, -80.262541; 51.326408, -80.238080; 51.326544, -80.235077; 51.323882, -80.210627; 51.322684, -80.195402; 51.321350, -80.183181; 51.318678, -80.158742; 51.313725, -80.143102; 51.310511, -80.130677; 51.310645, -80.127676; 51.299934, -80.114412; 51.290831, -80.107362; 51.285475, -80.100735; 51.274629, -80.090483; 51.267661, -80.077661; 51.264309, -80.068254; 51.263224, -80.050069; 51.264534, -80.020108; 51.264925, -80.011120; 51.261827, -79.995730; 51.252976, -79.982724; 51.244122, -79.969723; 51.233522, -79.953531; 51.224536, -79.943536; 51.212056, -79.927155; 51.203195, -79.914179; 51.196079, -79.904400; 51.188962, -79.894623; 51.176473, -79.878270; 51.167731, -79.862324; 51.168236, -79.850368; 51.168992, -79.832433; 51.175244, -79.818082; 51.179244, -79.812499; 51.186869, -79.810300; 51.196243, -79.811289; 51.204242, -79.800116; 51.212487, -79.782958; 51.218607, -79.771581; 51.222974, -79.757015; 51.229336, -79.739649; 51.235572, -79.725273; 51.243436, -79.717073; 51.252809, -79.718046; 51.260306, -79.718824; 51.265806, -79.722403; 51.280431, -79.732949; 51.287804, -79.736726; 51.298679, -79.746889; 51.311426, -79.757253; 51.324171, -79.767623; 51.333416, -79.771607; 51.346530, -79.772988; 51.359644, -79.774370; 51.369258, -79.769356; 51.377122, -79.761141; 51.386734, -79.756123; 51.392723, -79.747707; 51.398711, -79.739289; 51.412680, -79.719639; 51.418666, -79.711214; 51.426767, -79.696973; 51.432509, -79.694552; 51.444355, -79.680692; 51.450217, -79.675262; 51.454326, -79.666631; 51.462663, -79.646357; 51.469002, -79.628891; 51.478967, -79.614811; 51.494671, -79.598289; 51.504276, -79.593224; 51.515637, -79.591357; 51.523132, -79.592120; 51.536368, -79.590443; 51.547849, -79.585562; 51.561322, -

24 March 2016 – F-19 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 156: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

79.577854; 51.567181, -79.572396; 51.578899, -79.561475; 51.588860, -79.547343; 51.596946, -79.533015; 51.605031, -79.518681; 51.614873, -79.507546; 51.624598, -79.499425; 51.628930, -79.484702; 51.633722, -79.457898; 51.638512, -79.431083; 51.668639, -79.367959; 51.673572, -79.352115; 51.676801, -79.343100; 51.677496, -79.324517; 51.677929, -79.312904; 51.676920, -79.301154; 51.670323, -79.284215; 51.665076, -79.269740; 51.661269, -79.255404; 51.660084, -79.248304; 51.657629, -79.236428; 51.656528, -79.227010; 51.653986, -79.217457; 51.648563, -79.207639; 51.646102, -79.195770; 51.646687, -79.179529; 51.647270, -79.163289; 51.650897, -79.142672; 51.651310, -79.131071; 51.655796, -79.126826; 51.663819, -79.104276; 51.668630, -79.090744; 51.673276, -79.081852; 51.676481, -79.072828; 51.688080, -79.071549; 51.696962, -79.065365; 51.706004, -79.054534; 51.714883, -79.048344; 51.725201, -79.042283; 51.735598, -79.033894; 51.744395, -79.030022; 51.753032, -79.030798; 51.760308, -79.029119; 51.764946, -79.020206; 51.769663, -79.008966; 51.775659, -79.002503; 51.780056, -79.000562; 51.786210, -78.989444; 51.787807, -78.984920; 51.791160, -78.971216; 51.791554, -78.959582; 51.791947, -78.947948; 51.792261, -78.938640; 51.794091, -78.927133; 51.795920, -78.915623; 51.799109, -78.906566; 51.803737, -78.897632; 51.807002, -78.886244; 51.813068, -78.877431; 51.820649, -78.866412; 51.825197, -78.859799; 51.831184, -78.853309; 51.840203, -78.842406; 51.848991, -78.838487; 51.860506, -78.839475; 51.870581, -78.840341; 51.873383, -78.842919; 51.884285, -78.862565; 51.895105, -78.884552; 51.905026, -78.890094; 51.909498, -78.885804; 51.912531, -78.881388; 51.935361, -78.874347; 51.929389, -78.873829; 51.937417, -78.857565; 51.943949, -78.841167; 51.950152, -78.834432; 51.956514, -78.822861; 51.959803, -78.813446; 51.960360, -78.796528; 51.962088, -78.789404; 51.966950, -78.777698; 51.979949, -78.744852; 51.982131, -78.723212; 51.991085, -78.723967; 51.999959, -78.727139; 52.007341, -78.730187; 52.016290, -78.730942; 52.029790, -78.729654; 52.041945, -78.723395; 52.048594, -78.702104; 52.051955, -78.690245; 52.053521, -78.687948; 52.061427, -78.674037; 52.066121, -78.667139; 52.070817, -78.660242; 52.077303, -78.643774; 52.082145, -78.632025; 52.083783, -78.627300; 52.091602, -78.615789; 52.103963, -78.602214; 52.110290, -78.590575; 52.122502, -78.581841; 52.137766, -78.570917; 52.146996, -78.561931; 52.151537, -78.559864; 52.161966, -78.560708; 52.176863, -78.561914; 52.190268, -78.562999; 52.191758, -78.563120; 52.204944, -78.571498; 52.209339, -78.574291; 52.219617, -78.579998; 52.230114, -78.578413; 52.236143, -78.576464; 52.243588, -78.577068; 52.252522, -78.577792; 52.265996, -78.576445; 52.279542, -78.572662; 52.282593, -78.570469; 52.294941, -78.556818; 52.307361, -78.540724; 52.314878, -78.538885; 52.319489, -78.534368; 52.328422, -78.535082; 52.340333, -78.536035; 52.349266, -78.536750; 52.364081, -78.540380; 52.383363, -78.544370; 52.392149, -78.549965; 52.405549, -78.551038; 52.411578, -78.549072; 52.417607, -78.547106; 52.425270, -78.540373; 52.432788, -78.538525; 52.437255, -78.538881; 52.446190, -78.539593; 52.452073, -78.542512; 52.466744, -78.551037; 52.475456, -78.559095; 52.487073, -78.569838; 52.498394, -78.590368; 52.503979, -78.603084; 52.506584, -78.615560; 52.506060, -78.632687; 52.513052, -78.647982; 52.519893, -78.668171; 52.522341, -78.685546; 52.524938, -78.698029; 52.526046, -78.710388; 52.528409, -78.730216; 52.533592, -78.755193; 52.537826, -78.762915; 52.542137, -78.768192; 52.549660, -78.766379; 52.578076, -78.799879; 52.573415, -78.799473; 52.579468, -78.805103; 52.585763, -78.803099; 52.599741, -78.804316; 52.613714, -78.805532; 52.626132, -78.806614; 52.633728, -78.812383; 52.639608, -78.823112; 52.646712, -78.844166; 52.652507, -78.857446; 52.663202, -78.863498; 52.672507, -78.864318; 52.682060, -78.857494; 52.686959, -78.850258; 52.693407, -78.843158; 52.702787, -78.841425; 52.713300, -78.852576; 52.717781, -78.858085; 52.722180, -78.866144; 52.728043, -78.876892; 52.732522, -78.882404; 52.738466, -78.890605; 52.750436, -78.904460; 52.761271, -78.905425; 52.767545, -78.903425; 52.772355, -78.898734; 52.777743, -78.876175; 52.786627, -78.841119; 52.793143, -78.831450; 52.804136, -78.827294; 52.810161, -78.832945; 52.815940, -78.846261; 52.824891, -78.857298; 52.845878, -78.879657; 52.853524, -78.882899; 52.859624, -78.886005; 52.871656, -78.897332; 52.877838, -78.897884; 52.893291, -78.899263; 52.899388, -78.902373; 52.905150, -78.915717; 52.897007, -78.927815; 52.884059, -78.944607; 52.874027, -78.966784; 52.873261, -78.989796; 52.877212, -79.010674; 52.884594, -79.021610; 52.896521, -79.035532; 52.907075, -79.044203; 52.917886, -79.045199; 52.925607, -79.045912; 52.934873, -79.046766; 52.942680, -79.044919; 52.945768, -79.045204; 52.961639, -79.033823; 52.973047, -79.016887; 52.989082, -79.000366; 52.998684, -78.990961; 53.009402, -78.994512; 53.021407, -79.005900; 53.027150, -79.019291; 53.032892, -79.032685; 53.037176, -79.043374; 53.044110, -79.067181; 53.049845, -79.080587; 53.058752, -79.091720; 53.066641, -79.087310; 53.069901, -79.082464; 53.079765, -79.065356; 53.094600, -79.038398; 53.102828, -79.023700; 53.107798, -79.013851; 53.109426, -79.011424; 53.117395, -79.004425; 53.132989, -79.000705; 53.143956, -78.996556; 53.154752, -78.997549; 53.162463, -78.998259; 53.174972, -78.994249; 53.185937, -78.990095; 53.196988, -78.983365; 53.203326, -78.978781; 53.217545, -78.969752; 53.220630, -78.970035; 53.233222, -78.963435; 53.244018, -78.964422; 53.257561, -78.976005; 53.269476, -78.990033; 53.273934, -78.995618; 53.278647, -78.993466; 53.289529, -78.991883;

24 March 2016 – F-20 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 157: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

53.295700, -78.992452; 53.303413, -78.993165; 53.309328, -79.001479; 53.312073, -79.012091; 53.318671, -79.046375; 53.325694, -79.067757; 53.334863, -79.071213; 53.339924, -79.058733; 53.348242, -79.041371; 53.348585, -79.031035; 53.353727, -79.015962; 53.359984, -79.013951; 53.370615, -79.020127; 53.373273, -79.033343; 53.377215, -79.054464; 53.376611, -79.072565; 53.390587, -79.071293; 53.395218, -79.071731; 53.400785, -79.090429; 53.401632, -79.111277; 53.405562, -79.132425; 53.409930, -79.140636; 53.421262, -79.126144; 53.424437, -79.123851; 53.431893, -79.132363; 53.439438, -79.138289; 53.449807, -79.152289; 53.457265, -79.160813; 53.464722, -79.169341; 53.470811, -79.172536; 53.481358, -79.181373; 53.488993, -79.184723; 53.498703, -79.172658; 53.508679, -79.152802; 53.526470, -79.131089; 53.535743, -79.131986; 53.541486, -79.145572; 53.548601, -79.164511; 53.551163, -79.180404; 53.551074, -79.183002; 53.566447, -79.187123; 53.582443, -79.173042; 53.588982, -79.163244; 53.592427, -79.153141; 53.597506, -79.140585; 53.601124, -79.125274; 53.613587, -79.123869; 53.635081, -79.131178; 53.645567, -79.142652; 53.647116, -79.142803; 53.653047, -79.151226; 53.663623, -79.160106; 53.671367, -79.160866; 53.676014, -79.161322; 53.685133, -79.167452; 53.689430, -79.178346; 53.699837, -79.192467; 53.699749, -79.195077; 53.713346, -79.206907; 53.719459, -79.210137; 53.741200, -79.240810; 53.750522, -79.241701; 53.766971, -79.239344; 53.785741, -79.237210; 53.795053, -79.238103; 53.806689, -79.239220; 53.818183, -79.244258; 53.836655, -79.249970; 53.838981, -79.250195; 53.848562, -79.243246; 53.854049, -79.220156; 53.854603, -79.204465; 53.848179, -79.188108; 53.839560, -79.167615; 53.842571, -79.148227; 53.852008, -79.145185; 53.872657, -79.155014; 53.881953, -79.155897; 53.886872, -79.148489; 53.905592, -79.146329; 53.912424, -79.150917; 53.914338, -79.162918; 53.930183, -79.176251; 53.941790, -79.177362; 53.951210, -79.174322; 53.958716, -79.159270; 53.959528, -79.135693; 53.962788, -79.108405; 53.970015, -79.101204; 53.994994, -79.119346; 53.996911, -79.131363; 54.000605, -79.159333; 53.999653, -79.186863; 53.994193, -79.210012; 53.993779, -79.221810; 53.993088, -79.241474; 53.994988, -79.253500; 54.001527, -79.265979; 54.014597, -79.290951; 54.023306, -79.307606; 54.032578, -79.308522; 54.041848, -79.309439; 54.051117, -79.310356; 54.067192, -79.315903; 54.075750, -79.336523; 54.081844, -79.360861; 54.083587, -79.376858; 54.082433, -79.408391; 54.082143, -79.416275; 54.085755, -79.444341; 54.089948, -79.456643; 54.098476, -79.477310; 54.105127, -79.485913; 54.118428, -79.503128; 54.138964, -79.513180; 54.143445, -79.517609; 54.173527, -79.520740; 54.185093, -79.521947; 54.208518, -79.516456; 54.213440, -79.509032; 54.225591, -79.494421; 54.241775, -79.496108; 54.255498, -79.501512; 54.259827, -79.509910; 54.265874, -79.534390; 54.284067, -79.544260; 54.286378, -79.544504; 54.300391, -79.542010; 54.310078, -79.531099; 54.314995, -79.523661; 54.324676, -79.512748; 54.336224, -79.513970; 54.351950, -79.527578; 54.358586, -79.536244; 54.372001, -79.549619; 54.383399, -79.554822; 54.394944, -79.556058; 54.404182, -79.557043; 54.411109, -79.557785; 54.420344, -79.558774; 54.434049, -79.564234; 54.442839, -79.577152; 54.447011, -79.589577; 54.457958, -79.606735; 54.464884, -79.607488; 54.478882, -79.605019; 54.488412, -79.598065; 54.500545, -79.583400; 54.509777, -79.584402; 54.518268, -79.605318; 54.522141, -79.625733; 54.524001, -79.637936; 54.532483, -79.658881; 54.541715, -79.659904; 54.553554, -79.653207; 54.563384, -79.638273; 54.568298, -79.630804; 54.579985, -79.628085; 54.589066, -79.633104; 54.596803, -79.674042; 54.599760, -79.718475; 54.601308, -79.738702; 54.607317, -79.763452; 54.614088, -79.768236; 54.627324, -79.785805; 54.636249, -79.794862; 54.647790, -79.796192; 54.657023, -79.797257; 54.671331, -79.786853; 54.683788, -79.764174; 54.694233, -79.733214; 54.707426, -79.690500; 54.717849, -79.659522; 54.733320, -79.617038; 54.748920, -79.570531; 54.768234, -79.484193; 54.778598, -79.453146; 54.806033, -79.421330; 54.806223, -79.416146; 54.807178, -79.390218; 54.814690, -79.349338; 54.819372, -79.302970; 54.824216, -79.251419; 54.828520, -79.215400; 54.829983, -79.173916; 54.833848, -79.148302; 54.837004, -79.143419; 54.841227, -79.107424; 54.841752, -79.091872; 54.851785, -79.061622; 54.855298, -79.046353; 54.861976, -79.026179; 54.868650, -79.006001; 54.881480, -78.981191; 54.888141, -78.961002; 54.891969, -78.935345; 54.895625, -78.914872; 54.899293, -78.894392; 54.902960, -78.873909; 54.910094, -78.838135; 54.913719, -78.817655; 54.920639, -78.787066; 54.930703, -78.751544; 54.937311, -78.731313; 54.944067, -78.705887; 54.947672, -78.685383; 54.951275, -78.664876; 54.961160, -78.634500; 54.964754, -78.613985; 54.971485, -78.588529; 54.978061, -78.568262; 54.984780, -78.542794; 54.991483, -78.517318; 55.001310, -78.486887; 55.004729, -78.471542; 55.008290, -78.450997; 55.014835, -78.430696; 55.024358, -78.410632; 55.034014, -78.385358; 55.046924, -78.349906; 55.050318, -78.334533; 55.059822, -78.314433; 55.072574, -78.284146; 55.085447, -78.248631; 55.098051, -78.223518; 55.107911, -78.187727; 55.120621, -78.157363; 55.130334, -78.126752; 55.142905, -78.101572; 55.155598, -78.071162; 55.165176, -78.045734; 55.174750, -78.020297; 55.184317, -77.994849; 55.193875, -77.969384; 55.203298, -77.949120; 55.212716, -77.928844; 55.219150, -77.908352; 55.228446, -77.893287; 55.231780, -77.877811; 55.241188, -77.857505; 55.253802, -77.826927; 55.262975, -77.817064; 55.275570, -77.786438; 55.287832, -77.771516; 55.290815, -77.771716; 55.300093, -77.756588; 55.318426, -77.736800; 55.327592, -

24 March 2016 – F-21 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 158: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

77.726900; 55.348909, -77.707291; 55.361373, -77.681812; 55.373624, -77.666828; 55.382888, -77.651638; 55.398325, -77.626306; 55.407585, -77.611097; 55.419927, -77.590801; 55.432266, -77.570489; 55.441417, -77.560513; 55.447684, -77.545075; 55.462901, -77.530190; 55.472250, -77.509660; 55.490641, -77.484374; 55.502867, -77.469257; 55.515377, -77.438275; 55.530675, -77.418012; 55.536926, -77.402497; 55.546158, -77.387147; 55.555390, -77.371792; 55.570680, -77.351471; 55.579908, -77.336090; 55.598363, -77.305336; 55.610664, -77.284832; 55.619887, -77.269444; 55.632269, -77.243567; 55.644471, -77.228263; 55.656759, -77.207648; 55.672031, -77.187174; 55.690286, -77.166838; 55.708540, -77.146466; 55.723807, -77.125904; 55.736087, -77.105187; 55.745296, -77.089638; 55.754505, -77.074072; 55.763630, -77.063822; 55.787853, -77.043592; 55.800127, -77.022801; 55.812239, -77.012664; 55.827419, -76.997316; 55.839612, -76.981815; 55.851805, -76.966297; 55.863997, -76.950768; 55.867065, -76.945545; 55.879257, -76.930000; 55.891448, -76.914443; 55.900651, -76.898739; 55.922042, -76.867441; 55.934232, -76.851834; 55.949413, -76.836327; 55.958612, -76.820581; 55.976861, -76.799776; 55.985987, -76.789359; 56.007159, -76.773989; 56.022275, -76.763748; 56.040384, -76.753625; 56.058493, -76.743496; 56.079675, -76.728059; 56.106777, -76.718199; 56.142947, -76.703224; 56.167142, -76.687800; 56.194268, -76.677854; 56.215404, -76.667695; 56.233471, -76.662845; 56.257543, -76.658174; 56.272619, -76.653209; 56.284697, -76.648146; 56.308783, -76.643443; 56.335957, -76.633366; 56.360214, -76.617721; 56.393573, -76.596833; 56.417851, -76.581110; 56.442036, -76.570897; 56.463229, -76.560554; 56.487301, -76.561177; 56.511384, -76.561788; 56.538487, -76.562467; 56.556562, -76.562915; 56.621495, -76.585826; 56.625963, -76.578051; 56.634745, -76.578403; 56.652304, -76.579105; 56.654498, -76.579192; 56.663312, -76.575562; 56.674279, -76.575998; 56.691904, -76.568735; 56.711714, -76.561551; 56.727135, -76.554186; 56.738130, -76.550630; 56.751275, -76.551142; 56.760037, -76.551483; 56.773139, -76.555981; 56.786237, -76.560481; 56.801522, -76.565068; 56.812426, -76.569486; 56.834306, -76.570339; 56.849620, -76.570936; 56.867116, -76.571617; 56.880236, -76.572126; 56.897725, -76.572805; 56.910839, -76.573313; 56.926189, -76.573978; 56.934927, -76.574315; 56.950217, -76.574903; 56.965491, -76.575470; 56.978577, -76.575948; 56.989532, -76.572353; 56.996176, -76.564609; 57.009426, -76.553135; 57.020390, -76.549555; 57.040033, -76.550295; 57.059672, -76.551032; 57.077025, -76.559670; 57.100833, -76.576587; 57.124618, -76.597597; 57.144118, -76.610414; 57.157116, -76.618965; 57.170156, -76.623496; 57.187555, -76.628198; 57.196275, -76.628537; 57.202816, -76.628791; 57.213716, -76.629214; 57.222436, -76.629553; 57.235426, -76.638121; 57.248460, -76.642661; 57.259313, -76.647119; 57.267941, -76.655526; 57.280927, -76.664110; 57.291824, -76.664539; 57.304945, -76.661017; 57.315842, -76.661445; 57.326692, -76.665913; 57.339724, -76.670516; 57.346120, -76.682850; 57.356922, -76.691367; 57.369950, -76.695932; 57.380798, -76.700413; 57.387288, -76.704720; 57.393777, -76.709029; 57.404529, -76.721610; 57.413197, -76.726012; 57.423996, -76.734553; 57.437062, -76.735143; 57.443595, -76.735430; 57.452291, -76.735883; 57.469716, -76.736608; 57.478374, -76.741040; 57.484907, -76.741316; 57.500025, -76.754051; 57.519468, -76.770998; 57.532448, -76.779652; 57.547558, -76.792464; 57.551868, -76.796707; 57.566967, -76.809556; 57.571229, -76.817861; 57.584156, -76.830614; 57.597081, -76.843380; 57.610062, -76.852080; 57.618729, -76.856533; 57.633834, -76.869418; 57.646758, -76.882216; 57.653195, -76.890654; 57.661760, -76.903266; 57.677028, -76.903956; 57.687826, -76.912605; 57.705280, -76.913398; 57.722722, -76.914202; 57.735631, -76.927063; 57.748623, -76.935827; 57.752989, -76.936028; 57.763835, -76.940626; 57.772452, -76.949207; 57.785482, -76.953912; 57.798419, -76.966793; 57.807106, -76.971290; 57.884148, -77.047382; 57.888319, -77.051574; 57.896662, -77.059962; 57.905061, -77.064373; 57.913459, -77.068786; 57.925797, -77.093326; 57.929733, -77.113456; 57.935780, -77.133704; 57.948224, -77.150309; 57.958612, -77.162831; 57.967006, -77.167273; 57.975340, -77.175695; 57.987841, -77.188336; 57.998283, -77.196903; 58.014947, -77.213785; 58.025390, -77.222352; 58.038006, -77.227052; 58.050437, -77.243734; 58.060689, -77.264301; 58.070875, -77.288875; 58.079135, -77.301351; 58.085281, -77.313709; 58.097633, -77.334443; 58.101792, -77.338692; 58.107874, -77.355060; 58.120483, -77.359816; 58.120416, -77.363817; 58.132831, -77.380581; 58.145053, -77.409363; 58.150723, -77.449793; 58.150657, -77.453797; 58.150322, -77.473819; 58.160551, -77.494510; 58.166825, -77.498918; 58.177188, -77.511613; 58.191708, -77.528596; 58.204256, -77.537434; 58.210460, -77.545868; 58.218636, -77.562474; 58.228992, -77.575205; 58.235047, -77.591684; 58.241100, -77.608169; 58.247152, -77.624661; 58.251014, -77.645034; 58.259175, -77.661682; 58.260906, -77.681918; 58.264813, -77.698277; 58.266546, -77.718521; 58.270400, -77.738922; 58.272130, -77.759174; 58.273941, -77.775414; 58.275748, -77.791653; 58.277551, -77.807894; 58.281467, -77.824293; 58.285384, -77.840697; 58.289297, -77.857105; 58.297193, -77.885904; 58.301260, -77.894271; 58.307374, -77.906837; 58.317468, -77.931811; 58.327643, -77.952774; 58.341885, -77.982147; 58.356205, -78.007513; 58.362226, -78.024163; 58.366299, -78.032579; 58.376639, -78.045545; 58.384961, -78.054326; 58.393109, -78.071187; 58.405493, -78.088407; 58.413715, -78.101238; 58.423972, -78.118298; 58.430074, -78.130969; 58.438212, -78.147875;

24 March 2016 – F-22 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 159: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

58.442103, -78.164426; 58.446082, -78.176934; 58.452095, -78.193684; 58.457923, -78.218531; 58.463842, -78.239347; 58.467907, -78.247827; 58.476021, -78.264773; 58.482198, -78.273438; 58.496502, -78.299095; 58.504640, -78.316111; 58.506763, -78.316303; 58.516756, -78.345719; 58.526925, -78.367027; 58.534878, -78.392222; 58.543016, -78.409301; 58.549022, -78.426182; 58.554931, -78.447138; 58.558902, -78.459759; 58.566843, -78.485018; 58.568875, -78.489300; 58.574779, -78.510293; 58.580776, -78.527220; 58.588609, -78.556598; 58.594410, -78.581707; 58.598275, -78.598455; 58.602137, -78.615204; 58.608131, -78.632189; 58.614225, -78.645102; 58.622244, -78.666403; 58.628437, -78.675247; 58.657110, -78.714452; 58.658782, -78.714611; 58.665291, -78.721653; 58.671886, -78.725494; 58.685253, -78.726771; 58.688773, -78.720678; 58.697393, -78.711857; 58.707592, -78.706399; 58.719280, -78.707514; 58.729117, -78.714889; 58.733947, -78.721787; 58.742024, -78.732217; 58.750009, -78.745863; 58.755015, -78.746347; 58.770209, -78.741377; 58.776970, -78.738811; 58.783730, -78.736245; 58.793824, -78.734001; 58.800493, -78.734648; 58.808917, -78.732241; 58.817341, -78.729834; 58.834184, -78.725019; 58.846024, -78.719718; 58.854441, -78.717310; 58.861281, -78.711519; 58.867944, -78.712166; 58.879514, -78.716518; 58.886087, -78.720387; 58.895901, -78.727804; 58.900719, -78.734737; 58.910353, -78.748608; 58.920074, -78.759263; 58.926286, -78.776044; 58.934249, -78.789773; 58.944324, -78.787544; 58.951605, -78.765622; 58.955375, -78.749821; 58.958968, -78.740470; 58.960984, -78.727726; 58.964662, -78.715145; 58.976917, -78.693694; 58.987499, -78.672076; 58.994580, -78.656582; 58.994922, -78.643668; 58.995432, -78.624298; 58.999265, -78.605245; 59.002928, -78.592647; 59.006756, -78.573591; 59.008914, -78.554380; 59.011399, -78.522250; 59.011481, -78.519021; 59.012052, -78.496421; 59.015620, -78.487044; 59.019589, -78.461522; 59.019828, -78.451836; 59.025293, -78.432919; 59.030755, -78.413997; 59.036136, -78.398300; 59.043020, -78.389209; 59.048241, -78.379966; 59.055201, -78.367639; 59.063820, -78.355456; 59.074023, -78.346648; 59.085962, -78.334751; 59.092762, -78.328873; 59.099562, -78.322993; 59.116177, -78.324467; 59.124789, -78.312256; 59.135135, -78.296947; 59.147141, -78.281776; 59.159069, -78.269835; 59.167599, -78.260839; 59.176054, -78.255079; 59.181111, -78.252271; 59.189639, -78.243265; 59.199975, -78.227910; 59.205251, -78.215362; 59.210600, -78.199566; 59.215874, -78.187011; 59.217897, -78.170921; 59.221578, -78.154976; 59.228651, -78.136055; 59.232257, -78.123345; 59.233989, -78.120236; 59.242788, -78.098191; 59.249783, -78.082496; 59.255185, -78.063410; 59.260376, -78.054067; 59.272555, -78.029002; 59.282933, -78.010292; 59.291444, -78.001197; 59.299954, -77.992098; 59.303344, -77.989108; 59.315109, -77.983521; 59.320161, -77.980661; 59.358947, -77.929504; 59.361945, -77.918888; 59.372515, -77.941309; 59.382839, -77.974568; 59.388118, -77.985795; 59.410196, -77.987415; 59.421231, -77.988228; 59.435022, -77.989248; 59.448931, -77.984849; 59.460080, -77.980244; 59.474102, -77.970420; 59.490995, -77.955368; 59.502369, -77.939905; 59.513854, -77.919010; 59.525677, -77.881823; 59.531527, -77.865936; 59.540240, -77.844815; 59.559734, -77.835334; 59.584506, -77.837104; 59.598264, -77.838091; 59.603765, -77.838490; 59.625771, -77.840077; 59.642275, -77.841266; 59.653274, -77.842063; 59.667023, -77.843060; 59.680770, -77.844058; 59.689015, -77.844661; 59.697263, -77.845258; 59.708367, -77.840610; 59.725075, -77.830905; 59.739032, -77.820997; 59.741779, -77.821197; 59.758586, -77.806025; 59.767042, -77.795705; 59.778243, -77.785578; 59.792186, -77.775649; 59.795356, -77.753995; 59.795879, -77.726684; 59.793444, -77.710107; 59.785720, -77.682232; 59.775243, -77.654186; 59.778589, -77.621634; 59.779082, -77.594354; 59.782218, -77.572712; 59.782990, -77.529059; 59.783655, -77.490864; 59.786774, -77.469216; 59.789797, -77.453022; 59.809095, -77.448795; 59.814585, -77.449142; 59.825470, -77.455299; 59.839100, -77.461636; 59.849707, -77.484198; 59.857571, -77.506583; 59.876499, -77.524240; 59.887475, -77.524961; 59.903936, -77.526044; 59.915098, -77.515818; 59.929278, -77.489333; 59.932297, -77.473081; 59.938055, -77.457004; 59.943901, -77.435444; 59.949743, -77.413878; 59.963459, -77.414737; 59.971509, -77.426218; 59.976726, -77.443017; 59.981849, -77.465308; 59.984134, -77.492913; 59.989249, -77.515221; 59.991617, -77.537353; 59.999372, -77.565352; 60.004378, -77.593179; 60.003797, -77.626125; 60.008890, -77.648473; 60.019365, -77.676718; 60.032677, -77.699684; 60.043647, -77.700475; 60.060202, -77.696160; 60.071371, -77.685945; 60.079698, -77.681031; 60.090963, -77.665302; 60.099485, -77.649369; 60.110648, -77.639130; 60.127003, -77.645811; 60.135131, -77.651917; 60.142767, -77.685590; 60.150496, -77.713761; 60.160962, -77.742170; 60.171626, -77.759553; 60.185338, -77.760583; 60.201995, -77.750771; 60.207682, -77.740128; 60.213568, -77.718425; 60.208480, -77.695897; 60.208973, -77.668280; 60.212202, -77.640864; 60.223364, -77.630599; 60.237363, -77.614994; 60.259681, -77.594423; 60.265166, -77.594808; 60.276232, -77.590041; 60.292684, -77.591203; 60.306302, -77.597713; 60.322473, -77.615504; 60.333063, -77.638474; 60.338261, -77.655518; 60.387037, -77.758810; 60.392446, -77.770520; 60.409297, -77.771800; 60.417724, -77.772440; 60.429055, -77.767648; 60.449113, -77.746541; 60.463242, -77.741949; 60.488787, -77.726888; 60.497197, -77.727521; 60.508304, -77.734022; 60.519408, -77.740526; 60.527601, -77.752483; 60.532783, -77.775553; 60.540336, -77.821495; 60.545398, -77.850244; 60.547760, -77.873116; 60.553139, -

24 March 2016 – F-23 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 160: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

77.884886; 60.567023, -77.891662; 60.581235, -77.881439; 60.589847, -77.870766; 60.590494, -77.836751; 60.593728, -77.814291; 60.607923, -77.804033; 60.618998, -77.810573; 60.635775, -77.811875; 60.647065, -77.807067; 60.658248, -77.807935; 60.669641, -77.797442; 60.681240, -77.775577; 60.689937, -77.759170; 60.698838, -77.731385; 60.704632, -77.720437; 60.715908, -77.715593; 60.724080, -77.727603; 60.726353, -77.756262; 60.733994, -77.796736; 60.739259, -77.814242; 60.746875, -77.854741; 60.752016, -77.877955; 60.756723, -77.923947; 60.761765, -77.952865; 60.761094, -77.987026; 60.765756, -78.033040; 60.764926, -78.072901; 60.764323, -78.101375; 60.761038, -78.123916; 60.757377, -78.163538; 60.751157, -78.191525; 60.747854, -78.214056; 60.738568, -78.253172; 60.732339, -78.281131; 60.726235, -78.303389; 60.717071, -78.336766; 60.713747, -78.359269; 60.707490, -78.387198; 60.700953, -78.426497; 60.700263, -78.454942; 60.699285, -78.494766; 60.698008, -78.545974; 60.699789, -78.586082; 60.698912, -78.620230; 60.701117, -78.643273; 60.711544, -78.672857; 60.725352, -78.679960; 60.742099, -78.681653; 60.756350, -78.671663; 60.767956, -78.655683; 60.776766, -78.639417; 60.785862, -78.611738; 60.791875, -78.595181; 60.798171, -78.567208; 60.804748, -78.527812; 60.810608, -78.516942; 60.814097, -78.488679; 60.826353, -78.444093; 60.832473, -78.421792; 60.838724, -78.393775; 60.850540, -78.366273; 60.856775, -78.338238; 60.863003, -78.310196; 60.869223, -78.282146; 60.878094, -78.260055; 60.890124, -78.221059; 60.893286, -78.204162; 60.902265, -78.176323; 60.908333, -78.153943; 60.919959, -78.132047; 60.931456, -78.115860; 60.940170, -78.099420; 60.951784, -78.077488; 60.960617, -78.055300; 60.966420, -78.044323; 60.980674, -78.028329; 60.997710, -78.012556; 61.017646, -77.991264; 61.023438, -77.980260; 61.034906, -77.963979; 61.049151, -77.947918; 61.068954, -77.932302; 61.085972, -77.916441; 61.094645, -77.899883; 61.103206, -77.889066; 61.117434, -77.872943; 61.134330, -77.862785; 61.151331, -77.846859; 61.162664, -77.836233; 61.176880, -77.820059; 61.182651, -77.808976; 61.193978, -77.798327; 61.202736, -77.775919; 61.211385, -77.759268; 61.222499, -77.760132; 61.236286, -77.766986; 61.255525, -77.780056; 61.261081, -77.780492; 61.272193, -77.781365; 61.283305, -77.782239; 61.297194, -77.783331; 61.319415, -77.785081; 61.333197, -77.791965; 61.344307, -77.792844; 61.352640, -77.793503; 61.366422, -77.800398; 61.383086, -77.801722; 61.399749, -77.803047; 61.413636, -77.804152; 61.424745, -77.805037; 61.430299, -77.805479; 61.441514, -77.800556; 61.458178, -77.801882; 61.469287, -77.802767; 61.485845, -77.809914; 61.496742, -77.822443; 61.504860, -77.834756; 61.518640, -77.841703; 61.526972, -77.842379; 61.537867, -77.854936; 61.548869, -77.861672; 61.565535, -77.863037; 61.579424, -77.864175; 61.593314, -77.865315; 61.612760, -77.866912; 61.623764, -77.873670; 61.636889, -77.915744; 61.644781, -77.939837; 61.652781, -77.958093; 61.658114, -77.970270; 61.660326, -77.999766; 61.668091, -78.029755; 61.681755, -78.042689; 61.695765, -78.038059; 61.715336, -78.033916; 61.732013, -78.035388; 61.745911, -78.036616; 61.759811, -78.037846; 61.770932, -78.038830; 61.782053, -78.039816; 61.790168, -78.052314; 61.800944, -78.070947; 61.814499, -78.089846; 61.819827, -78.102118; 61.833736, -78.103385; 61.847646, -78.104654; 61.864336, -78.106176; 61.875578, -78.101293; 61.889609, -78.096665; 61.900858, -78.091779; 61.914778, -78.093048; 61.928586, -78.100226; 61.939725, -78.101247; 61.953419, -78.114349; 61.967113, -78.127465; 61.978020, -78.140334; 61.988927, -78.153213; 61.999953, -78.160181; 62.013888, -78.161491; 62.027824, -78.162803; 62.044670, -78.158447; 62.053034, -78.159234; 62.064188, -78.160285; 62.078133, -78.161600; 62.094872, -78.163182; 62.111615, -78.164766; 62.125573, -78.166090; 62.136741, -78.167150; 62.153381, -78.174700; 62.167346, -78.176031; 62.175725, -78.176831; 62.192487, -78.178431; 62.209251, -78.180033; 62.220658, -78.169154; 62.231843, -78.170221; 62.245941, -78.165577; 62.257130, -78.166645; 62.271355, -78.156012; 62.282673, -78.151093; 62.372519, -78.135447; 62.376362, -78.127814; 62.380284, -78.116201; 62.389805, -78.101088; 62.393644, -78.093448; 62.403320, -78.070351; 62.407157, -78.062708; 62.411072, -78.051077; 62.416744, -78.043597; 62.424412, -78.028304; 62.426485, -78.016504; 62.426875, -77.996566; 62.427416, -77.968660; 62.429560, -77.952877; 62.431702, -77.937093; 62.432162, -77.913106; 62.434597, -77.881381; 62.440546, -77.857992; 62.442680, -77.842165; 62.444885, -77.822342; 62.450678, -77.806914; 62.461978, -77.791954; 62.469324, -77.792556; 62.476813, -77.785187; 62.488043, -77.774127; 62.495670, -77.758774; 62.503293, -77.743416; 62.509421, -77.707959; 62.509967, -77.675970; 62.513840, -77.664300; 62.517846, -77.644626; 62.523617, -77.629112; 62.531222, -77.613695; 62.536860, -77.606127; 62.546102, -77.602887; 62.555410, -77.595692; 62.560982, -77.592121; 62.571996, -77.592967; 62.577632, -77.585401; 62.579787, -77.565568; 62.585673, -77.542017; 62.589532, -77.530310; 62.589781, -77.514329; 62.595535, -77.498758; 62.597676, -77.478918; 62.599935, -77.451090; 62.600354, -77.423131; 62.600531, -77.411149; 62.597154, -77.390920; 62.588153, -77.378302; 62.582937, -77.357966; 62.577604, -77.345618; 62.574219, -77.325423; 62.570831, -77.305236; 62.567496, -77.281066; 62.562378, -77.252800; 62.560815, -77.232752; 62.559304, -77.208724; 62.559411, -77.200755; 62.559623, -77.184816; 62.558051, -77.164780; 62.556528, -77.140764; 62.554796, -77.132685; 62.553420, -77.096729; 62.553570, -77.084781; 62.553770, -77.068851; 62.553918, -77.056904; 62.554211, -77.033012;

24 March 2016 – F-24 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 161: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

62.554501, -77.009119; 62.549377, -76.976935; 62.545941, -76.956810; 62.542458, -76.940672; 62.537185, -76.920455; 62.535487, -76.908416; 62.535755, -76.884571; 62.534140, -76.864615; 62.534313, -76.848728; 62.534528, -76.828849; 62.532906, -76.808868; 62.529406, -76.792769; 62.525864, -76.780646; 62.520570, -76.760484; 62.515305, -76.736395; 62.513589, -76.724390; 62.508284, -76.704262; 62.504771, -76.688197; 62.495791, -76.667917; 62.494033, -76.659888; 62.486773, -76.651616; 62.481388, -76.639458; 62.475952, -76.631278; 62.470631, -76.611192; 62.463480, -76.591036; 62.461759, -76.579058; 62.458243, -76.563042; 62.454830, -76.535137; 62.453105, -76.523173; 62.451512, -76.495351; 62.449827, -76.475433; 62.449965, -76.455567; 62.446505, -76.427642; 62.444794, -76.411708; 62.441252, -76.395720; 62.439512, -76.383766; 62.434169, -76.363774; 62.426973, -76.347720; 62.421742, -76.315940; 62.416361, -76.303961; 62.411003, -76.288023; 62.409139, -76.267761; 62.405570, -76.251785; 62.403831, -76.235861; 62.400284, -76.215929; 62.398546, -76.200023; 62.395021, -76.176145; 62.391426, -76.164171; 62.382425, -76.136229; 62.375230, -76.108285; 62.375258, -76.100321; 62.371638, -76.088309; 62.369884, -76.072415; 62.366292, -76.056478; 62.362743, -76.036660; 62.359163, -76.012743; 62.359215, -76.000852; 62.359305, -75.981049; 62.359369, -75.969207; 62.355794, -75.953382; 62.350354, -75.941447; 62.344935, -75.921561; 62.341292, -75.905541; 62.335842, -75.889589; 62.332210, -75.877632; 62.326756, -75.861686; 62.321289, -75.849717; 62.317662, -75.833797; 62.314049, -75.809934; 62.310438, -75.782098; 62.308625, -75.774156; 62.305008, -75.758314; 62.305069, -75.734563; 62.303286, -75.714768; 62.301509, -75.691014; 62.301534, -75.679136; 62.301565, -75.663297; 62.301587, -75.651416; 62.301610, -75.627580; 62.299785, -75.611667; 62.283217, -75.522527; 62.295418, -75.505008; 62.311677, -75.478663; 62.323835, -75.443321; 62.331907, -75.407890; 62.331801, -75.363449; 62.331680, -75.319027; 62.327501, -75.283451; 62.315144, -75.238948; 62.302750, -75.203056; 62.290295, -75.166907; 62.286223, -75.123502; 62.286056, -75.079345; 62.285823, -75.026311; 62.285614, -74.982131; 62.285438, -74.946803; 62.289367, -74.920311; 62.289128, -74.876179; 62.288978, -74.849712; 62.296850, -74.805573; 62.296633, -74.770300; 62.296292, -74.717410; 62.295935, -74.664559; 62.287563, -74.629436; 62.283245, -74.594290; 62.266540, -74.532993; 62.262183, -74.497825; 62.261826, -74.453916; 62.269677, -74.418756; 62.281551, -74.383393; 62.293494, -74.356790; 62.305511, -74.338950; 62.321587, -74.321008; 62.341639, -74.294164; 62.349336, -74.250011; 62.357108, -74.214639; 62.360812, -74.179372; 62.360356, -74.135438; 62.372132, -74.099842; 62.379820, -74.064299; 62.387679, -74.037784; 62.403660, -74.011005; 62.419494, -73.975287; 62.435528, -73.957128; 62.451562, -73.938953; 62.467383, -73.903155; 62.471010, -73.867790; 62.478671, -73.832215; 62.482179, -73.788069; 62.485671, -73.743917; 62.485202, -73.708724; 62.472508, -73.674010; 62.459932, -73.648122; 62.443431, -73.631257; 62.434981, -73.605392; 62.422320, -73.570914; 62.405518, -73.528028; 62.405025, -73.493033; 62.400454, -73.458228; 62.391691, -73.414919; 62.383053, -73.380394; 62.378459, -73.345658; 62.373722, -73.302204; 62.364922, -73.259026; 62.364213, -73.215373; 62.359588, -73.180721; 62.358858, -73.137097; 62.346121, -73.103028; 62.333379, -73.068998; 62.316889, -73.052701; 62.304597, -73.044842; 62.288114, -73.028587; 62.287348, -72.985114; 62.290458, -72.932660; 62.293708, -72.888895; 62.293226, -72.862820; 62.292576, -72.828059; 62.283998, -72.802634; 62.267330, -72.777872; 62.246789, -72.762145; 62.226251, -72.746443; 62.209757, -72.730439; 62.197303, -72.714122; 62.180809, -72.698156; 62.168356, -72.681875; 62.147657, -72.657654; 62.139241, -72.641069; 62.142586, -72.606187; 62.149783, -72.562313; 62.153287, -72.536051; 62.164682, -72.500421; 62.167994, -72.465506; 62.155336, -72.440714; 62.142493, -72.407321; 62.125983, -72.391589; 62.113507, -72.375494; 62.096808, -72.351184; 62.080299, -72.335515; 62.067443, -72.302270; 62.054773, -72.277656; 62.042101, -72.253065; 62.029427, -72.228499; 62.012915, -72.212945; 61.996207, -72.188833; 61.983527, -72.164339; 61.967014, -72.148851; 61.950303, -72.124819; 61.933589, -72.100817; 61.924724, -72.067441; 61.919880, -72.033658; 61.910993, -72.000313; 61.898090, -71.967447; 61.885383, -71.943143; 61.861228, -71.945796; 61.849775, -71.972706; 61.842539, -72.007675; 61.835327, -72.042671; 61.811174, -72.045239; 61.795074, -72.046949; 61.778361, -72.023126; 61.743693, -71.971302; 61.743225, -71.954288; 61.742281, -71.920265; 61.737099, -71.878148; 61.736141, -71.844165; 61.731187, -71.810600; 61.714498, -71.786743; 61.701803, -71.762520; 61.688861, -71.729856; 61.671685, -71.689194; 61.666960, -71.664251; 61.657998, -71.631293; 61.649030, -71.598364; 61.639804, -71.557027; 61.634818, -71.523757; 61.621857, -71.491382; 61.609407, -71.475887; 61.589259, -71.469735; 61.557185, -71.464963; 61.541280, -71.466784; 61.521401, -71.469059; 61.509477, -71.470430; 61.498310, -71.496960; 61.491613, -71.539807; 61.493098, -71.590155; 61.481171, -71.591476; 61.464286, -71.559705; 61.451869, -71.544286; 61.439700, -71.537254; 61.419837, -71.539508; 61.404194, -71.549676; 61.388307, -71.551475; 61.379380, -71.518954; 61.374169, -71.477654; 61.368949, -71.436387; 61.352067, -71.404904; 61.335690, -71.390124; 61.315855, -71.392495; 61.299988, -71.394394; 61.284123, -71.396296; 61.264294, -71.398669; 61.248433, -71.400573; 61.232573, -71.402478; 61.220180, -71.387312; 61.203322, -71.356067; 61.194640, -71.332173; 61.192862, -71.274196; 61.191061, -

24 March 2016 – F-25 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 162: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

71.216256; 61.189499, -71.166622; 61.184489, -71.134057; 61.171819, -71.110807; 61.151220, -71.088557; 61.142501, -71.064808; 61.141160, -71.023548; 61.131634, -70.975199; 61.129737, -70.917619; 61.128912, -70.892916; 61.123850, -70.860539; 61.114262, -70.812238; 61.112580, -70.762958; 61.099018, -70.715360; 61.090256, -70.691866; 61.077539, -70.668962; 61.068195, -70.629116; 61.067032, -70.596325; 61.069813, -70.562955; 61.076535, -70.528993; 61.087198, -70.494427; 61.101500, -70.451047; 61.112142, -70.416444; 61.119130, -70.390633; 61.112423, -70.317470; 61.106613, -70.268927; 61.100791, -70.220425; 61.099217, -70.179509; 61.097632, -70.138606; 61.084527, -70.107858; 61.064170, -70.094782; 61.051696, -70.080397; 61.054675, -70.055255; 61.073750, -70.035653; 61.080340, -70.001667; 61.071474, -69.978491; 61.062605, -69.955331; 61.056355, -69.898890; 61.055027, -69.866267; 61.056962, -69.816663; 61.059894, -69.791518; 61.079264, -69.779926; 61.094693, -69.769013; 61.113383, -69.741065; 61.111672, -69.700237; 61.109259, -69.643101; 61.107522, -69.602301; 61.101833, -69.562228; 61.092899, -69.539200; 61.072143, -69.518350; 61.051740, -69.505672; 61.035277, -69.492288; 61.018460, -69.470791; 61.000928, -69.433076; 60.991262, -69.393930; 60.978009, -69.363670; 60.964389, -69.325327; 60.947188, -69.295875; 60.935015, -69.290016; 60.914607, -69.277563; 60.894930, -69.281312; 60.875254, -69.285058; 60.859513, -69.288053; 60.843773, -69.291043; 60.828032, -69.294031; 60.808721, -69.305834; 60.797278, -69.316138; 60.777964, -69.327919; 60.763307, -69.355067; 60.752937, -69.389519; 60.742558, -69.423949; 60.736106, -69.457634; 60.729997, -69.499367; 60.727462, -69.532320; 60.728857, -69.564545; 60.726654, -69.605515; 60.728028, -69.637801; 60.725458, -69.670751; 60.706451, -69.690312; 60.693955, -69.676296; 60.677518, -69.663009; 60.660049, -69.625620; 60.642918, -69.596286; 60.622881, -69.591796; 60.607127, -69.594633; 60.591717, -69.605493; 60.576305, -69.616345; 60.557298, -69.635893; 60.500501, -69.734720; 60.493501, -69.711779; 60.483534, -69.689351; 60.470870, -69.673419; 60.461174, -69.657003; 60.448781, -69.647071; 60.433430, -69.637656; 60.418084, -69.628252; 60.402742, -69.618861; 60.390634, -69.614930; 60.377993, -69.599101; 60.356480, -69.584818; 60.337661, -69.564107; 60.325300, -69.554278; 60.312942, -69.544459; 60.297361, -69.529233; 60.287962, -69.518922; 60.275613, -69.509137; 60.260313, -69.499879; 60.251189, -69.495514; 60.239387, -69.497588; 60.221691, -69.500699; 60.206946, -69.503289; 60.192206, -69.505876; 60.177470, -69.508463; 60.162737, -69.511048; 60.148008, -69.513632; 60.133282, -69.516213; 60.121503, -69.518277; 60.106784, -69.520856; 60.095278, -69.528805; 60.080832, -69.537263; 60.069330, -69.545201; 60.057829, -69.553133; 60.043654, -69.567448; 60.032155, -69.575365; 60.017718, -69.583787; 60.005958, -69.585823; 59.988321, -69.588875; 59.970687, -69.591923; 59.958141, -69.576372; 59.950938, -69.548095; 59.944000, -69.525693; 59.937059, -69.503303; 59.924778, -69.493666; 59.913032, -69.495735; 59.898352, -69.498319; 59.883676, -69.500903; 59.869002, -69.503485; 59.860198, -69.505034; 59.848194, -69.501260; 59.835659, -69.485824; 59.820459, -69.476753; 59.808461, -69.473000; 59.796731, -69.475075; 59.785536, -69.488798; 59.774340, -69.502512; 59.763144, -69.516216; 59.751682, -69.524093; 59.740221, -69.531966; 59.728496, -69.534018; 59.716772, -69.536069; 59.707453, -69.525990; 59.703465, -69.503268; 59.699469, -69.480548; 59.686951, -69.465204; 59.672037, -69.461999; 59.657124, -69.458798; 59.639551, -69.461916; 59.627836, -69.463993; 59.610266, -69.467109; 59.593227, -69.481796; 59.584972, -69.494919; 59.574051, -69.514337; 59.566057, -69.533233; 59.558583, -69.563687; 59.553770, -69.587840; 59.546283, -69.618277; 59.544131, -69.636132; 59.539562, -69.666053; 59.531797, -69.690663; 59.522758, -69.686396; 59.510018, -69.665282; 59.497533, -69.649959; 59.482636, -69.646700; 59.473594, -69.642438; 59.458696, -69.639186; 59.446727, -69.635433; 59.435015, -69.637447; 59.422789, -69.627933; 59.410563, -69.618429; 59.398078, -69.603183; 59.393856, -69.574910; 59.392814, -69.551889; 59.394435, -69.522613; 59.393122, -69.493848; 59.383024, -69.466643; 59.386837, -69.403706; 59.382527, -69.389860; 59.380807, -69.353677; 59.378731, -69.310285; 59.373370, -69.274797; 59.361113, -69.247869; 59.348855, -69.220975; 59.333329, -69.201981; 59.317452, -69.175815; 59.302279, -69.164066; 59.287108, -69.152344; 59.271586, -69.133451; 59.252451, -69.115265; 59.236578, -69.089263; 59.224319, -69.062609; 59.215671, -69.035309; 59.206307, -68.993732; 59.204157, -68.950818; 59.199466, -68.930061; 59.197659, -68.894332; 59.193323, -68.880743; 59.174185, -68.862825; 59.155411, -68.852066; 59.133393, -68.849155; 59.108128, -68.854078; 59.082863, -68.859003; 59.072035, -68.861121; 59.065176, -68.869635; 59.051097, -68.879560; 59.033406, -68.890188; 59.019322, -68.900110; 59.004881, -68.902920; 58.983573, -68.914230; 58.969130, -68.917042; 58.954333, -68.912763; 58.934508, -68.880852; 58.933797, -68.866682; 58.932371, -68.838355; 58.934189, -68.802251; 58.939604, -68.765440; 58.937792, -68.730078; 58.943549, -68.700354; 58.941719, -68.665017; 58.940249, -68.636762; 58.935167, -68.609252; 58.929338, -68.567651; 58.916663, -68.534615; 58.907586, -68.500875; 58.895276, -68.474951; 58.882962, -68.449053; 58.874625, -68.429461; 58.854344, -68.391077; 58.846381, -68.378547; 58.834817, -68.366786; 58.815668, -68.349547; 58.800119, -68.331572; 58.788551, -68.319862; 58.769399, -68.302695; 58.750628, -68.292533; 58.728255, -68.283160; 58.702278, -68.274583; 58.683503, -68.264482; 58.664343, -68.247425;

24 March 2016 – F-26 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 163: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

58.641962, -68.238139; 58.626783, -68.227316; 58.615592, -68.222679; 58.592437, -68.199524; 58.580858, -68.187959; 58.564903, -68.163292; 58.556923, -68.150971; 58.558587, -68.115466; 58.570654, -68.070648; 58.573079, -68.049032; 58.582305, -68.018885; 58.591124, -67.981798; 58.589134, -67.947110; 58.583535, -67.913247; 58.574733, -67.887139; 58.569523, -67.860238; 58.563090, -67.812589; 58.550262, -67.780445; 58.530644, -67.756879; 58.515027, -67.739434; 58.494988, -67.709028; 58.482960, -67.690806; 58.475351, -67.685565; 58.459721, -67.668195; 58.454468, -67.641454; 58.448793, -67.607843; 58.447124, -67.580297; 58.438254, -67.554438; 58.432133, -67.513998; 58.420497, -67.502776; 58.405686, -67.499279; 58.391297, -67.502656; 58.372885, -67.500005; 58.360400, -67.475077; 58.358276, -67.440768; 58.356144, -67.406467; 58.354002, -67.372177; 58.359475, -67.343037; 58.375294, -67.304454; 58.391524, -67.272724; 58.397404, -67.250419; 58.398810, -67.215260; 58.405118, -67.199805; 58.418607, -67.182606; 58.435239, -67.157667; 58.455896, -67.138699; 58.469366, -67.121470; 58.483277, -67.111095; 58.504362, -67.098960; 58.517818, -67.081704; 58.530820, -67.057563; 58.543365, -67.026535; 58.545142, -66.998158; 58.539287, -66.964691; 58.526709, -66.939893; 58.518167, -66.921085; 58.519003, -66.879006; 58.521667, -66.864382; 58.529649, -66.820503; 58.542126, -66.789434; 58.551943, -66.772985; 58.561290, -66.749664; 58.581375, -66.723597; 58.591649, -66.713989; 58.605032, -66.696591; 58.618410, -66.679182; 58.628676, -66.669556; 58.646099, -66.658088; 58.666624, -66.638809; 58.684040, -66.627318; 58.697399, -66.609855; 58.707655, -66.600194; 58.721963, -66.596493; 58.738890, -66.578078; 58.756771, -66.573439; 58.774650, -66.568795; 58.794665, -66.542510; 58.811097, -66.517135; 58.830612, -66.483897; 58.843455, -66.459415; 58.849632, -66.443714; 58.851746, -66.422042; 58.848817, -66.380591; 58.846367, -66.346055; 58.841319, -66.326292; 58.828631, -66.301541; 58.820005, -66.282751; 58.814452, -66.256115; 58.823181, -66.225636; 58.832400, -66.202044; 58.845186, -66.177472; 58.854395, -66.153855; 58.864103, -66.137131; 58.880446, -66.111539; 58.894726, -66.107634; 58.909006, -66.103726; 58.924294, -66.113647; 58.939580, -66.123578; 58.969649, -66.136539; 58.991572, -66.137613; 59.005852, -66.133707; 59.015051, -66.109971; 59.013031, -66.082235; 59.021713, -66.051547; 59.026818, -66.021833; 59.043644, -66.003010; 59.057410, -65.992102; 59.074232, -65.973247; 59.087995, -65.962318; 59.111438, -65.934481; 59.125713, -65.930477; 59.143043, -65.918511; 59.163426, -65.898565; 59.181271, -65.893533; 59.195548, -65.889503; 59.206255, -65.886478; 59.231241, -65.879413; 59.245521, -65.875371; 59.263371, -65.870313; 59.275578, -65.838323; 59.281158, -65.815334; 59.290306, -65.791315; 59.298405, -65.753305; 59.303449, -65.723294; 59.312582, -65.699230; 59.329905, -65.687068; 59.343658, -65.675929; 59.357412, -65.664780; 59.370637, -65.646618; 59.387434, -65.627395; 59.408860, -65.621128; 59.430289, -65.614851; 59.448149, -65.609613; 59.466012, -65.604367; 59.478710, -65.579086; 59.487832, -65.554838; 59.495883, -65.516513; 59.504460, -65.485199; 59.514105, -65.467935; 59.523213, -65.443619; 59.541562, -65.445356; 59.559987, -65.447025; 59.576471, -65.470897; 59.589353, -65.495883; 59.608843, -65.511708; 59.631377, -65.519425; 59.639603, -65.531417; 59.654986, -65.541285; 59.670370, -65.551163; 59.724463, -65.559113; 59.728141, -65.537077; 59.747465, -65.510324; 59.766771, -65.483552; 59.792743, -65.475723; 59.812779, -65.459176; 59.837228, -65.430777; 59.855686, -65.393666; 59.874123, -65.356525; 59.893327, -65.329625; 59.911730, -65.292427; 59.929338, -65.244915; 59.942535, -65.209252; 59.957278, -65.194148; 59.977193, -65.177421; 60.008274, -65.167731; 60.034165, -65.159645; 60.053270, -65.132558; 60.078339, -65.114130; 60.099027, -65.107626; 60.118906, -65.090794; 60.138776, -65.073945; 60.162190, -65.034780; 60.181252, -65.007541; 60.195147, -64.981921; 60.214992, -64.964983; 60.234828, -64.948029; 60.247879, -64.912006; 60.266876, -64.884657; 60.292631, -64.876346; 60.313210, -64.869695; 60.333783, -64.863037; 60.365515, -64.863402; 60.382612, -64.879167; 60.404032, -64.882886; 60.426269, -64.897010; 60.457155, -64.886999; 60.477736, -64.880316; 60.498316, -64.873627; 60.518892, -64.866929; 60.538641, -64.849792; 60.558385, -64.832636; 60.578120, -64.815462; 60.597021, -64.787822; 60.616745, -64.770605; 60.636465, -64.753368; 60.657012, -64.746577; 60.677557, -64.739778; 60.697264, -64.722495; 60.710158, -64.685941; 60.706805, -64.644028; 60.692330, -64.595095; 60.674398, -64.568863; 60.655608, -64.532198; 60.636803, -64.495573; 60.618838, -64.469433; 60.596589, -64.455499; 60.574340, -64.441583; 60.551223, -64.417259; 60.529817, -64.413803; 60.502407, -64.401679; 60.470722, -64.401718; 60.449302, -64.398278; 60.427014, -64.384452; 60.406448, -64.391408; 60.384151, -64.377603; 60.362712, -64.374184; 60.339533, -64.350041; 60.317214, -64.336285; 60.294888, -64.322545; 60.271681, -64.298476; 60.253619, -64.272693; 60.230385, -64.248679; 60.212295, -64.222945; 60.194195, -64.197233; 60.171818, -64.183616; 60.150321, -64.180322; 60.128817, -64.177032; 60.106420, -64.163448; 60.084901, -64.160168; 60.061597, -64.136323; 60.034905, -64.134816; 60.014294, -64.141839; 60.022607, -62.490897; 60.017743, -59.987877; 60.000532, -56.606414; 60.114277, -56.755362; 60.740941, -56.820512; 60.906442, -56.569254; 62.189245, -56.999635; 62.699293, -57.251453; 63.464385, -57.503279; 64.107900, -57.371126; 64.588787, -57.067944; 66.549512, -57.629771; 66.549537, -57.630080; 67.229128, -58.010480; 67.849711, -58.877354; 68.052734, -

24 March 2016 – F-27 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 164: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

59.178179; 68.308254, -59.589018; 68.537496, -59.565629; 68.774335, -59.643527; 69.035551, -59.635880; 69.161572, -59.779876; 69.898401, -60.642939; 70.734860, -61.567355; 71.496430, -62.063674; 72.162748, -62.650833; 73.032708, -63.872121; 73.764727, -65.868650; 73.927776, -67.835099; 74.287450, -69.727746; 74.778333, -71.913631; 75.204685, -73.157488; 75.575717, -73.429017; 76.021399, -73.986265; 76.021374, -73.985520; 76.533976, -74.345867; 77.306748, -74.494447; 77.928457, -74.434890; 78.362789, -73.822235; 78.833689, -73.374490; 79.179004, -72.169563; 79.899063, -68.931728; 80.275247, -68.518763; 80.929723, -66.152305; 81.267956, -64.046419; 81.483478, -62.818448; 81.925864, -61.915248; 82.101344, -60.684773; 82.265326, -59.513453; 82.631091, -59.541942; 84.106491, -59.284903; 86.318635, -60.020340; 89.998028, -48.163055; 76.000455, -140.954620; 76.000550, -140.954244; 60.305884, -141.002044; 60.293715, -140.927841; 60.221196, -140.521360; 60.309008, -140.459363; 60.181742, -139.980298; 60.213251, -139.921327; 60.308004, -139.742752; 60.334827, -139.692631; 60.351565, -139.129370; 60.352301, -139.075078; 60.318073, -139.072003; 60.088850, -139.199801; 59.999870, -139.062236; 59.998530, -137.999928; 60.004698, -137.000873; 60.001588, -134.995603; 60.017343, -132.492098; 60.019914, -129.985534; 60.017588, -127.502366; 60.000887, -125.001790; 60.000459, -124.998115; 60.002176, -123.001430; 60.002509, -120.989568; 60.012234, -118.993975; 60.004496, -116.994576; 59.991904, -114.992560; 60.007295, -112.991511; 60.006827, -110.985149; 59.999378, -108.994922; 59.998459, -105.988487; 60.000546, -103.000797; 59.998440, -97.996925; 60.000076, -94.746084}; % Simplified set of coordinate points (i.e. no detail around Hudson's Bay. % boundary = {60.000065, -94.746322; 56.930910, -95.766640; 49.274230, -79.214040; 60.014294, -64.141839; 60.022607, -62.490897; 60.017743, -59.987877; 60.000532, -56.606414; 60.114277, -56.755362; 60.740941, -56.820512; 60.906442, -56.569254; 62.189245, -56.999635; 62.699293, -57.251453; 63.464385, -57.503279; 64.107900, -57.371126; 64.588787, -57.067944; 66.549512, -57.629771; 66.549537, -57.630080; 67.229128, -58.010480; 67.849711, -58.877354; 68.052734, -59.178179; 68.308254, -59.589018; 68.537496, -59.565629; 68.774335, -59.643527; 69.035551, -59.635880; 69.161572, -59.779876; 69.898401, -60.642939; 70.734860, -61.567355; 71.496430, -62.063674; 72.162748, -62.650833; 73.032708, -63.872121; 73.764727, -65.868650; 73.927776, -67.835099; 74.287450, -69.727746; 74.778333, -71.913631; 75.204685, -73.157488; 75.575717, -73.429017; 76.021399, -73.986265; 76.021374, -73.985520; 76.533976, -74.345867; 77.306748, -74.494447; 77.928457, -74.434890; 78.362789, -73.822235; 78.833689, -73.374490; 79.179004, -72.169563; 79.899063, -68.931728; 80.275247, -68.518763; 80.929723, -66.152305; 81.267956, -64.046419; 81.483478, -62.818448; 81.925864, -61.915248; 82.101344, -60.684773; 82.265326, -59.513453; 82.631091, -59.541942; 84.106491, -59.284903; 86.318635, -60.020340; 89.998028, -48.163055; 76.000455, -140.954620; 76.000550, -140.954244; 60.305884, -141.002044; 60.293715, -140.927841; 60.221196, -140.521360; 60.309008, -140.459363; 60.181742, -139.980298; 60.213251, -139.921327; 60.308004, -139.742752; 60.334827, -139.692631; 60.351565, -139.129370; 60.352301, -139.075078; 60.318073, -139.072003; 60.088850, -139.199801; 59.999870, -139.062236; 59.998530, -137.999928; 60.004698, -137.000873; 60.001588, -134.995603; 60.017343, -132.492098; 60.019914, -129.985534; 60.017588, -127.502366; 60.000887, -125.001790; 60.000459, -124.998115; 60.002176, -123.001430; 60.002509, -120.989568; 60.012234, -118.993975; 60.004496, -116.994576; 59.991904, -114.992560; 60.007295, -112.991511; 60.006827, -110.985149; 59.999378, -108.994922; 59.998459, -105.988487; 60.000546, -103.000797; 59.998440, -97.996925; 60.000076, -94.746084}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'JTFN'; areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; % Create JTFP Area Target areaTarget = stkScenario.Children.New('eAreaTarget','JTFP'); areaTarget.AreaTypeData.RemoveAll; boundary = {35, -138; 41.58, -128.98; 42.52, -127.72; 44.82, -124.26; 45.45, -124.12; 47.21, -124.48; 48.03, -125; 48.51, -124.99; 48.52, -124.76; 48.28, -123.81; 48.26, -123.54; 48.32, -123.29; 48.44, -123.18; 48.69, -123.32; 48.81, -123.02; 49.03, -123.33; 49.02, -122.27; 49.66, -122.3; 51.45, -124.91; 53.34, -127.56; 54.79, -129.58; 55.54, -129.42; 56, -129.99; 55.84, -130.16; 55.62, -130.14;

24 March 2016 – F-28 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 165: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

55.32, -129.99; 55.2, -130.14; 55, -130.27; 54.79, -130.62; 54.72, -130.62; 54.72, -131.3; 54.68, -132.72; 54.3, -134.02; 55, -134; 55, -135.08; 59, -139; 59.3, -141; 59.3, -144.3; 59.3, -145.5; 59.1, -145.5; 59.1, -146.5; 59.3, -146.5; 59.3, -149; 58.5, -151; 57.3, -151.3; 56.15, -153.5; 56.1, -155; 55, -155; 48.3, -155}; areaTarget.CommonTasks.SetAreaTypePattern(boundary); areaTarget.Graphics.Color = 16777215; areaTarget.Graphics.BoundaryWidth = 3; areaTarget.Graphics.UseInstNameLabel = false; areaTarget.Graphics.LabelName = 'JTFP '; areaTarget.AutoCentroid = false; areaTarget.Position.AssignGeodetic(53.1963, -126.6, 0); areaTarget.VO.BorderWall.UseBorderWall = 1; areaTarget.VO.BorderWall.UpperEdgeHeight = 0.5; % Perform the initial save of the scenario then exit the function. % --------------------------------------------------------------------------------------------- root.SaveScenarioAs(stkScenarioPath); end % End of the function

F.3 getAllFilesOfType function fileList = getAllFilesOfType(dirPath, fileExtension) % getAllFilesOfType Recursively checks all subdirectories and returns list of files with the appropriate file extension. % % Syntax: [fileList] = getAllFilesOfType(dirPath, fileExtension) % % Inputs: % dirPath - String containing the root path to be searched. All subdirectories will be searched. % fileExtension - String containing the file extension you wish to find (e.g. '*.sc', '*.e', '*.*'). % % Outputs: % fileList - Cell array containing a list of full path string for every file of the file extension type in the directory path. % % Copyright (C) Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2015-2016 % % Contract: W7714-083663/001/SV % Author: Kenzie MacNeil (CAE Inc.) % Version: 1.0 % Date: February 02, 2016 % ================================================================================================================

24 March 2016 – F-29 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 166: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Validate input parameters. inParser = inputParser; inParser.addRequired('dirPath', @ischar); inParser.addRequired('fileExtension', @ischar); inParser.parse(dirPath, fileExtension); % Get the files with the appropriate extension in the current directory. fileData = dir([dirPath '\' fileExtension]); fileList = {fileData(~[fileData.isdir]).name}; % Add the full directory path info to the file list. if ~isempty(fileList) fileList = cellfun(@(x) fullfile(dirPath,x), fileList, 'UniformOutput', false); end % Get the subdirectories in the current directory. dirData = dir(dirPath); dirIndex = [dirData.isdir]; subDirList = {dirData(dirIndex).name}; % Find the valid indicies of the subdirectories. validIndex = ~ismember(subDirList,{'.','..'}); % Iterate through the valid subdirectories for i = find(validIndex) nextSubDir = fullfile(dirPath,subDirList{i}); % Recursively call subdirectory and add the files to the list. fileList = [fileList; getAllFilesOfType(nextSubDir, fileExtension)]; end end % End of the function.

F.4 isGeoInAOA function inAOA = isGeoInAOA( aoaRegion, lat, long ) % isGeoInAOA Returns true if latitude/longitude Geodetic point is within a predefined AOR's area of analysis (AOA). % % Syntax: [inAOA] = isGeoInAOA(aoaRegion, lat, long) % % Inputs: % aoaRegion - String indicating which AOA(s) to evaluate (required). % lat - The Geodetic latitude value of the point (required).

24 March 2016 – F-30 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 167: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% long - The Geodetic longitude value of the point (required). % % Outputs: % inAOA - Boolean value indicating whether or not the point is in the specified AOA. % % Copyright (C) Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2015-2016 % % Contract: W7714-083663/001/SV % Author: Kenzie MacNeil (CAE Inc.) % Version: 1.0 % Date: February 02, 2016 % ================================================================================================================ % Validate input parameters. inParser = inputParser; inParser.addRequired('aoaRegion', @ischar); inParser.addRequired('lat', @isnumeric); inParser.addRequired('long', @isnumeric); inParser.parse(aoaRegion, lat, long); % Set default values for the function. checkJTFA = false; checkJTFN = false; checkJTFP = false; % Check to see if a proper AOA region has been passed in. if( isempty(aoaRegion) == false ) if( strcmpi(aoaRegion, 'ALL') == true ) checkJTFA = true; checkJTFN = true; checkJTFP = true; elseif( strcmpi(aoaRegion, 'JTFA') == true ) checkJTFA = true; elseif( strcmpi(aoaRegion, 'JTFN') == true ) checkJTFN = true; elseif( strcmpi(aoaRegion, 'JTFP') == true ) checkJTFP = true; else error('Invalid input. AOA string not recognized.'); end end

24 March 2016 – F-31 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 168: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Define the necessary regions as polygons % ---------------------------------------------------------------------------------------------------------------- % Define the JTFA AOA polygon in terms of Geodetic points. if( checkJTFA == true ) jtfaLat = [90, 40.95, 45.46391753, 54, 42.12371134, 33.21649485, 12.43298969, -17.62886598, -25.42268041, -24.30927835, -21.34020619, -12.06185567, -0.55670103, 13.54639175, 31.73195876, 40.95, 90]; jtfaLong = [180.00000000, 180.00000000, 156.13835613, 117.91155200, 88.22083035, 69.29299530, 37.74660355, -7.53174697, -37.22246862, -73.96473666, -95.49050985, -114.04721088, -132.23277789, -143.36679851, -159.32556140, -180.00000000, -180.00000000]; if ( numel(jtfaLat) ~= numel(jtfaLong) ) error('The JTFA AOA polygon is not properly defined in the function.'); end end % Define the JTFN AOA polygon in terms of Geodetic points. if( checkJTFN == true ) % Full set of coordinate points. jtfnLat = [90, 2.51, 7.237113402, 14.28865979, 19.8556701, 23.19587629, 26.53608247, 23.19587629, 23.93814433, 20.96907216, 19.8556701, 16.88659794, 3.154639175, -3.154639175, -10.94845361, -15.40206186, -12.43298969, -6.12371134, -3.896907216, -2.783505155, 0.927835052, 2.51, 90]; jtfnLong = [180, 180, 169.1280468, 157.2517582, 143.5197994, 133.1280468, 121.6228922, 111.6022737, 81.16928396, 51.10742829, 35.14866541, 19.18990252, -4.19154078, -37.22246862, -61.71731398, -77.30494284, -98.45958202, -112.5626748, -134.459582, -153.7585511, -176.3977263, -180, -180]; if ( numel(jtfnLat) ~= numel(jtfnLong) ) error('The JTFN AOA polygon is not properly defined in the function.'); end end % Define the JTFP AOA polygon in terms of Geodetic points. if( checkJTFP == true ) jtfpLat = [90, -11.9, -10.20618557, -9.463917526, 0.927835052, 9.463917526, 17.25773196, 24.30927835, 31.36082474, 38.78350515, 42.86597938, 43.60824742, 43.97938144, 46.57731959, 49.54639175, 50.28865979, 49.17525773, 43.2371134, 38.41237113, 31.73195876, 26.16494845, 15.40206186, 6.494845361, -1.670103093, -8.721649485, -18, -20.96907216, -24.30927835, -27.64948454, -29.87628866, -29.87628866, -29.13402062, -23.19587629, -16.88659794, -11.9, 90]; jtfpLong = [180, 180, 177.6641293, 171.354851, 152.0558819, 140.1795932, 130.9012427, 121.6228922, 114.5713458, 98.98371695, 76.34454169, 57.78784066, 48.13835613, 40.34454169, 26.61258293, 15.47856231, -0.109066553, -15.69669542, -28.68638614, -38.7070047, -47.24308717, -54.66576758, -63.57298408, -73.96473666, -83.24308717, -96.97504593, -109.5936026, -113.3049428, -119.2430872, -130.0059738, -145.2224686, -155.6142212, -165.2637057, -172.6863861, -180, -180]; if ( numel(jtfpLat) ~= numel(jtfpLong) ) error('The JTFP AOA polygon is not properly defined in the function.'); end end

24 March 2016 – F-32 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 169: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Check the regions for a single point % ---------------------------------------------------------------------------------------------------------------- % Check to see if the first point is in JTFA. if( checkJTFA == true ) [in, on] = inpolygon(lat, long, jtfaLat, jtfaLong); inAOA = (in | on); if (inAOA == true) return; end end % Check to see if the first point is in JTFN. if( checkJTFN == true ) [in, on] = inpolygon(lat, long, jtfnLat, jtfnLong); inAOA = (in | on); if (inAOA == true) return; end end % Check to see if the first point is in JTFP. if( checkJTFP == true ) [in, on] = inpolygon(lat, long, jtfpLat, jtfpLong); inAOA = (in | on); if (inAOA == true) return; end end end % End of the function

F.5 isGeoInAOR function inAOR = isGeoInAOR( aorRegion, lat, long, varargin ) % isGeoInAOR Returns true if latitude/longitude Geodetic point(s) is within or crosses an AOR. % % Syntax: [inAOR] = isGeoInAOR(aorRegion, lat, long, [lat2, long2, [evalIntersect]]) % % Inputs: % aorRegion - String indicating which AOR(s) to evaluate (required). % lat - The Geodetic latitude value of the first point (required).

24 March 2016 – F-33 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 170: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% long - The Geodetic longitude value of the first point (required). % lat2 - The Geodetic latitude value of the second point which is needed to evaluate a line segment (optional). % long2 - The Geodetic longitude value of the second point which is needed to evaluate a line segment (optional). % evalIntersect - Boolean value indicating whether or not to check to see if a line segment intersects the AOR (optional). % The default value is true. % % Outputs: % inAOR - Boolean value indicating whether or not the point(s) are in the specified AOR. % % Notes: % The function will handle line segments across the 180th-meridian but not over the poles. % % Copyright (C) Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2015-2016 % % Contract: W7714-083663/001/SV % Author: Kenzie MacNeil (CAE Inc.) % Version: 1.0 % Date: January 05 2016 % ================================================================================================================ % Validate input parameters. inParser = inputParser; inParser.addRequired('aorRegion', @ischar); inParser.addRequired('lat', @isnumeric); inParser.addRequired('long', @isnumeric); inParser.addOptional('lat2', 999, @isnumeric); inParser.addOptional('long2', 999, @isnumeric); inParser.addOptional('evalIntersect', true, @islogical); inParser.parse(aorRegion, lat, long, varargin{:}); % Set default values for the function. hasSecondPoint = false; evalIntersect = true; checkJTFA = false; checkJTFN = false; checkJTFP = false; % Check to see if a proper AOR region has been passed in. if( isempty(aorRegion) == false ) if( strcmpi(aorRegion, 'ALL') == true ) checkJTFA = true; checkJTFN = true; checkJTFP = true; elseif( strcmpi(aorRegion, 'JTFA') == true )

24 March 2016 – F-34 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 171: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

checkJTFA = true; elseif( strcmpi(aorRegion, 'JTFN') == true ) checkJTFN = true; elseif( strcmpi(aorRegion, 'JTFP') == true ) checkJTFP = true; else error('Invalid input. AOR string not recognized.'); end end % Check to see if a second point exists in the input. if ( isempty(varargin) == false ) % Validate input length. if( length(varargin) == 2 || length(varargin) == 3 ) hasSecondPoint = true; else error('Invalid input. Second geodetic point is not properly defined.'); end % Get the second point. lat2 = varargin{1}; long2 = varargin{2}; % Get the evaluate polygon intersect flag. if( length(varargin) == 3 ) evalIntersect = varargin{3}; end end % Define the necessary regions as polygons % ---------------------------------------------------------------------------------------------------------------- % Define the JTFA AOR polygon in terms of Geodetic points. if( checkJTFA == true ) jtfaLat = [50.091400, 59.334000, 60.422000, 60.422000, 60.422000, 60.253400, 59.554700, 59.370100, 56.194700, 52.070000, 46.000000, 40.000000, 40.000000, 39.986500, 41.535500, 42.000000, 44.000000, 44.400000, 44.480000, 45.102200, 45.101100, 45.145400, 45.355100, 45.433200, 47.034200, 47.201300, 47.122500, 47.153100, 47.271700, 47.263700, 46.422200, 46.194900, 45.551700]; jtfaLong = [-075.023700, -066.012300, -064.420900, -057.300900, -048.204100, -046.222500, -045.280400, -043.512200, -038.194800, -031.520000, -039.250000, -046.000000, -050.000000, -066.000000, -066.000000, -066.000000, -067.000000, -067.000000, -066.530000, -067.085400, -067.215700, -067.270100, -067.310000, -067.444900, -067.492500, -068.174200, -068.552600, -069.024200, -069.030100, -069.124600, -069.563800, -070.122700, -070.170000]; if ( numel(jtfaLat) ~= numel(jtfaLong) ) error('The JTFA AOR polygon is not properly defined in the function.'); end

24 March 2016 – F-35 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 172: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

end % Define the JTFN AOR polygon in terms of Geodetic points. if( checkJTFN == true ) % Full set of coordinate points. jtfnLat = [60.00006537, 59.98911413, 59.98580768, 59.98134832, 59.97737476, 59.97522091, 59.97009364, 59.96596791, 59.96035567, 59.95589593, 59.95143627, 59.94697644, 59.94366865, 59.93723874, 59.93311336, 59.92504823, 59.91713233, 59.90988638, 59.90412742, 59.89985511, 59.8959161, 59.89115935, 59.88655225, 59.87964185, 59.87321545, 59.86794091, 59.8611809, 59.85739226, 59.85048315, 59.84405781, 59.83796656, 59.83269278, 59.82545049, 59.81887634, 59.81690752, 59.8111508, 59.80424272, 59.79733491, 59.79191198, 59.78845804, 59.78418624, 59.7784297, 59.77267312, 59.76855218, 59.7649153, 59.76046044, 59.75485403, 59.7480963, 59.74315753, 59.73755076, 59.73194376, 59.72370005, 59.71957801, 59.7154559, 59.71085109, 59.70476083, 59.69900495, 59.69324892, 59.68634148, 59.68288769, 59.67713132, 59.67252591, 59.66725221, 59.66279537, 59.65915506, 59.65369351, 59.65038657, 59.63419985, 59.63195531, 59.6297108, 59.62683928, 59.6231591, 59.62028769, 59.61678943, 59.61240095, 59.6107019, 59.60837593, 59.60560496, 59.60346076, 59.60194337, 59.59979911, 59.59702801, 59.59514766, 59.59282208, 59.5904965, 59.58798949, 59.58459198, 59.58145855, 59.57769861, 59.57456543, 59.57017905, 59.56767272, 59.56310561, 59.5610447, 59.55835733, 59.55324652, 59.55118575, 59.54894368, 59.54589381, 59.54239903, 59.53934951, 59.53648105, 59.53324995, 59.53038168, 59.52751346, 59.52446377, 59.52123258, 59.51961695, 59.51719346, 59.51432527, 59.51182003, 59.50868873, 59.50618394, 59.50242671, 59.49885092, 59.49652755, 59.4942042, 59.49169938, 59.48893129, 59.48642651, 59.48383974, 59.48169766, 59.4783031, 59.47642448, 59.47284861, 59.46971769, 59.46577927, 59.46228585, 59.4591549, 59.45628768, 59.45279419, 59.44992693, 59.44724094, 59.44437364, 59.4412428, 59.43774933, 59.43425574, 59.43058079, 59.4277134, 59.42484612, 59.42216016, 59.41947421, 59.41616214, 59.41240503, 59.40864749, 59.40676868, 59.404, 59.40329159, 59.4008856, 59.39767178, 59.39615538, 59.39302395, 59.38926615, 59.3867609, 59.38318411, 59.38130513, 59.37978832, 59.37925984, 59.37729734, 59.37533487, 59.37381745, 59.37266164, 59.36899978, 59.36685545, 59.36453025, 59.36139771, 59.35871087, 59.35521673, 59.35216823, 59.3503728, 59.34750487, 59.34508254, 59.34059936, 59.33898426, 59.33170012, 59.33046482, 59.32847324, 59.32662046, 59.32524664, 59.32291581, 59.32044553, 59.31859284, 59.31674017, 59.3148876, 59.31255655, 59.31008692, 59.30576542, 59.30453076, 59.30267893, 59.30034856, 59.2984968, 59.29616659, 59.29321918, 59.29150628, 59.2896547, 59.28780318, 59.28547335, 59.28362206, 59.28101506, 59.27902526, 59.27765246, 59.27532304, 59.27313238, 59.27108053, 59.26889009, 59.26636017, 59.26369164, 59.26164009, 59.25897181, 59.25644243, 59.253435, 59.25076704, 59.24837655, 59.24646392, 59.24331784, 59.2414053, 59.23949243, 59.23710221, 59.23471213, 59.23170564, 59.22903866, 59.22684969, 59.22308835, 59.2226104, 59.21994361, 59.21699979, 59.21494955, 59.21214438, 59.21043361, 59.20749006, 59.2059178, 59.20311279, 59.20140221, 59.19907531, 59.1962706, 59.1939438, 59.19175565, 59.18942904, 59.18737954, 59.18443668, 59.18252579, 59.18033779, 59.17842695, 59.17637755, 59.17303358, 59.17207816, 59.16859571, 59.16716258, 59.16572945, 59.1638186, 59.16190777, 59.15938082, 59.15747001, 59.15542077, 59.15255454, 59.15050543, 59.14722412, 59.14489819, 59.14223303, 59.14052316, 59.13771961, 59.13443843, 59.13320625, 59.13197406, 59.12930904, 59.12684461, 59.12465716, 59.12294734, 59.1207599, 59.11761724, 59.1154298, 59.11338085, 59.11133191, 59.10914447, 59.106957, 59.10490806, 59.10238149, 59.10047103, 59.0974668, 59.09651155, 59.09364578, 59.09125759, 59.08982464, 59.08777559, 59.08572653, 59.08272213, 59.08005694, 59.07773092, 59.07568177, 59.07335567, 59.07069035, 59.05856294, 59.05869872, 59.05716221, 59.05615881, 59.05468512, 59.05381737, 59.05187357, 59.04979403, 59.04724439, 59.044089, 59.04234412, 59.03932458, 59.03650408, 59.03522949, 59.03348489, 59.03174032, 59.0293269, 59.02805243, 59.02583792, 59.02483453, 59.02336116, 59.02215875, 59.02129062, 59.01981697, 59.01834335, 59.01626447, 59.01438479, 59.0126405, 59.01029092, 59.00747154, 59.00465217, 59.00230271, 58.99995333, 58.99793851, 58.99558923, 58.99230036, 58.98995121, 58.98760211, 58.98572284, 58.98350917, 58.98237044, 58.98076198, 58.97936014, 58.97882635, 58.9784277, 58.97802897, 58.97809991, 58.97770094, 58.97710219, 58.97737241, 58.97710808, 58.97697864, 58.97691381, 58.97711882, 58.97624914, 58.97510962, 58.97377001, 58.9721606, 58.97102097, 58.96739762, 58.96504875, 58.96269995, 58.96035113, 58.95800236, 58.95565358, 58.95377459, 58.9509561, 58.94860736, 58.94578892, 58.94390994, 58.9410915, 58.93874279, 58.93639409, 58.93404539, 58.93075721, 58.92968295, 58.92780397, 58.92579019, 58.92377642, 58.92068833, 58.91760023, 58.91652592, 58.91451209, 58.91128904, 58.91021466, 58.90759614, 58.90497758, 58.90343342, 58.90081483, 58.89927063, 58.89678687, 58.89477286, 58.89275881, 58.89074476, 58.88859583, 58.88658168, 58.88456756, 58.88241834, 58.8804041, 58.87805499, 58.87617569, 58.87443135, 58.87208217, 58.87000289, 58.86830687, 58.86399798, 58.8599969, 58.85599588,

24 March 2016 – F-36 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 173: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

58.85230246, 58.84799409, 58.8399925, 58.8362998, 58.83152956, 58.8289131, 58.82491267, 58.82121917, 58.81752563, 58.81383196, 58.81013827, 58.80644426, 58.80275019, 58.80013271, 58.79367275, 58.78721292, 58.78398308, 58.77906451, 58.77445223, 58.76953386, 58.76415163, 58.75661684, 58.75338769, 58.748006, 58.7429304, 58.73816054, 58.73554322, 58.73184936, 58.73091912, 58.73106479, 58.73336266, 58.73458355, 58.73610886, 58.738405, 58.74039603, 58.74407275, 58.74744438, 58.75081518, 58.75556772, 58.75971093, 58.76493095, 58.7695427, 58.77553573, 58.77890598, 58.78227634, 58.78379597, 58.78501115, 58.78838001, 58.79282575, 58.79774156, 58.80265782, 58.80895518, 58.81202038, 58.81538887, 58.81690463, 58.81458068, 58.81057326, 58.80410776, 58.80195268, 58.79764275, 58.79010096, 58.78531929, 58.78053728, 58.77713459, 58.77511141, 58.77308769, 58.77214055, 58.77041664, 58.76946802, 58.7691199, 58.76799352, 58.76829514, 58.76872268, 58.76777092, 58.76789739, 58.76676759, 58.76749152, 58.7695609, 58.76884584, 58.76696691, 58.76676991, 58.76456766, 58.76268613, 58.76164566, 58.76293094, 58.76389448, 58.76517875, 58.76910942, 58.77039216, 58.77231451, 58.77391488, 58.7748751, 58.77446731, 58.77574604, 58.77586043, 58.77629323, 58.77756957, 58.7773629, 58.77747432, 58.77874894, 58.7803412, 58.78277773, 58.78722296, 58.79304123, 58.79885922, 58.80044918, 58.79770089, 58.79632635, 58.79410459, 58.79304595, 58.79166946, 58.78976283, 58.78785517, 58.78414978, 58.78107654, 58.77884961, 58.77894998, 58.77672203, 58.77512381, 58.77374222, 58.77214186, 58.77371654, 58.77349689, 58.77506977, 58.77632756, 58.77642083, 58.77449934, 58.7719492, 58.76939858, 58.76451961, 58.76049081, 58.75677455, 58.7518947, 58.74934197, 58.74446087, 58.74190708, 58.73850133, 58.73858677, 58.74099967, 58.74403578, 58.7464472, 58.75064523, 58.75453074, 58.75810428, 58.76284168, 58.76524998, 58.76765785, 58.77091884, 58.77278222, 58.77518808, 58.77673906, 58.77828867, 58.7798374, 58.77991103, 58.77850992, 58.77656232, 58.77430471, 58.77173735, 58.76769613, 58.76310701, 58.75820845, 58.75416597, 58.74717701, 58.74135285, 58.73436383, 58.73086933, 58.72504512, 58.72038574, 58.7133966, 58.71020995, 58.67911624, 58.67605753, 58.67089993, 58.66300412, 58.65784744, 58.65390042, 58.64874453, 58.64206059, 58.63722529, 58.63118135, 58.62513713, 58.61909195, 58.61425845, 58.60700765, 58.60306332, 58.59822993, 58.59155092, 58.58519127, 58.5809289, 58.57577801, 58.56789249, 58.56515768, 58.55848075, 58.5505973, 58.54392171, 58.53756581, 58.5296851, 58.52244081, 58.51881859, 58.51278162, 58.50795277, 58.50312344, 58.49588027, 58.49225916, 58.48622414, 58.48139625, 58.47415331, 58.46932577, 58.46119466, 58.45579625, 58.45096851, 58.44734785, 58.44163095, 58.43680343, 58.43197611, 58.42321098, 58.41533548, 58.40987359, 58.40472926, 58.39958537, 58.39234541, 58.3887256, 58.38389909, 58.37938974, 58.37399053, 58.36827394, 58.36376381, 58.35925351, 58.35385322, 58.35054936, 58.34362496, 58.34032066, 58.33612561, 58.3307232, 58.32532034, 58.32049259, 58.3144578, 58.30810729, 58.30054985, 58.29692882, 58.26007907, 58.25639376, 58.24934444, 58.24443304, 58.23984004, 58.23370182, 58.2294326, 58.22484342, 58.21934441, 58.21475364, 58.21048268, 58.20375751, 58.20039496, 58.19612373, 58.1881726, 58.18326585, 58.17468045, 58.16823158, 58.16210079, 58.15565275, 58.14797957, 58.14153128, 58.13785329, 58.1326315, 58.12618425, 58.12128109, 58.11637904, 58.11025304, 58.10567052, 58.09954501, 58.09373575, 58.08883543, 58.08271071, 58.0759964, 58.07141441, 58.06651521, 58.06070857, 58.05675962, 58.05217757, 58.04573818, 58.03929903, 58.03131934, 58.02424808, 58.01994214, 58.01441212, 58.00951538, 58.00217078, 57.99818222, 57.99174581, 57.98621701, 57.97978094, 57.95770988, 57.95648608, 57.95036712, 57.94547281, 57.93935495, 57.93477696, 57.92865889, 57.92408094, 57.91796273, 57.90817491, 57.90237321, 57.89625561, 57.89045368, 57.88619097, 57.87916526, 57.87427106, 57.86937693, 57.85958858, 57.85070871, 57.84364543, 57.83843621, 57.83231862, 57.82620108, 57.8203984, 57.81550413, 57.80938617, 57.80204459, 57.79347922, 57.78858466, 57.78001884, 57.77757142, 57.76900541, 57.76166248, 57.757991, 57.75187188, 57.74452836, 57.73963283, 57.73351258, 57.70251267, 57.70105046, 57.69897213, 57.69781838, 57.69612726, 57.6945865, 57.69374089, 57.69135462, 57.68981396, 57.68827335, 57.68742782, 57.68627419, 57.68481245, 57.68365885, 57.68143047, 57.67996881, 57.67850737, 57.67642986, 57.67443121, 57.67296984, 57.67120029, 57.669431, 57.66766177, 57.66589249, 57.66297006, 57.66150897, 57.65996905, 57.65873715, 57.6571974, 57.65573651, 57.65519938, 57.65343062, 57.65143265, 57.64943469, 57.64813115, 57.64644106, 57.64575313, 57.62763937, 57.61014046, 57.59227811, 57.57441837, 57.5637052, 57.54585409, 57.54137397, 57.5298043, 57.49138995, 57.47020005, 57.45332268, 57.42915687, 57.40995267, 57.38413099, 57.36591879, 57.34705256, 57.33272843, 57.30955396, 57.29886396, 57.26321631, 57.23113392, 57.20797191, 57.18304437, 57.17592259, 57.14031523, 57.12340877, 57.1029415, 57.08426204, 57.08160275, 57.08071191, 57.07269412, 57.07889837, 57.08596776, 57.09213583, 57.09828632, 57.10529504, 57.11053721, 57.11315343, 57.12185257, 57.1227206, 57.13667622, 57.14615885, 57.16102009, 57.18198755, 57.20648157, 57.21683981, 57.22821341, 57.23854275, 57.24885006, 57.25975405, 57.27310261, 57.27891623, 57.2838857, 57.2896709, 57.29351115, 57.29568414, 57.29068486, 57.28566255, 57.27980667, 57.27197855, 57.26054559, 57.24747149, 57.23358296, 57.21968095, 57.20656289, 57.1914349, 57.16831626, 57.15076357, 57.12882284, 57.12602471, 57.11000974, 57.10799052, 57.05448471, 57.05252403, 57.04885086, 57.04517636, 57.03979063, 57.03403895, 57.02766853, 57.02336877, 57.01942772, 57.01978997, 57.01449486, 57.01090433,

24 March 2016 – F-37 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 174: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

57.00388719, 56.999206, 56.9918199, 56.99253765, 56.98379439, 56.97746975, 56.97348576, 56.96849938, 56.96179437, 56.95950304, 56.95585008, 56.95354706, 56.94922875, 56.94485238, 56.94117419, 56.93849876, 56.93511912, 56.93445822, 56.92800479, 56.92427107, 56.92088456, 56.91952301, 56.91068523, 56.90456641, 56.89779147, 56.89711822, 56.89955931, 56.90299722, 56.90368871, 56.90163831, 56.89171848, 56.8811124, 56.8694806, 56.86126998, 56.8581903, 56.85578517, 56.85748655, 56.85918614, 56.86840564, 56.873184, 56.87453942, 56.87487807, 56.86972609, 56.86114942, 56.853944, 56.84639972, 56.83680649, 56.82926008, 56.82238477, 56.81688262, 56.81513674, 56.81338877, 56.80992672, 56.80784, 56.79890446, 56.7930572, 56.78720874, 56.77760254, 56.76628323, 56.75700711, 56.74739763, 56.73778725, 56.72270734, 56.71309474, 56.70657545, 56.69933455, 56.68899546, 56.67865232, 56.67311594, 56.66724901, 56.65966697, 56.64449789, 56.63552373, 56.62997496, 56.62164753, 56.61641837, 56.61053568, 56.60293711, 56.55998689, 56.55773922, 56.55708598, 56.55496101, 56.55083186, 56.54682401, 56.54334775, 56.53999298, 56.53704712, 56.53422276, 56.53115538, 56.5287403, 56.52620362, 56.52431941, 56.5224351, 56.51948774, 56.51661262, 56.51450865, 56.51163, 56.50916124, 56.50722377, 56.50516454, 56.50233204, 56.50027158, 56.49726524, 56.49401739, 56.4929522, 56.48750826, 56.4856714, 56.4790959, 56.4748898, 56.4693796, 56.46493508, 56.45906752, 56.45841566, 56.45059346, 56.44733402, 56.44472664, 56.44040259, 56.43631792, 56.43252687, 56.42743248, 56.4216867, 56.41671208, 56.4115629, 56.41103048, 56.40546738, 56.4048158, 56.40073115, 56.39688432, 56.39528649, 56.39173389, 56.38752968, 56.38308778, 56.37929758, 56.37562613, 56.37248748, 56.35911333, 56.35690242, 56.35512175, 56.35278824, 56.34842928, 56.34474567, 56.34161495, 56.33780922, 56.333451, 56.32897072, 56.3232631, 56.31970241, 56.31534464, 56.30797849, 56.30171838, 56.29736093, 56.29030466, 56.28134647, 56.27079596, 56.26956846, 56.26005809, 56.25122206, 56.24539435, 56.2447198, 56.23662578, 56.22718289, 56.22135545, 56.2160811, 56.21405766, 56.20228127, 56.19621105, 56.19038344, 56.18400242, 56.17706783, 56.17068615, 56.16755582, 56.16105267, 56.15847555, 56.14780345, 56.14510511, 56.11064586, 56.10884399, 56.10504516, 56.10331445, 56.10409201, 56.10216429, 56.09817009, 56.09159652, 56.08322023, 56.08122347, 56.07748971, 56.0722716, 56.0710475, 56.06943622, 56.05983358, 56.05293771, 56.04784688, 56.04166082, 56.03618475, 56.02723049, 56.02065938, 56.01647136, 56.01215085, 56.0087319, 56.00550422, 56.00504106, 56.00186414, 56.00063028, 55.995919, 55.98863485, 55.98282744, 55.97920986, 55.9735918, 55.97378231, 55.96725839, 55.96492367, 55.96458864, 55.96225247, 55.96010495, 55.95776671, 55.95652286, 55.9558453, 55.95535434, 55.95429526, 55.95323495, 55.95383309, 55.95095437, 55.9502643, 55.94810199, 55.94649952, 55.94561643, 55.94545422, 55.94419535, 55.94384512, 55.94312186, 55.9350504, 55.93229509, 55.93031648, 55.92695994, 55.92334559, 55.9220542, 55.91619989, 55.91508079, 55.91008615, 55.90595189, 55.903023, 55.90052448, 55.89811172, 55.8965603, 55.89337093, 55.89104257, 55.8892305, 55.88629882, 55.88259006, 55.87982839, 55.87646383, 55.87318409, 55.87076649, 55.86877986, 55.86679286, 55.86566863, 55.86419773, 55.86186312, 55.85909615, 55.85512516, 55.84779097, 55.84510628, 55.84457231, 55.84446943, 55.8437644, 55.84082266, 55.83503256, 55.82940958, 55.82854435, 55.82318404, 55.82231855, 55.81919232, 55.81511495, 55.81433284, 55.81060269, 55.80912128, 55.80607389, 55.80529091, 55.80275744, 55.80162373, 55.79890493, 55.79671845, 55.79488147, 55.79010705, 55.7842965, 55.7834279, 55.7825593, 55.77864987, 55.77560913, 55.7730009, 55.77134497, 55.76968867, 55.76759726, 55.76463549, 55.7477639, 55.74742769, 55.74526265, 55.74106376, 55.73717181, 55.73348365, 55.7336881, 55.72827169, 55.72532719, 55.7236692, 55.72322906, 55.72177328, 55.71882504, 55.71774047, 55.71356904, 55.71061742, 55.70959654, 55.70684461, 55.70260115, 55.69988534, 55.69845731, 55.69743157, 55.69660602, 55.69587923, 55.69569468, 55.69589522, 55.69655346, 55.69537679, 55.69201908, 55.69009264, 55.68930133, 55.67939654, 55.67748395, 55.6761434, 55.67604418, 55.67451049, 55.66962733, 55.66560554, 55.66139325, 55.65469472, 55.64885953, 55.64159226, 55.63718899, 55.63278524, 55.62751626, 55.62348893, 55.61983729, 55.61780242, 55.6193049, 55.62024264, 55.61763804, 55.61590078, 55.61043416, 55.60353727, 55.59539676, 55.58849863, 55.5830291, 55.58321537, 55.57563093, 55.57103057, 55.56642993, 55.5593428, 55.55474155, 55.5490821, 55.54448018, 55.54006315, 55.53210053, 55.52289329, 55.51032358, 55.49899446, 55.48517431, 55.46761908, 55.46637526, 55.43633546, 55.43683508, 55.4241506, 55.41317507, 55.40832439, 55.40126216, 55.39491644, 55.39322914, 55.39569864, 55.39326333, 55.38936214, 55.38496798, 55.37422153, 55.36396255, 55.36200734, 55.35809516, 55.35393748, 55.3409821, 55.33267116, 55.32264916, 55.30944732, 55.30308862, 55.29940926, 55.29768015, 55.29936916, 55.30180295, 55.29982404, 55.29784201, 55.29561719, 55.29167888, 55.28773838, 55.2850306, 55.2805627, 55.27685034, 55.27460969, 55.27189514, 55.26794068, 55.26545974, 55.26421859, 55.26072747, 55.25824147, 55.2584758, 55.25373265, 55.25170697, 55.25115859, 55.25348009, 55.25486917, 55.2553316, 55.25421383, 55.25411092, 55.25479944, 55.25792158, 55.26145379, 55.26295057, 55.26444671, 55.26618109, 55.26958921, 55.27186071, 55.27425095, 55.27777559, 55.27884511, 55.27979396, 55.28050468, 55.28133298, 55.28293882, 55.28442561, 55.28591192, 55.28638305, 55.28697146, 55.28767666, 55.28760155, 55.28717378, 55.28417232, 55.28027379, 55.27851925, 55.27754354, 55.27913892, 55.28400564, 55.28863779, 55.29089516, 55.29190778, 55.29462749, 55.29543709,

24 March 2016 – F-38 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 175: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

55.29534885, 55.29537467, 55.29349069, 55.29172056, 55.28983431, 55.28783224, 55.28750823, 55.28830904, 55.28641868, 55.28351674, 55.28431432, 55.28612111, 55.28668913, 55.28838, 55.29332558, 55.2990518, 55.30062518, 55.303432, 55.30500345, 55.30668635, 55.30926477, 55.31004903, 55.31049666, 55.3120602, 55.31317437, 55.31272301, 55.31047826, 55.30543199, 55.30049626, 55.30004328, 55.30059747, 55.2990256, 55.2947515, 55.29339985, 55.29261348, 55.29115097, 55.28732844, 55.28328493, 55.28024757, 55.27642244, 55.27460941, 55.27358235, 55.27299112, 55.2738641, 55.27430004, 55.27541493, 55.27865029, 55.28536438, 55.28737576, 55.28960435, 55.29014727, 55.29101482, 55.28976213, 55.28671477, 55.28423973, 55.27939676, 55.27555781, 55.27182541, 55.26841355, 55.26625792, 55.26474403, 55.26301357, 55.26185876, 55.26239168, 55.26134158, 55.26065669, 55.25437926, 55.2533678, 55.25215467, 55.251167, 55.24970635, 55.24669401, 55.24383808, 55.24320835, 55.24030685, 55.23875453, 55.23920315, 55.23987535, 55.24018875, 55.23782125, 55.23601864, 55.23432345, 55.23369247, 55.23139062, 55.23080386, 55.22811823, 55.22748678, 55.22743158, 55.22747589, 55.2281842, 55.22974456, 55.22983291, 55.23078895, 55.23289129, 55.23397815, 55.23476964, 55.23457586, 55.23361675, 55.23130277, 55.22966479, 55.22945725, 55.22743572, 55.22566481, 55.22393682, 55.22402387, 55.22267736, 55.22208642, 55.22295461, 55.22479542, 55.22735696, 55.22978817, 55.23132448, 55.23384116, 55.23665352, 55.23891071, 55.24040276, 55.24048888, 55.24117733, 55.24126332, 55.24169306, 55.24118567, 55.24106069, 55.23906575, 55.23397901, 55.23142635, 55.23151355, 55.23472672, 55.23715684, 55.23980358, 55.24002062, 55.23893529, 55.23906512, 55.23797809, 55.23776051, 55.23857731, 55.23922274, 55.23960951, 55.23960561, 55.23921112, 55.23682168, 55.23204187, 55.22713264, 55.22352792, 55.218276, 55.21523821, 55.21032228, 55.20684158, 55.20416363, 55.19961037, 55.19117597, 55.18925712, 55.18327402, 55.17697679, 55.17304277, 55.17232747, 55.16991082, 55.16959661, 55.1673967, 55.16501173, 55.16482719, 55.16332911, 55.16384736, 55.164365, 55.16470974, 55.16496813, 55.16567042, 55.16816271, 55.17208716, 55.1774438, 55.18280048, 55.18695395, 55.1943594, 55.2000612, 55.20335635, 55.20650863, 55.21156618, 55.21480363, 55.21795499, 55.22288219, 55.22531624, 55.22650362, 55.22585563, 55.22136593, 55.21746511, 55.21379467, 55.21164342, 55.20953467, 55.20774183, 55.20634998, 55.20540168, 55.20301876, 55.20171155, 55.19960189, 55.19709111, 55.19633138, 55.193631, 55.19160532, 55.18989598, 55.1881442, 55.18531585, 55.18208611, 55.18122008, 55.1798686, 55.17851697, 55.1762563, 55.17380372, 55.17227747, 55.17146786, 55.16968783, 55.16753183, 55.16424788, 55.16033557, 55.15765584, 55.14978948, 55.14761177, 55.14342844, 55.14506125, 55.14507451, 55.14368423, 55.13832624, 55.12984572, 55.12398734, 55.12153685, 55.12154849, 55.12194699, 55.12016828, 55.11492523, 55.10962531, 55.1053857, 55.10282128, 55.10092836, 55.09937496, 55.09909966, 55.09966511, 55.10006046, 55.10028622, 55.1034721, 55.10470135, 55.10715973, 55.1073849, 55.10984327, 55.11380785, 55.11436621, 55.12006228, 55.12285419, 55.12447314, 55.12558993, 55.12944255, 55.13335159, 55.13759347, 55.14356765, 55.14971111, 55.15200155, 55.15485085, 55.15490714, 55.15647442, 55.1556945, 55.15273605, 55.14854818, 55.14318716, 55.13793893, 55.12962017, 55.12448401, 55.12264107, 55.12263968, 55.12118836, 55.11744658, 55.11632962, 55.11085812, 55.10756433, 55.10203836, 55.09595447, 55.08948015, 55.08847545, 55.08311725, 55.071788, 55.07067181, 55.06659788, 55.06425389, 55.06034776, 55.05750186, 55.05437672, 55.05136372, 55.04896485, 55.04522638, 55.04226898, 55.03741348, 55.03451198, 55.02893236, 55.02407838, 55.02145612, 55.01821997, 55.01280764, 55.00521911, 54.9958448, 54.98535434, 54.97810007, 54.96749728, 54.95800994, 54.95075444, 54.94963813, 54.933438, 54.92940493, 54.92721698, 54.92217975, 54.91538142, 54.91118466, 54.90682262, 54.90262591, 54.89926864, 54.89599421, 54.89472879, 54.89321563, 54.89018938, 54.88624147, 54.88061704, 54.8781006, 54.87139042, 54.86627511, 54.8629199, 54.85872698, 54.85453387, 54.85034087, 54.84530958, 54.83768155, 54.83248666, 54.8273745, 54.82050355, 54.81455372, 54.8076838, 54.80424905, 54.79922108, 54.79838312, 54.7923522, 54.78472833, 54.78037324, 54.77601872, 54.7708266, 54.767393, 54.75885059, 54.75357606, 54.75014263, 54.74662635, 54.7422726, 54.73800185, 54.73716433, 54.73029801, 54.72159057, 54.71363777, 54.70911756, 54.70635524, 54.70275549, 54.69915561, 54.6928763, 54.68919238, 54.68391704, 54.67545959, 54.66457388, 54.65427444, 54.64581711, 54.63811326, 54.63384257, 54.6260545, 54.61558633, 54.60855074, 54.60511695, 54.59900251, 54.59456268, 54.5858508, 54.58501334, 54.57822903, 54.56717235, 54.56122494, 54.55686745, 54.51584337, 54.51512086, 54.50905052, 54.50601534, 54.50066751, 54.49618808, 54.49243082, 54.48571211, 54.47906636, 54.47386519, 54.46801463, 54.46295957, 54.45501676, 54.44627876, 54.44042933, 54.41985381, 54.4190861, 54.41628251, 54.41351793, 54.41029188, 54.40710484, 54.4039181, 54.40307291, 54.39904193, 54.39658446, 54.39339874, 54.39098031, 54.38894552, 54.38572106, 54.38372532, 54.37969478, 54.37578157, 54.37305807, 54.37075714, 54.37037364, 54.36715016, 54.36465474, 54.3618927, 54.35713586, 54.35475768, 54.35318521, 54.35119043, 54.3467786, 54.34393921, 54.34152219, 54.33872192, 54.33277716, 54.32848276, 54.32380517, 54.31778274, 54.31456052, 54.29679964, 54.29480537, 54.2931552, 54.2914659, 54.28969829, 54.287125, 54.28466906, 54.28102431, 54.27868589, 54.27412667, 54.27374348, 54.26845699, 54.26500813, 54.2608712, 54.25711733, 54.25416901, 54.25079827, 54.25003183, 54.24585551, 54.24206232, 54.22725924, 54.22416809, 54.22099426, 54.21220476, 54.21147336,

24 March 2016 – F-39 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 176: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

54.19951137, 54.19642076, 54.19251623, 54.18950806, 54.18649976, 54.18276008, 54.17893788, 54.17601171, 54.17300305, 54.16844876, 54.16372998, 54.16210232, 54.15347866, 54.14558664, 54.14086814, 54.13704528, 54.13468599, 54.13151295, 54.1259806, 54.12036638, 54.11491579, 54.10791935, 54.10027218, 54.09417019, 54.0895323, 54.08473137, 54.07691955, 54.07057213, 54.06593335, 54.05974804, 54.05364356, 54.04354971, 54.03972322, 54.00414367, 54.00023489, 53.99624522, 53.99323042, 53.98858682, 53.98557111, 53.98084626, 53.97604085, 53.97034078, 53.96472052, 53.95917999, 53.95600207, 53.95200943, 53.9464676, 53.94157973, 53.93424758, 53.93017396, 53.92528548, 53.92039647, 53.91876665, 53.91159249, 53.90670252, 53.90026232, 53.89047989, 53.88403765, 53.87759462, 53.87278186, 53.86486614, 53.85866041, 53.85221388, 53.84584656, 53.83939889, 53.83205402, 53.82715676, 53.82225881, 53.81899334, 53.78294137, 53.77864059, 53.77261943, 53.76737436, 53.76118497, 53.75766012, 53.74966575, 53.74511222, 53.73969826, 53.73161918, 53.72706485, 53.72337065, 53.71684215, 53.71400785, 53.71022843, 53.7055885, 53.7012021, 53.69337315, 53.68812548, 53.68184781, 53.67651509, 53.67195801, 53.63066617, 53.62980521, 53.62274729, 53.61741129, 53.61129848, 53.60354602, 53.59570875, 53.59140167, 53.58364843, 53.58020236, 53.5724482, 53.56814006, 53.56555511, 53.56046987, 53.55443766, 53.5519372, 53.54607418, 53.54271151, 53.53840149, 53.532451, 53.52650001, 53.51968594, 53.51459615, 53.51373367, 53.505971, 53.50079467, 53.49319803, 53.48732631, 53.48404318, 53.48153833, 53.47730688, 53.47299054, 53.44573257, 53.43799013, 53.43688407, 53.42703808, 53.42283069, 53.41619393, 53.40623792, 53.39849397, 53.39074961, 53.38311335, 53.37326413, 53.36562746, 53.35677548, 53.34803071, 53.34028329, 53.33474917, 53.3270011, 53.31150373, 53.29711049, 53.2915738, 53.28714431, 53.28160647, 53.27606899, 53.25736935, 53.25074243, 53.24143287, 53.23439845, 53.22756637, 53.21804786, 53.21328733, 53.2039687, 53.19713233, 53.1900898, 53.18325168, 53.17661886, 53.17019147, 53.15713007, 53.14842193, 53.13763939, 53.13328487, 53.11814633, 53.10964249, 53.10113894, 53.09263462, 53.08433683, 53.06587202, 53.05549785, 53.03889773, 53.02229547, 53.00569087, 52.9890842, 52.97455138, 52.96271051, 52.95294356, 52.9429695, 52.93112185, 52.92424181, 52.92297815, 52.9179624, 52.91253828, 52.90503307, 52.90148035, 52.8916901, 52.87981749, 52.86022261, 52.84645926, 52.83477106, 52.8270422, 52.81514847, 52.80325086, 52.79134931, 52.78718459, 52.76883321, 52.74819562, 52.73588773, 52.72357792, 52.7133515, 52.70331578, 52.69555648, 52.68779511, 52.67852433, 52.66905486, 52.66147467, 52.6540819, 52.64079987, 52.63719219, 52.63301422, 52.62313707, 52.61325523, 52.57574824, 52.57026108, 52.56296228, 52.54990437, 52.54233106, 52.53187723, 52.52168232, 52.5140977, 52.51200408, 52.50467852, 52.49682311, 52.48007327, 52.47143884, 52.45705008, 52.44841702, 52.42827342, 52.41100751, 52.39661941, 52.38223129, 52.36157252, 52.33855106, 52.32703957, 52.3184059, 52.30427346, 52.29301733, 52.2733809, 52.25924529, 52.23621832, 52.22208128, 52.2137003, 52.20531854, 52.18905819, 52.16703205, 52.15601579, 52.15050649, 52.13710777, 52.12921614, 52.12395307, 52.11367176, 52.10337969, 52.09332878, 52.08566346, 52.08087635, 52.07392817, 52.07249447, 52.07345699, 52.07465517, 52.07008047, 52.06237588, 52.05201841, 52.04671937, 52.0390031, 52.02792757, 52.01154123, 51.99780284, 51.9814026, 51.97030673, 51.95077794, 51.93701819, 51.92614183, 51.91503482, 51.90704229, 51.89393793, 51.88949685, 51.88682739, 51.88193229, 51.8607729, 51.83825546, 51.81640208, 51.80005136, 51.79107988, 51.78210896, 51.77154294, 51.76618935, 51.75534227, 51.7427588, 51.72989587, 51.71862936, 51.70938323, 51.69666587, 51.68742182, 51.68005527, 51.66532374, 51.65594125, 51.64655964, 51.63746038, 51.62648572, 51.61752835, 51.61059007, 51.6053843, 51.59427051, 51.58676834, 51.57551574, 51.56974928, 51.55690407, 51.54780947, 51.53712048, 51.53004111, 51.52268197, 51.51518335, 51.50206128, 51.48706525, 51.47206961, 51.45520012, 51.44770264, 51.44020521, 51.42535072, 51.4122307, 51.40112516, 51.38453695, 51.37558612, 51.37052302, 51.36733298, 51.36761171, 51.36629416, 51.36150452, 51.35282584, 51.34254647, 51.33386368, 51.3290637, 51.32640804, 51.32654416, 51.32388223, 51.32268434, 51.32134991, 51.31867756, 51.31372507, 51.31051144, 51.31064479, 51.29993425, 51.29083071, 51.28547461, 51.27462882, 51.26766117, 51.2643089, 51.26322434, 51.26453367, 51.26492489, 51.26182726, 51.25297561, 51.24412217, 51.23352162, 51.22453568, 51.21205626, 51.20319471, 51.1960789, 51.18896211, 51.17647255, 51.16773064, 51.16823595, 51.16899161, 51.17524387, 51.17924417, 51.18686905, 51.19624349, 51.20424218, 51.21248719, 51.21860693, 51.22297402, 51.2293357, 51.23557158, 51.24343625, 51.25280854, 51.26030567, 51.26580575, 51.28043083, 51.28780399, 51.29867861, 51.31142582, 51.32417126, 51.33341557, 51.34653004, 51.35964398, 51.36925808, 51.37712158, 51.38673442, 51.39272317, 51.398711, 51.41268016, 51.41866592, 51.42676745, 51.43250893, 51.44435524, 51.45021727, 51.45432635, 51.4626627, 51.46900237, 51.47896746, 51.49467066, 51.50427642, 51.51563747, 51.52313248, 51.53636814, 51.54784853, 51.56132183, 51.56718085, 51.57889884, 51.58885964, 51.59694596, 51.60503085, 51.6148727, 51.62459761, 51.62892982, 51.63372191, 51.63851197, 51.66863901, 51.67357171, 51.6768007, 51.67749577, 51.67792858, 51.67692026, 51.67032254, 51.6650765, 51.66126883, 51.66008432, 51.65762925, 51.656528, 51.65398591, 51.6485625, 51.64610187, 51.64668713, 51.64726982, 51.65089677, 51.65131015, 51.6557955, 51.66381922, 51.66863043, 51.67327619, 51.67648103, 51.68808049, 51.69696156, 51.70600397, 51.71488303, 51.72520088, 51.73559845, 51.74439533, 51.75303152, 51.76030839,

24 March 2016 – F-40 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 177: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

51.76494615, 51.76966283, 51.77565858, 51.78005576, 51.78620965, 51.78780743, 51.79116022, 51.79155426, 51.79194712, 51.7922607, 51.79409097, 51.79591981, 51.79910902, 51.80373696, 51.80700202, 51.81306759, 51.82064879, 51.82519706, 51.83118426, 51.84020262, 51.84899124, 51.86050579, 51.87058102, 51.87338331, 51.88428475, 51.89510548, 51.90502562, 51.90949798, 51.91253093, 51.93536103, 51.92938934, 51.93741727, 51.94394867, 51.95015229, 51.95651427, 51.95980327, 51.96036011, 51.96208789, 51.96695004, 51.9799493, 51.98213134, 51.99108483, 51.99995908, 52.00734098, 52.01629039, 52.02978992, 52.04194523, 52.04859392, 52.05195464, 52.05352095, 52.06142709, 52.06612058, 52.070817, 52.07730263, 52.08214511, 52.08378313, 52.09160209, 52.10396285, 52.11029032, 52.12250241, 52.13776605, 52.14699554, 52.1515375, 52.16196584, 52.17686256, 52.19026842, 52.19175794, 52.20494424, 52.20933912, 52.21961708, 52.23011399, 52.23614331, 52.24358844, 52.25252228, 52.26599576, 52.27954178, 52.28259258, 52.29494108, 52.30736106, 52.31487786, 52.31948943, 52.32842246, 52.34033316, 52.34926598, 52.3640813, 52.38336265, 52.39214946, 52.40554914, 52.41157783, 52.41760656, 52.42527045, 52.43278834, 52.43725533, 52.44618953, 52.45207277, 52.46674391, 52.47545581, 52.48707295, 52.49839426, 52.50397934, 52.50658427, 52.5060596, 52.51305189, 52.51989324, 52.52234062, 52.52493808, 52.5260458, 52.5284094, 52.53359152, 52.53782646, 52.54213667, 52.54965969, 52.5780761, 52.57341523, 52.57946823, 52.5857628, 52.59974073, 52.61371391, 52.6261319, 52.6337279, 52.63960844, 52.64671202, 52.65250652, 52.66320169, 52.67250654, 52.68206028, 52.68695912, 52.69340671, 52.70278702, 52.71330025, 52.71778149, 52.72217967, 52.72804273, 52.73252212, 52.73846619, 52.75043561, 52.76127108, 52.76754549, 52.77235503, 52.77774345, 52.7866274, 52.79314324, 52.80413571, 52.81016066, 52.81593984, 52.82489092, 52.84587841, 52.85352435, 52.85962404, 52.87165648, 52.87783777, 52.89329086, 52.89938773, 52.90515012, 52.8970072, 52.8840592, 52.87402691, 52.87326149, 52.87721244, 52.88459383, 52.89652148, 52.9070746, 52.9178855, 52.92560721, 52.93487277, 52.94268005, 52.94576803, 52.96163909, 52.97304712, 52.9890823, 52.9986843, 53.00940244, 53.0214067, 53.02715016, 53.03289183, 53.03717551, 53.04411005, 53.04984534, 53.05875219, 53.06664056, 53.06990052, 53.07976532, 53.0945998, 53.10282819, 53.10779822, 53.10942627, 53.11739471, 53.13298912, 53.14395585, 53.15475194, 53.16246329, 53.17497153, 53.18593736, 53.19698784, 53.20332638, 53.21754532, 53.22062987, 53.23322173, 53.24401794, 53.25756099, 53.26947648, 53.27393398, 53.27864658, 53.28952941, 53.29569978, 53.30341296, 53.30932836, 53.3120726, 53.31867113, 53.32569376, 53.33486347, 53.33992421, 53.34824151, 53.3485851, 53.35372746, 53.35998445, 53.37061471, 53.37327303, 53.37721504, 53.37661077, 53.3905874, 53.3952176, 53.40078481, 53.40163192, 53.40556247, 53.40993026, 53.4212616, 53.42443681, 53.43189323, 53.43943769, 53.4498074, 53.45726451, 53.46472165, 53.47081117, 53.48135777, 53.48899292, 53.49870324, 53.5086788, 53.52646998, 53.53574286, 53.54148598, 53.54860089, 53.55116258, 53.55107382, 53.56644735, 53.58244295, 53.58898208, 53.59242729, 53.59750599, 53.60112392, 53.61358705, 53.63508097, 53.64556741, 53.64711563, 53.65304666, 53.66362273, 53.67136654, 53.67601352, 53.68513344, 53.68943012, 53.69983676, 53.69974853, 53.71334561, 53.7194586, 53.74120012, 53.75052163, 53.76697087, 53.78574134, 53.79505329, 53.80668869, 53.81818348, 53.83665494, 53.83898053, 53.84856239, 53.85404875, 53.8546031, 53.84817878, 53.83956023, 53.84257104, 53.85200825, 53.87265692, 53.88195316, 53.88687209, 53.90559208, 53.91242392, 53.91433826, 53.93018297, 53.9417898, 53.95121021, 53.95871646, 53.95952753, 53.96278818, 53.97001491, 53.99499438, 53.996911, 54.0006053, 53.9996529, 53.99419269, 53.99377935, 53.99308754, 53.9949883, 54.00152694, 54.01459683, 54.02330588, 54.03257822, 54.04184796, 54.05111697, 54.0671921, 54.07574996, 54.081844, 54.0835872, 54.08243311, 54.08214301, 54.08575542, 54.08994796, 54.09847618, 54.10512745, 54.11842761, 54.13896439, 54.14344483, 54.1735265, 54.18509333, 54.20851815, 54.21343992, 54.22559072, 54.24177498, 54.25549844, 54.2598274, 54.26587392, 54.28406716, 54.28637802, 54.30039089, 54.31007799, 54.31499467, 54.32467617, 54.33622397, 54.35195038, 54.35858575, 54.37200062, 54.38339897, 54.39494448, 54.40418178, 54.41110862, 54.4203441, 54.4340488, 54.44283929, 54.44701125, 54.4579583, 54.46488352, 54.478882, 54.48841204, 54.50054481, 54.50977674, 54.5182677, 54.52214065, 54.52400094, 54.53248307, 54.54171475, 54.55355434, 54.56338398, 54.56829781, 54.57998508, 54.5890658, 54.59680252, 54.59975964, 54.60130841, 54.60731725, 54.61408831, 54.62732387, 54.63624913, 54.64778985, 54.65702253, 54.67133135, 54.68378765, 54.6942326, 54.70742553, 54.71784889, 54.73332001, 54.74891959, 54.76823436, 54.77859759, 54.80603299, 54.80622255, 54.80717764, 54.81468977, 54.81937223, 54.82421645, 54.82852011, 54.82998261, 54.83384836, 54.83700375, 54.84122715, 54.84175171, 54.85178488, 54.85529792, 54.86197618, 54.86864959, 54.88147966, 54.88814145, 54.89196932, 54.89562532, 54.89929339, 54.90296034, 54.91009441, 54.91371891, 54.92063916, 54.93070312, 54.93731115, 54.94406712, 54.94767187, 54.95127523, 54.96116009, 54.96475439, 54.97148512, 54.97806089, 54.98478023, 54.99148305, 55.00131012, 55.00472907, 55.00828972, 55.01483491, 55.02435812, 55.03401409, 55.0469238, 55.0503179, 55.05982159, 55.07257382, 55.08544712, 55.09805073, 55.10791078, 55.12062072, 55.130334, 55.14290541, 55.15559833, 55.1651764, 55.1747498, 55.18431742, 55.19387549, 55.20329773, 55.21271626, 55.21915022, 55.22844552, 55.23177953, 55.24118776, 55.25380198, 55.26297468, 55.27557009, 55.2878316, 55.29081452, 55.30009258,

24 March 2016 – F-41 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 178: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

55.31842641, 55.32759212, 55.34890888, 55.36137346, 55.3736238, 55.38288818, 55.39832483, 55.40758464, 55.4199272, 55.43226593, 55.44141736, 55.44768392, 55.46290123, 55.47224995, 55.49064131, 55.50286674, 55.51537724, 55.5306753, 55.53692571, 55.5461582, 55.55539003, 55.57068001, 55.57990814, 55.59836275, 55.61066355, 55.61988729, 55.63226916, 55.64447082, 55.65675939, 55.67203097, 55.69028602, 55.70853962, 55.72380703, 55.73608732, 55.74529629, 55.75450468, 55.76362951, 55.78785293, 55.80012747, 55.81223926, 55.82741938, 55.83961208, 55.85180471, 55.86399701, 55.86706487, 55.87925677, 55.89144815, 55.90065099, 55.92204192, 55.93423217, 55.94941343, 55.9586117, 55.97686138, 55.98598704, 56.0071587, 56.02227541, 56.04038377, 56.05849322, 56.07967502, 56.10677727, 56.1429468, 56.16714174, 56.19426818, 56.21540393, 56.23347124, 56.25754299, 56.27261936, 56.28469725, 56.30878328, 56.33595664, 56.36021405, 56.39357346, 56.41785148, 56.44203568, 56.46322929, 56.48730095, 56.51138353, 56.53848689, 56.5565623, 56.62149546, 56.62596331, 56.6347453, 56.65230378, 56.65449802, 56.66331154, 56.67427925, 56.69190389, 56.71171404, 56.72713465, 56.73812971, 56.75127496, 56.76003697, 56.77313875, 56.78623714, 56.80152163, 56.81242594, 56.83430634, 56.84961998, 56.86711627, 56.88023563, 56.89772481, 56.91083935, 56.92618889, 56.93492739, 56.95021722, 56.96549145, 56.97857731, 56.98953176, 56.99617556, 57.00942609, 57.02039032, 57.04003321, 57.05967236, 57.07702456, 57.1008329, 57.12461803, 57.14411842, 57.15711626, 57.17015593, 57.18755473, 57.19627549, 57.20281575, 57.21371588, 57.22243558, 57.23542605, 57.24845977, 57.25931299, 57.26794104, 57.28092694, 57.29182377, 57.30494511, 57.31584153, 57.32669197, 57.33972361, 57.34611983, 57.35692203, 57.36994961, 57.38079777, 57.38728762, 57.39377733, 57.40452905, 57.41319721, 57.42399584, 57.43706155, 57.44359454, 57.45229144, 57.46971556, 57.47837446, 57.48490718, 57.5000249, 57.51946806, 57.53244768, 57.54755787, 57.55186786, 57.56696715, 57.57122906, 57.58415614, 57.59708078, 57.61006212, 57.61872946, 57.63383396, 57.64675846, 57.65319478, 57.66175967, 57.67702812, 57.68782602, 57.70527967, 57.72272244, 57.73563097, 57.74862279, 57.75298852, 57.76383451, 57.77245197, 57.78548194, 57.79841854, 57.8071062, 57.88414763, 57.88831915, 57.89666183, 57.90506076, 57.91345942, 57.92579724, 57.92973344, 57.93578001, 57.9482243, 57.95861211, 57.96700586, 57.97534038, 57.98784126, 57.9982834, 58.01494662, 58.02538985, 58.03800645, 58.05043666, 58.06068907, 58.07087474, 58.07913493, 58.0852812, 58.09763301, 58.10179244, 58.10787355, 58.12048256, 58.12041597, 58.13283078, 58.14505267, 58.15072317, 58.15065657, 58.15032175, 58.16055075, 58.16682545, 58.17718822, 58.1917084, 58.20425645, 58.21046025, 58.21863635, 58.22899167, 58.2350469, 58.24110031, 58.24715173, 58.25101373, 58.25917505, 58.26090553, 58.26481305, 58.26654565, 58.27039991, 58.27212951, 58.2739415, 58.27574796, 58.27755078, 58.28146724, 58.28538353, 58.28929715, 58.29719334, 58.30126046, 58.30737408, 58.31746824, 58.32764335, 58.34188474, 58.35620451, 58.36222639, 58.36629923, 58.3766395, 58.38496108, 58.39310854, 58.40549276, 58.41371527, 58.42397177, 58.43007427, 58.43821177, 58.44210333, 58.44608204, 58.45209549, 58.4579234, 58.463842, 58.46790707, 58.47602072, 58.48219844, 58.49650236, 58.50464003, 58.50676297, 58.51675597, 58.526925, 58.53487839, 58.54301618, 58.54902204, 58.55493113, 58.55890165, 58.56684263, 58.56887514, 58.57477917, 58.58077627, 58.58860898, 58.59440957, 58.59827512, 58.60213704, 58.60813086, 58.61422537, 58.62224394, 58.62843669, 58.65711002, 58.65878168, 58.66529063, 58.67188626, 58.68525327, 58.68877337, 58.69739296, 58.70759186, 58.71927957, 58.72911728, 58.73394664, 58.74202359, 58.75000929, 58.75501519, 58.7702086, 58.77696955, 58.78372969, 58.79382409, 58.80049272, 58.8089173, 58.81734116, 58.83418418, 58.84602371, 58.85444145, 58.86128101, 58.86794366, 58.87951373, 58.88608703, 58.89590074, 58.90071866, 58.91035314, 58.92007406, 58.92628603, 58.93424928, 58.944324, 58.95160479, 58.95537503, 58.95896768, 58.9609839, 58.96466194, 58.97691651, 58.98749936, 58.99458003, 58.99492188, 58.9954316, 58.99926534, 59.00292788, 59.00675565, 59.00891407, 59.01139938, 59.01148125, 59.01205181, 59.01562023, 59.01958851, 59.01982829, 59.02529314, 59.03075497, 59.03613573, 59.04302024, 59.0482413, 59.05520058, 59.06382016, 59.07402277, 59.08596243, 59.09276225, 59.09956154, 59.11617734, 59.12478886, 59.13513549, 59.14714095, 59.15906913, 59.1675989, 59.17605359, 59.18111137, 59.18963937, 59.19997472, 59.20525138, 59.21059971, 59.21587352, 59.21789718, 59.22157764, 59.22865068, 59.23225706, 59.23398915, 59.24278846, 59.24978332, 59.25518458, 59.260376, 59.27255531, 59.28293294, 59.29144357, 59.29995374, 59.30334409, 59.31510905, 59.32016078, 59.35894733, 59.36194532, 59.37251528, 59.38283928, 59.38811815, 59.41019584, 59.42123132, 59.43502237, 59.44893131, 59.46008007, 59.47410197, 59.49099487, 59.50236915, 59.51385399, 59.52567665, 59.53152701, 59.54024006, 59.55973446, 59.58450559, 59.59826397, 59.6037652, 59.6257713, 59.64227489, 59.6532744, 59.66702259, 59.68076952, 59.68901521, 59.69726295, 59.70836698, 59.72507531, 59.73903162, 59.74177883, 59.75858614, 59.76704216, 59.77824306, 59.79218592, 59.79535586, 59.79587936, 59.79344424, 59.78571998, 59.77524283, 59.7785889, 59.77908185, 59.78221808, 59.78299044, 59.78365542, 59.78677448, 59.78979723, 59.80909467, 59.8145846, 59.82547041, 59.83909985, 59.84970682, 59.85757146, 59.87649912, 59.88747456, 59.90393649, 59.91509768, 59.92927843, 59.93229668, 59.93805522, 59.94390136, 59.94974317, 59.96345875, 59.97150936, 59.97672586, 59.98184903, 59.98413409, 59.98924881, 59.9916172, 59.99937203, 60.00437817, 60.00379669, 60.00888996, 60.01936465, 60.032677,

24 March 2016 – F-42 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 179: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

60.04364701, 60.06020215, 60.07137132, 60.07969774, 60.09096347, 60.09948456, 60.11064814, 60.12700309, 60.13513138, 60.14276748, 60.15049615, 60.16096153, 60.17162593, 60.18533781, 60.20199541, 60.20768223, 60.2135681, 60.20848028, 60.20897278, 60.21220218, 60.2233641, 60.2373631, 60.25968144, 60.26516583, 60.27623174, 60.29268385, 60.30630238, 60.32247284, 60.33306267, 60.33826099, 60.38703675, 60.39244583, 60.40929743, 60.41772408, 60.42905544, 60.44911295, 60.46324246, 60.48878727, 60.49719667, 60.50830417, 60.5194079, 60.52760057, 60.53278339, 60.54033644, 60.54539778, 60.54776049, 60.55313887, 60.56702318, 60.58123469, 60.58984669, 60.59049372, 60.59372785, 60.60792288, 60.6189979, 60.63577509, 60.64706457, 60.65824772, 60.66964057, 60.68123952, 60.68993676, 60.69883796, 60.7046317, 60.71590764, 60.72408042, 60.72635343, 60.7339944, 60.73925855, 60.74687453, 60.75201622, 60.75672271, 60.76176536, 60.76109383, 60.7657564, 60.76492575, 60.76432265, 60.76103801, 60.75737689, 60.75115715, 60.74785437, 60.73856767, 60.73233888, 60.72623546, 60.71707116, 60.71374654, 60.7074903, 60.70095345, 60.70026317, 60.69928531, 60.69800789, 60.69978883, 60.69891224, 60.70111677, 60.71154397, 60.72535205, 60.74209914, 60.7563504, 60.76795559, 60.77676574, 60.78586229, 60.79187469, 60.79817112, 60.80474753, 60.81060785, 60.81409699, 60.82635271, 60.8324732, 60.83872401, 60.85053989, 60.85677515, 60.86300295, 60.8692231, 60.878094, 60.89012441, 60.89328611, 60.90226532, 60.90833306, 60.91995888, 60.93145625, 60.94016968, 60.95178384, 60.96061687, 60.96642003, 60.98067419, 60.99771046, 61.01764558, 61.02343788, 61.03490566, 61.04915081, 61.0689541, 61.08597217, 61.09464512, 61.1032058, 61.11743402, 61.13433018, 61.15133136, 61.16266382, 61.17687958, 61.18265083, 61.19397795, 61.20273561, 61.21138493, 61.22249885, 61.23628644, 61.25552492, 61.26108113, 61.27219312, 61.28330483, 61.29719399, 61.31941488, 61.33319729, 61.34430724, 61.35263977, 61.36642191, 61.38308559, 61.39974927, 61.41363565, 61.42474461, 61.43029915, 61.44151388, 61.4581776, 61.46928669, 61.48584478, 61.4967416, 61.50486, 61.51863974, 61.52697205, 61.53786682, 61.54886907, 61.56553505, 61.57942403, 61.59331367, 61.61276013, 61.62376444, 61.63688939, 61.64478113, 61.65278129, 61.65811379, 61.66032637, 61.66809065, 61.68175461, 61.69576451, 61.71533562, 61.7320129, 61.74591094, 61.759811, 61.77093154, 61.78205261, 61.79016809, 61.80094385, 61.8144993, 61.81982715, 61.83373555, 61.84764624, 61.86433638, 61.87557757, 61.88960888, 61.90085795, 61.91477843, 61.92858559, 61.93972541, 61.95341903, 61.96711321, 61.97802029, 61.98892691, 61.99995328, 62.01388762, 62.02782374, 62.04466986, 62.05303442, 62.06418811, 62.07813348, 62.09487208, 62.11161467, 62.12557305, 62.13674148, 62.15338101, 62.16734574, 62.17572524, 62.19248688, 62.20925133, 62.22065829, 62.2318427, 62.24594076, 62.25712955, 62.27135487, 62.28267329, 62.37251919, 62.37636154, 62.38028401, 62.38980467, 62.39364395, 62.40332, 62.40715652, 62.41107187, 62.41674436, 62.42441186, 62.42648516, 62.42687538, 62.42741638, 62.42956027, 62.43170233, 62.43216239, 62.43459739, 62.44054637, 62.44267997, 62.44488482, 62.45067828, 62.46197805, 62.46932449, 62.4768126, 62.48804335, 62.49566952, 62.50329335, 62.50942126, 62.50996694, 62.51383988, 62.5178455, 62.52361669, 62.53122228, 62.53685954, 62.54610208, 62.55540998, 62.56098175, 62.57199631, 62.57763207, 62.57978689, 62.58567304, 62.58953206, 62.58978095, 62.59553461, 62.59767626, 62.59993547, 62.60035383, 62.6005313, 62.59715421, 62.58815291, 62.58293681, 62.57760375, 62.57421879, 62.57083139, 62.56749634, 62.56237777, 62.56081527, 62.55930372, 62.55941055, 62.55962295, 62.558051, 62.55652805, 62.55479633, 62.55341971, 62.55357035, 62.5537696, 62.55391792, 62.55421143, 62.55450077, 62.54937654, 62.54594134, 62.54245789, 62.5371848, 62.53548697, 62.53575451, 62.53413972, 62.53431296, 62.5345279, 62.53290611, 62.52940605, 62.52586367, 62.52056966, 62.51530522, 62.51358916, 62.50828369, 62.50477084, 62.49579139, 62.4940326, 62.48677293, 62.48138818, 62.47595198, 62.47063095, 62.46348029, 62.46175886, 62.45824348, 62.45483045, 62.45310503, 62.45151223, 62.44982724, 62.4499654, 62.44650523, 62.44479428, 62.44125212, 62.43951191, 62.43416939, 62.42697282, 62.42174218, 62.41636075, 62.41100316, 62.40913923, 62.40557007, 62.40383142, 62.40028371, 62.39854639, 62.39502105, 62.39142648, 62.38242473, 62.37522952, 62.37525784, 62.37163843, 62.36988411, 62.36629246, 62.36274253, 62.35916265, 62.35921488, 62.3593047, 62.35936896, 62.3557938, 62.3503544, 62.34493459, 62.34129248, 62.33584206, 62.33221046, 62.3267557, 62.3212894, 62.31766236, 62.31404918, 62.31043837, 62.30862492, 62.30500812, 62.30506906, 62.3032864, 62.30150913, 62.30153381, 62.30156507, 62.30158714, 62.30160963, 62.29978482, 62.28321699, 62.29541822, 62.31167674, 62.32383496, 62.33190731, 62.33180069, 62.33168027, 62.32750081, 62.31514356, 62.3027495, 62.29029463, 62.28622318, 62.28605555, 62.28582333, 62.28561412, 62.28543794, 62.28936669, 62.28912763, 62.28897847, 62.29684979, 62.29663284, 62.29629215, 62.29593531, 62.28756252, 62.28324524, 62.26654019, 62.26218299, 62.26182603, 62.26967662, 62.28155113, 62.29349408, 62.30551134, 62.32158683, 62.34163865, 62.34933598, 62.35710779, 62.36081182, 62.36035639, 62.37213152, 62.37981962, 62.38767908, 62.40365964, 62.41949386, 62.43552776, 62.45156201, 62.46738281, 62.47100994, 62.47867133, 62.48217884, 62.48567145, 62.48520189, 62.47250814, 62.4599325, 62.44343091, 62.43498091, 62.42231954, 62.40551816, 62.40502538, 62.40045378, 62.39169085, 62.3830528, 62.37845945, 62.37372172, 62.3649223, 62.36421329, 62.35958802, 62.35885833, 62.34612059, 62.33337896, 62.31688889, 62.30459718, 62.28811408, 62.28734833, 62.29045751, 62.2937082, 62.29322575,

24 March 2016 – F-43 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 180: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

62.29257617, 62.28399768, 62.2673304, 62.24678936, 62.22625123, 62.20975655, 62.19730269, 62.18080941, 62.16835599, 62.14765748, 62.1392405, 62.1425857, 62.14978346, 62.15328742, 62.16468164, 62.16799389, 62.1553361, 62.14249251, 62.12598287, 62.11350668, 62.09680817, 62.08029926, 62.06744287, 62.05477295, 62.04210133, 62.02942682, 62.01291472, 61.99620727, 61.98352714, 61.96701435, 61.95030259, 61.93358858, 61.92472392, 61.9198798, 61.9109925, 61.89808951, 61.88538269, 61.86122837, 61.84977517, 61.84253885, 61.83532667, 61.8111741, 61.79507352, 61.77836078, 61.7436932, 61.74322457, 61.74228069, 61.73709943, 61.73614085, 61.73118673, 61.71449777, 61.70180254, 61.68886063, 61.67168503, 61.66696044, 61.65799796, 61.6490302, 61.63980431, 61.6348177, 61.62185712, 61.60940701, 61.58925894, 61.55718525, 61.54127991, 61.52140097, 61.50947669, 61.49831004, 61.49161268, 61.49309791, 61.48117091, 61.4642855, 61.45186869, 61.43970004, 61.41983691, 61.40419428, 61.38830686, 61.37937992, 61.37416941, 61.36894926, 61.35206749, 61.33569011, 61.31585467, 61.29998791, 61.28412328, 61.26429407, 61.2484329, 61.23257303, 61.22017992, 61.20332228, 61.19464014, 61.19286153, 61.19106066, 61.18949929, 61.18448882, 61.17181861, 61.15121989, 61.14250101, 61.14116028, 61.13163412, 61.12973703, 61.12891193, 61.12385033, 61.11426157, 61.11258015, 61.09901812, 61.09025592, 61.0775389, 61.0681947, 61.06703245, 61.06981297, 61.07653466, 61.0871975, 61.10150023, 61.11214194, 61.11912975, 61.11242275, 61.10661339, 61.10079108, 61.09921725, 61.09763214, 61.08452697, 61.0641697, 61.05169559, 61.05467521, 61.07375002, 61.08033985, 61.07147368, 61.06260457, 61.05635485, 61.05502666, 61.05696217, 61.05989407, 61.07926407, 61.09469316, 61.11338322, 61.1116718, 61.10925892, 61.10752165, 61.10183281, 61.09289872, 61.07214285, 61.05174027, 61.03527728, 61.01845963, 61.00092846, 60.99126154, 60.97800938, 60.96438877, 60.94718766, 60.93501542, 60.91460655, 60.89492997, 60.87525375, 60.85951334, 60.84377267, 60.82803218, 60.80872051, 60.79727823, 60.77796446, 60.76330663, 60.75293708, 60.74255805, 60.7361064, 60.72999709, 60.72746201, 60.7288571, 60.72665399, 60.72802759, 60.72545828, 60.70645139, 60.69395539, 60.67751811, 60.66004857, 60.64291777, 60.62288094, 60.60712679, 60.59171681, 60.57630456, 60.55729836, 60.50050091, 60.4935011, 60.48353355, 60.47086999, 60.46117368, 60.44878091, 60.43343022, 60.41808408, 60.40274227, 60.39063387, 60.3779929, 60.3564801, 60.33766125, 60.32530032, 60.31294213, 60.29736122, 60.28796218, 60.27561251, 60.26031305, 60.25118888, 60.23938736, 60.22169073, 60.20694634, 60.1922059, 60.17747001, 60.16273662, 60.14800807, 60.13328221, 60.12150318, 60.10678361, 60.09527835, 60.08083171, 60.06933009, 60.0578293, 60.04365407, 60.0321548, 60.01771769, 60.00595759, 59.98832103, 59.97068725, 59.95814069, 59.95093819, 59.94399959, 59.9370588, 59.92477761, 59.91303239, 59.89835232, 59.88367629, 59.8690016, 59.86019801, 59.8481943, 59.83565897, 59.82045945, 59.80846149, 59.79673097, 59.78553559, 59.77434017, 59.76314369, 59.75168184, 59.74022126, 59.72849611, 59.71677211, 59.7074533, 59.70346472, 59.69946946, 59.68695097, 59.67203679, 59.65712433, 59.63955091, 59.62783639, 59.61026601, 59.59322705, 59.58497178, 59.57405119, 59.56605661, 59.55858274, 59.55376994, 59.54628346, 59.54413116, 59.53956216, 59.53179665, 59.52275792, 59.51001833, 59.49753311, 59.48263555, 59.47359383, 59.45869595, 59.44672674, 59.4350155, 59.42278903, 59.41056284, 59.39807847, 59.39385558, 59.39281448, 59.39443487, 59.39312181, 59.38302374, 59.38683677, 59.38252748, 59.38080704, 59.37873073, 59.37337021, 59.36111339, 59.34885532, 59.33332909, 59.31745246, 59.30227902, 59.28710804, 59.27158625, 59.25245052, 59.23657823, 59.22431896, 59.2156713, 59.2063072, 59.20415688, 59.19946553, 59.19765864, 59.19332323, 59.17418513, 59.15541127, 59.13339273, 59.10812832, 59.08286336, 59.07203517, 59.06517645, 59.05109689, 59.0334057, 59.0193223, 59.00488114, 58.98357339, 58.96913039, 58.95433302, 58.93450794, 58.93379719, 58.93237114, 58.9341889, 58.93960371, 58.93779213, 58.94354903, 58.94171939, 58.94024863, 58.93516714, 58.92933787, 58.91666349, 58.90758629, 58.89527611, 58.88296234, 58.87462533, 58.8543438, 58.84638125, 58.83481668, 58.81566818, 58.80011909, 58.78855141, 58.76939853, 58.75062806, 58.72825544, 58.70227829, 58.68350292, 58.66434284, 58.64196153, 58.62678336, 58.61559241, 58.59243706, 58.58085828, 58.56490321, 58.55692329, 58.55858706, 58.5706544, 58.57307889, 58.58230534, 58.59112379, 58.58913406, 58.58353512, 58.57473253, 58.56952323, 58.56308975, 58.55026214, 58.53064412, 58.51502711, 58.49498757, 58.48295955, 58.47535113, 58.45972074, 58.4544685, 58.44879287, 58.44712358, 58.43825413, 58.43213271, 58.42049744, 58.40568639, 58.39129658, 58.37288492, 58.36039956, 58.3582765, 58.35614418, 58.35400204, 58.35947528, 58.37529414, 58.39152433, 58.39740413, 58.39880972, 58.40511844, 58.41860712, 58.43523939, 58.45589612, 58.46936578, 58.48327749, 58.50436183, 58.51781767, 58.53082021, 58.54336531, 58.54514196, 58.53928696, 58.52670891, 58.51816739, 58.51900275, 58.52166736, 58.52964909, 58.54212607, 58.55194345, 58.56129045, 58.58137539, 58.59164914, 58.60503164, 58.61840961, 58.62867635, 58.64609912, 58.66662399, 58.68403968, 58.69739923, 58.70765499, 58.72196252, 58.73889013, 58.75677074, 58.77465013, 58.79466492, 58.81109677, 58.8306122, 58.84345534, 58.84963181, 58.85174588, 58.84881697, 58.84636663, 58.84131889, 58.82863112, 58.82000502, 58.81445192, 58.8231809, 58.83240029, 58.84518591, 58.85439548, 58.86410322, 58.88044551, 58.8947258, 58.90900577, 58.92429365, 58.93958038, 58.96964927, 58.99157212, 59.0058521, 59.01505076, 59.01303078, 59.02171275, 59.02681845, 59.04364442, 59.0574098, 59.07423174, 59.08799515, 59.1114378, 59.12571304,

24 March 2016 – F-44 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 181: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

59.14304286, 59.16342578, 59.18127096, 59.19554769, 59.20625535, 59.23124099, 59.24552053, 59.26337064, 59.27557779, 59.2811583, 59.29030621, 59.29840464, 59.30344852, 59.31258182, 59.32990456, 59.34365815, 59.35741165, 59.37063713, 59.38743416, 59.40885951, 59.4302889, 59.44814916, 59.4660118, 59.47870979, 59.48783193, 59.49588331, 59.50445971, 59.51410474, 59.52321318, 59.54156215, 59.55998687, 59.57647056, 59.589353, 59.60884336, 59.63137719, 59.63960278, 59.65498587, 59.67036961, 59.72446315, 59.72814148, 59.74746494, 59.76677141, 59.79274345, 59.81277925, 59.83722836, 59.85568598, 59.87412252, 59.89332684, 59.91172977, 59.92933782, 59.94253516, 59.95727823, 59.97719287, 60.0082743, 60.03416478, 60.05326995, 60.07833914, 60.09902666, 60.11890633, 60.13877584, 60.1621901, 60.18125226, 60.19514674, 60.21499157, 60.23482762, 60.24787893, 60.2668756, 60.29263056, 60.31321005, 60.33378262, 60.36551533, 60.38261219, 60.40403191, 60.42626912, 60.45715485, 60.4777364, 60.49831643, 60.51889237, 60.53864145, 60.55838477, 60.57812029, 60.59702116, 60.61674483, 60.6364647, 60.65701204, 60.67755721, 60.69726416, 60.71015822, 60.70680519, 60.69233027, 60.67439839, 60.65560825, 60.63680271, 60.61883765, 60.5965886, 60.57433992, 60.55122252, 60.52981671, 60.50240746, 60.47072229, 60.44930205, 60.42701448, 60.40644803, 60.3841509, 60.36271154, 60.33953337, 60.31721405, 60.29488821, 60.27168058, 60.25361938, 60.23038466, 60.21229536, 60.1941954, 60.17181819, 60.15032071, 60.1288174, 60.10641961, 60.08490124, 60.06159699, 60.0349053, 60.01429357, 60.02260658, 60.01774254, 60.0005319, 60.11427672, 60.74094075, 60.90644221, 62.18924521, 62.69929285, 63.46438451, 64.10790015, 64.58878711, 66.54951197, 66.5495374, 67.22912767, 67.8497115, 68.05273423, 68.30825433, 68.53749591, 68.77433514, 69.03555107, 69.1615716, 69.89840139, 70.73486007, 71.49642982, 72.16274839, 73.0327077, 73.7647267, 73.92777636, 74.28744961, 74.77833257, 75.20468505, 75.57571657, 76.02139901, 76.02137411, 76.53397637, 77.30674849, 77.92845696, 78.36278946, 78.83368941, 79.17900364, 79.89906314, 80.27524748, 80.92972264, 81.2679563, 81.48347831, 81.92586434, 82.10134375, 82.26532648, 82.63109119, 84.10649096, 86.31863534, 89.99802816, 76.00045489, 76.00054961, 60.30588392, 60.2937153, 60.22119635, 60.30900849, 60.18174237, 60.21325108, 60.3080039, 60.33482707, 60.35156535, 60.35230073, 60.31807289, 60.08885022, 59.99986967, 59.99853008, 60.00469792, 60.00158792, 60.01734294, 60.01991416, 60.01758765, 60.00088703, 60.00045864, 60.00217607, 60.00250936, 60.01223447, 60.004496, 59.9919044, 60.00729541, 60.00682714, 59.99937769, 59.99845937, 60.00054569, 59.9984395, 60.0000758, 60.00006537]; jtfnLong = [-94.74632189, -94.74120905, -94.74678039, -94.75168184, -94.76185595, -94.76809348, -94.77759465, -94.78018849, -94.78441285, -94.78930573, -94.79419749, -94.79908786, -94.80464674, -94.80589484, -94.80848276, -94.80379281, -94.80666783, -94.80494879, -94.80160413, -94.79663389, -94.78936706, -94.77913891, -94.77646879, -94.77246512, -94.77371966, -94.7756406, -94.77918818, -94.77948145, -94.77548182, -94.77673588, -94.77569739, -94.77761699, -94.77591318, -94.76962884, -94.76600754, -94.76268242, -94.75869412, -94.75470805, -94.7490988, -94.74710749, -94.74216469, -94.73884832, -94.73553328, -94.73811972, -94.74594263, -94.75081524, -94.75502356, -94.75856734, -94.75820158, -94.76240659, -94.76661021, -94.77177104, -94.77435062, -94.77692925, -94.77427951, -94.77325071, -94.7699386, -94.76662819, -94.76265697, -94.7606722, -94.75736552, -94.75472136, -94.75663949, -94.76149862, -94.76929809, -94.78099468, -94.78651115, -94.78530512, -94.78670101, -94.7880967, -94.78913105, -94.79104327, -94.79207711, -94.79274977, -94.79022311, -94.78790185, -94.78522043, -94.78094017, -94.77702146, -94.77346373, -94.76954627, -94.76526939, -94.76418945, -94.76151197, -94.75883486, -94.75739581, -94.75276296, -94.75096561, -94.74880951, -94.74701323, -94.74449907, -94.74306299, -94.74178743, -94.7419475, -94.74174875, -94.7441824, -94.74434226, -94.7457382, -94.74801133, -94.74868969, -94.75096256, -94.75199908, -94.75550677, -94.75654303, -94.75757913, -94.75985036, -94.76335631, -94.76510907, -94.76773788, -94.76877275, -94.76733722, -94.7655435, -94.76411043, -94.76196054, -94.75857638, -94.75590934, -94.75324285, -94.75181086, -94.74755345, -94.74612223, -94.74063272, -94.7367352, -94.73212349, -94.73105153, -94.72767481, -94.72588927, -94.72498007, -94.72566092, -94.72387619, -94.72491433, -94.7255956, -94.7266334, -94.72643861, -94.72747606, -94.72569246, -94.72637342, -94.72705456, -94.72896721, -94.73000349, -94.73103927, -94.73084395, -94.7306489, -94.73009698, -94.72795931, -94.725824, -94.72475643, -94.72051589, -94.71611133, -94.70940896, -94.70358276, -94.70005482, -94.69827745, -94.69614523, -94.69472397, -94.69136232, -94.69029687, -94.68677143, -94.68114133, -94.67603192, -94.67092368, -94.66739988, -94.66141658, -94.65401683, -94.65014055, -94.6474943, -94.64572394, -94.64553721, -94.64622584, -94.64849752, -94.65147675, -94.65251885, -94.65514375, -94.65793516, -94.65968465, -94.67739402, -94.67872975, -94.68167099, -94.68367393, -94.68594677, -94.68767829, -94.69034764, -94.69234936, -94.69435077, -94.69635188, -94.69808216, -94.70074917, -94.70541511, -94.70674791, -94.70874686, -94.710475, -94.71247332, -94.71420085, -94.71659393, -94.71765501, -94.71965215, -94.72164901, -94.72337495, -94.72537117, -94.72896808, -94.73189918, -94.73416489, -94.73588898, -94.73667731, -94.73653009, -94.73731818, -94.73690022, -94.73741755, -94.73727025, -94.73778736, -94.73736936, -94.73668084, -94.73719779, -94.73584526, -94.73476357, -94.73501034, -

24 March 2016 – F-45 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 182: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

94.73392889, -94.7328479, -94.7314962, -94.73014458, -94.729457, -94.72997392, -94.73076099, -94.73167116, -94.73140092, -94.73191751, -94.73430141, -94.73415421, -94.73560396, -94.73666038, -94.73904303, -94.73916569, -94.74061451, -94.74167025, -94.74338861, -94.74483649, -94.7465543, -94.74733898, -94.74905613, -94.74890776, -94.75128688, -94.75020588, -94.75098991, -94.74990909, -94.74976072, -94.74786971, -94.74732948, -94.7463711, -94.74556099, -94.74475095, -94.74367103, -94.74259124, -94.74217351, -94.74109395, -94.74094626, -94.73932736, -94.73917959, -94.74035524, -94.74207031, -94.74258394, -94.74363718, -94.74508175, -94.74625618, -94.74757865, -94.74890102, -94.74941428, -94.75205789, -94.75284008, -94.75389199, -94.75467396, -94.75491617, -94.75569794, -94.75554917, -94.75540036, -94.75618186, -94.75696332, -94.75681441, -94.75639571, -94.75531673, -94.75462848, -94.7540891, -94.75247112, -94.75112296, -94.75031411, -94.75016552, -94.75001696, -94.74932932, -94.74984087, -94.75155136, -94.75140266, -94.75311277, -94.75362379, -94.76125841, -94.76034229, -94.75351217, -94.74996441, -94.74615059, -94.74168836, -94.73760999, -94.7344478, -94.73102006, -94.72824231, -94.72626309, -94.72257153, -94.72097724, -94.71926528, -94.7172882, -94.71531135, -94.71097443, -94.7092637, -94.70702253, -94.70348303, -94.69967909, -94.69404711, -94.6895946, -94.68579194, -94.68199023, -94.67883925, -94.67778132, -94.67580957, -94.67448788, -94.67290211, -94.67131646, -94.66999503, -94.6686741, -94.66853124, -94.66721101, -94.66536343, -94.66404398, -94.6627247, -94.66166946, -94.65943771, -94.65682065, -94.65394103, -94.64623312, -94.64296765, -94.63878949, -94.63461175, -94.6306976, -94.62652048, -94.62025461, -94.61842991, -94.61334022, -94.60733927, -94.60433892, -94.5995135, -94.59507587, -94.59246373, -94.58776489, -94.58489097, -94.58228026, -94.57927125, -94.57796098, -94.57665095, -94.5753411, -94.57403175, -94.57272269, -94.57167573, -94.57010541, -94.568797, -94.56722792, -94.56618165, -94.56461292, -94.56330584, -94.56199896, -94.56069229, -94.55886322, -94.55925201, -94.55820742, -94.55807398, -94.55794056, -94.5581959, -94.55845118, -94.55883991, -94.55870658, -94.55987291, -94.56026162, -94.56077808, -94.56129446, -94.56142218, -94.56193847, -94.56206614, -94.56167217, -94.56153916, -94.56140625, -94.56127328, -94.56205007, -94.56191745, -94.56178464, -94.56256228, -94.56242977, -94.56112685, -94.56008461, -94.55813266, -94.55683025, -94.55370859, -94.53955919, -94.53716724, -94.53269442, -94.52822287, -94.52167156, -94.51928374, -94.5103497, -94.50380569, -94.49666717, -94.49072163, -94.4862617, -94.47972391, -94.473188, -94.46665387, -94.46012163, -94.45359084, -94.447062, -94.44112751, -94.43757212, -94.43401817, -94.43224197, -94.43402733, -94.43373605, -94.43552075, -94.43256225, -94.4284224, -94.42664888, -94.42369396, -94.41866563, -94.41156501, -94.40564668, -94.39913963, -94.38966602, -94.38078255, -94.37307666, -94.36478111, -94.35441098, -94.34670232, -94.34106724, -94.33187009, -94.32474608, -94.31762001, -94.30900562, -94.30453985, -94.30066009, -94.30093213, -94.29971463, -94.29258098, -94.28544594, -94.27505891, -94.26674861, -94.25960973, -94.2530553, -94.25124221, -94.24942855, -94.24612116, -94.24105468, -94.2339073, -94.22350729, -94.21551158, -94.21109192, -94.20758364, -94.20641453, -94.20407679, -94.19998735, -94.19291101, -94.18583678, -94.17726992, -94.16720994, -94.15715089, -94.14767484, -94.13554059, -94.1260662, -94.11243741, -94.09615108, -94.09407258, -94.0831013, -94.07362831, -94.06473384, -94.04844686, -94.03539596, -93.99822012, -93.9857044, -93.97256902, -93.96519317, -93.95431636, -93.94119231, -93.93094449, -93.92194779, -93.9152003, -93.90620385, -93.89620598, -93.88720469, -93.87370341, -93.86245011, -93.85570318, -93.8409673, -93.83197335, -93.82235733, -93.81049308, -93.80149821, -93.79413266, -93.78451844, -93.77552685, -93.76428499, -93.7559087, -93.75101496, -93.75410388, -93.75718891, -93.74593971, -93.72997505, -93.72199532, -93.71114916, -93.70092117, -93.69294216, -93.6798557, -93.66677229, -93.65757358, -93.64388281, -93.63305754, -93.62345676, -93.61263348, -93.59731667, -93.58935485, -93.57404575, -93.56281311, -93.55546415, -93.54423112, -93.53524507, -93.52565164, -93.51259605, -93.50403567, -93.49547702, -93.48570823, -93.47879354, -93.46963648, -93.45987669, -93.45132912, -93.44157594, -93.43303238, -93.4216432, -93.41206443, -93.40369046, -93.39082732, -93.38245059, -93.37018436, -93.36016165, -93.35238254, -93.34520293, -93.33682082, -93.32843807, -93.32290002, -93.30942262, -93.3010362, -93.28980323, -93.27856868, -93.26733353, -93.25774723, -93.24981076, -93.23678494, -93.22600798, -93.21747973, -93.21060311, -93.19864088, -93.18892785, -93.18205808, -93.17849199, -93.17552136, -93.17195794, -93.17017673, -93.16720885, -93.1648353, -93.16127623, -93.15725447, -93.13065753, -93.13407692, -93.13394765, -93.13491453, -93.13478513, -93.13526835, -93.13513891, -93.1367171, -93.13426816, -93.1312081, -93.12814926, -93.12509174, -93.12264647, -93.11898008, -93.1194645, -93.11702141, -93.11860086, -93.11786406, -93.12066353, -93.12053688, -93.1215041, -93.12259775, -93.12417424, -93.12513994, -93.12671528, -93.12597767, -93.12694222, -93.12328466, -93.12145655, -93.11841062, -93.11597465, -93.11353956, -93.10988807, -93.10806292, -93.10502183, -93.10258977, -93.09894336, -93.09651305, -93.08995524, -93.08230713, -93.07988064, -93.07806129, -93.07272412, -93.07030004, -93.06787655, -93.06594157, -93.06691703, -93.06910282, -93.06898461, -93.0688663, -93.06523551, -93.06342049, -93.06100109, -

24 March 2016 – F-46 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 183: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

93.05628075, -93.04865596, -93.0433348, -93.03861912, -93.03390489, -93.02628715, -93.02217791, -93.01626143, -93.01215484, -93.00514704, -92.99753935, -92.98993304, -92.98752773, -92.98452199, -92.98381508, -92.98250769, -92.98070544, -92.95034367, -92.94851312, -92.94252821, -92.94009127, -92.93532839, -92.93228514, -92.92520304, -92.92044735, -92.9127604, -92.90800725, -92.90093251, -92.89264773, -92.88850679, -92.88143861, -92.87255805, -92.87013876, -92.86590912, -92.86521031, -92.86219152, -92.86149371, -92.86019334, -92.8594957, -92.85768629, -92.85759234, -92.85689563, -92.85448484, -92.85207539, -92.84906548, -92.84434272, -92.84133557, -92.83601334, -92.83360953, -92.83060612, -92.82237608, -92.81766256, -92.81526374, -92.80995338, -92.80061812, -92.79591073, -92.79523087, -92.79455127, -92.79558505, -92.79952706, -92.80235351, -92.80458095, -92.80218897, -92.79860243, -92.79911865, -92.79843992, -92.80066651, -92.79998762, -92.79906484, -92.79846804, -92.795485, -92.79309968, -92.790119, -92.78543123, -92.78245283, -92.77776756, -92.77479123, -92.77003277, -92.76475775, -92.76178617, -92.75651438, -92.74953652, -92.74367506, -92.74130254, -92.73893068, -92.73418898, -92.73234158, -92.73627713, -92.73620662, -92.73324598, -92.7302866, -92.72503072, -92.72266492, -92.71970858, -92.71616229, -92.71202675, -92.70966445, -92.7055321, -92.70435175, -92.70022179, -92.69668345, -92.69491485, -92.69196784, -92.68843265, -92.68607666, -92.68313263, -92.65436432, -92.65304726, -92.65143421, -92.65026573, -92.64822529, -92.64748508, -92.6464649, -92.64470489, -92.64396506, -92.64322533, -92.64220552, -92.64103787, -92.63972243, -92.63855501, -92.63564459, -92.63432968, -92.6330152, -92.63140542, -92.62922022, -92.62790624, -92.62644452, -92.62498343, -92.62352251, -92.62206138, -92.61943536, -92.61812261, -92.61738529, -92.61679548, -92.61605848, -92.61474643, -92.61387641, -92.61241731, -92.6102358, -92.60805457, -92.6055927, -92.60355916, -92.60139214, -92.57314403, -92.5649107, -92.55634274, -92.54778536, -92.54265836, -92.53412742, -92.5130508, -92.49442677, -92.47623424, -92.46621743, -92.45563742, -92.44687258, -92.44306787, -92.43615802, -92.43544889, -92.42921347, -92.42601415, -92.42916241, -92.4241384, -92.43546662, -92.44845108, -92.45159852, -92.4399171, -92.43658251, -92.41993014, -92.40505169, -92.38853102, -92.35891085, -92.32280004, -92.27357917, -92.24897712, -92.20305703, -92.15057019, -92.10463897, -92.0586997, -92.00618835, -91.96679855, -91.9471007, -91.88143121, -91.87486308, -91.79762886, -91.72533546, -91.66933347, -91.59512859, -91.52241575, -91.47127677, -91.44145207, -91.39026236, -91.33904301, -91.25323659, -91.1475561, -91.10129106, -91.06162385, -91.01532852, -90.95425993, -90.90641243, -90.85553867, -90.80467986, -90.76045471, -90.70150001, -90.64107401, -90.59393368, -90.55343276, -90.51295989, -90.46589607, -90.40415413, -90.34616629, -90.30436173, -90.26776773, -90.25970786, -90.20474523, -90.19007504, -90.04621594, -90.03223656, -90.01757514, -90.0029182, -89.98758645, -89.97540787, -89.95311481, -89.92836468, -89.90048042, -89.8973339, -89.86564473, -89.83464741, -89.80232361, -89.78078705, -89.75164124, -89.74535817, -89.7124305, -89.67391237, -89.64615475, -89.61147591, -89.57615548, -89.54909602, -89.51825324, -89.49120868, -89.45033243, -89.42579475, -89.39499898, -89.37112568, -89.35352368, -89.34347939, -89.32146659, -89.30701137, -89.28942809, -89.28565583, -89.2529977, -89.2278935, -89.17648849, -89.16646399, -89.11198097, -89.08067108, -89.05812261, -89.04434099, -89.02116689, -89.00426608, -88.99676262, -88.99051219, -88.986136, -88.95924188, -88.94360063, -88.92795777, -88.90853593, -88.89725598, -88.88473421, -88.88160359, -88.86347616, -88.84411918, -88.82851647, -88.81604859, -88.80609892, -88.79364132, -88.77493338, -88.75997129, -88.74310955, -88.72624878, -88.70877878, -88.69504794, -88.67888299, -88.66706814, -88.65525686, -88.64535975, -88.63486209, -88.62184985, -88.61196748, -88.60208972, -88.59352577, -88.58365698, -88.57812008, -88.56261969, -88.542799, -88.52298625, -88.50810268, -88.49634218, -88.48398473, -88.45928151, -88.4432188, -88.42835533, -88.4060657, -88.38808959, -88.37635325, -88.36402752, -88.27565194, -88.27119195, -88.2709661, -88.26532366, -88.25285603, -88.23920896, -88.22697776, -88.21356816, -88.20275369, -88.19076008, -88.18113685, -88.17173932, -88.16352653, -88.15553855, -88.14755251, -88.13675971, -88.11865547, -88.09959606, -88.08150402, -88.06600137, -88.05190495, -88.03899245, -88.02704475, -88.01413859, -87.99725514, -87.98273738, -87.97993928, -87.9671351, -87.96530116, -87.95700537, -87.95194262, -87.94644664, -87.94374647, -87.94179244, -87.94157543, -87.93897201, -87.93788734, -87.93701975, -87.93314458, -87.92691413, -87.92443675, -87.92152713, -87.9184024, -87.91431714, -87.90530702, -87.90391359, -87.89233618, -87.89212059, -87.88590307, -87.87733296, -87.87315624, -87.86833481, -87.8632995, -87.86061873, -87.85815352, -87.85451246, -87.85226313, -87.83433563, -87.82857147, -87.82546722, -87.8209228, -87.81571223, -87.81072572, -87.80718024, -87.80341372, -87.79820935, -87.79422376, -87.78858019, -87.7823857, -87.77718801, -87.76723823, -87.76016717, -87.75497635, -87.74890636, -87.74096423, -87.73501745, -87.73336317, -87.72399728, -87.71485547, -87.71045601, -87.71023706, -87.70761072, -87.70454853, -87.70015435, -87.69719341, -87.6965382, -87.68897042, -87.68700737, -87.68262048, -87.67680512, -87.66956238, -87.66375178, -87.66024144, -87.65564516, -87.65356498, -87.64888017, -87.64801217, -87.6002503, -87.5956126, -87.58830484, -87.57152258, -

24 March 2016 – F-47 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 184: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

87.56365991, -87.54884802, -87.5435155, -87.54141349, -87.53468364, -87.53202073, -87.51259624, -87.49675796, -87.48624479, -87.47965887, -87.46244334, -87.45216545, -87.44650911, -87.4405089, -87.43877877, -87.43797216, -87.43589706, -87.43255387, -87.41906875, -87.40789113, -87.39475691, -87.37643567, -87.35121166, -87.34073194, -87.33118552, -87.32487476, -87.31499197, -87.3057955, -87.29396218, -87.29200473, -87.2778785, -87.26707369, -87.25890638, -87.24810381, -87.23534552, -87.22454588, -87.21408618, -87.19775751, -87.17947313, -87.1670596, -87.15464686, -87.13670096, -87.11970531, -87.10338194, -87.090638, -87.07202545, -87.05766126, -87.04754431, -87.03709429, -87.02893432, -87.02468806, -86.9012343, -86.89660297, -86.88935653, -86.87979804, -86.86731714, -86.86408111, -86.84713814, -86.84205791, -86.82728138, -86.81466518, -86.80620558, -86.79882392, -86.79052206, -86.78437368, -86.77300135, -86.76378283, -86.75471916, -86.74627288, -86.73475833, -86.72447384, -86.71496001, -86.70452713, -86.69624417, -86.68903571, -86.68182807, -86.67676709, -86.66971262, -86.66051394, -86.65024487, -86.64151637, -86.62897085, -86.61778857, -86.60629054, -86.59586421, -86.5862081, -86.57779209, -86.56571564, -86.55180261, -86.5496625, -86.53866383, -86.53652436, -86.52428745, -86.51083371, -86.50777535, -86.49631343, -86.48927801, -86.47612874, -86.47307165, -86.4600719, -86.45502679, -86.43820151, -86.42719314, -86.41817302, -86.40642549, -86.39438374, -86.39224838, -86.3901131, -86.38050505, -86.37303417, -86.36662869, -86.36143986, -86.35625109, -86.34999546, -86.34160584, -86.30170694, -86.29809354, -86.29279034, -86.28808587, -86.27995202, -86.26953322, -86.2672464, -86.25399952, -86.24262362, -86.23161118, -86.22914401, -86.21584651, -86.20447541, -86.20182847, -86.18191797, -86.17055112, -86.15972521, -86.1460748, -86.13435333, -86.12774287, -86.12149133, -86.11066821, -86.09755961, -86.08330762, -86.07037709, -86.0680908, -86.05305099, -86.03633281, -86.01432995, -85.99857772, -85.99250511, -85.94461882, -85.93731947, -85.92340379, -85.90982953, -85.89812357, -85.88099455, -85.86861865, -85.85845196, -85.84761465, -85.84152476, -85.83730476, -85.82935213, -85.82140136, -85.80871391, -85.79636475, -85.77961552, -85.75880076, -85.74118776, -85.73017974, -85.71597517, -85.70650692, -85.6960473, -85.68746038, -85.67854831, -85.66996966, -85.65952401, -85.65732459, -85.64182629, -85.63611456, -85.63040416, -85.6240394, -85.61833217, -85.61010141, -85.60439738, -85.59649752, -85.58542339, -85.57402773, -85.55726933, -85.54084621, -85.52378394, -85.50576218, -85.50543865, -85.39007731, -85.38403341, -85.36843503, -85.35328771, -85.32738508, -85.30709541, -85.29932053, -85.27733131, -85.24716233, -85.23423228, -85.21785804, -85.20752007, -85.18943878, -85.16534079, -85.14640828, -85.13006588, -85.11673974, -85.10430315, -85.09917018, -85.09361514, -85.08420824, -85.0764993, -85.05718693, -85.03529218, -85.01424239, -85.00564104, -84.98675874, -84.96788021, -84.95201195, -84.93572935, -84.91945102, -84.90960286, -84.87789172, -84.85862214, -84.84277441, -84.83293658, -84.81667955, -84.80384153, -84.79742338, -84.77516856, -84.76233658, -84.75933346, -84.73067221, -84.71184105, -84.69642088, -84.66639378, -84.64837626, -84.64237031, -84.611532, -84.59010752, -84.58109804, -84.49684115, -84.48640458, -84.47871212, -84.47101985, -84.46016934, -84.45131368, -84.4454095, -84.43792554, -84.42748878, -84.41327477, -84.40064279, -84.39116933, -84.38011663, -84.37085031, -84.36316374, -84.35547673, -84.34916298, -84.34127106, -84.33180208, -84.32055112, -84.3140352, -84.30533032, -84.29642269, -84.28319163, -84.27174494, -84.26248908, -84.24595719, -84.23257584, -84.22667294, -84.22529851, -84.21308872, -84.20205085, -84.19081269, -84.17799932, -84.1663622, -84.15315064, -84.14151749, -84.13146234, -84.12338411, -84.11235463, -84.10072798, -84.09047898, -84.07945247, -84.06704981, -84.0591743, -84.04834711, -84.03023747, -84.01389777, -84.00464342, -83.99085996, -83.9816046, -83.97077356, -83.96013844, -83.94910987, -83.94280798, -83.92075189, -83.9049973, -83.89850001, -83.89161281, -83.88571747, -83.87824876, -83.87175434, -83.86387941, -83.86034091, -83.8434281, -83.83674152, -83.83497314, -83.82986192, -83.81944721, -83.81218324, -83.80353938, -83.79312979, -83.77995876, -83.7685551, -83.75085526, -83.73826145, -83.7319643, -83.72900703, -83.72170877, -83.71674862, -83.71398119, -83.70806359, -83.70018864, -83.6875881, -83.67933146, -83.6706948, -83.66697431, -83.6579593, -83.64756094, -83.63558932, -83.61889486, -83.61045378, -83.59256471, -83.5778252, -83.56799909, -83.5601241, -83.54872253, -83.54538453, -83.5076718, -83.50541921, -83.50040164, -83.49202908, -83.48492102, -83.47204951, -83.46261495, -83.46044409, -83.45168285, -83.44592235, -83.43921425, -83.42915247, -83.42445716, -83.40765438, -83.39980781, -83.384508, -83.3823403, -83.37031808, -83.36748047, -83.35538325, -83.3532166, -83.34233542, -83.34166507, -83.33093945, -83.31902771, -83.31768694, -83.30904947, -83.30064342, -83.28999367, -83.27792546, -83.26905531, -83.26003145, -83.24801904, -83.23750198, -83.23474354, -83.2241507, -83.21564631, -83.20647205, -83.20513118, -83.19603366, -83.19319925, -83.17978886, -83.16928781, -83.15960801, -83.15193897, -83.14612988, -83.13711626, -83.12951886, -83.12452883, -83.11938679, -83.11804452, -83.10730582, -83.10596343, -83.09925094, -83.09507216, -83.0909688, -83.08581787, -83.07014579, -83.05439288, -83.05302367, -83.03978845, -83.03263807, -83.02206337, -83.01240091, -82.99832686, -82.99627269, -82.98219949, -82.97938507, -82.96014069, -

24 March 2016 – F-48 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 185: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

82.94987158, -82.94371024, -82.93747351, -82.93116121, -82.92515781, -82.91315317, -82.90320472, -82.89766452, -82.89319464, -82.89122743, -82.88612973, -82.88332119, -82.88066813, -82.87551804, -82.86748872, -82.86569667, -82.85743142, -82.84768562, -82.83910597, -82.83754623, -82.8306826, -82.82919997, -82.81882345, -82.80485927, -82.80126896, -82.78605614, -82.77762449, -82.76919284, -82.76357187, -82.75935625, -82.75451355, -82.75356089, -82.75572097, -82.76099516, -82.76627089, -82.77132138, -82.77627733, -82.77593333, -82.77513399, -82.77003837, -82.76032189, -82.75381795, -82.74872019, -82.74111027, -82.73445267, -82.72827176, -82.71889955, -82.70596224, -82.69669664, -82.69032099, -82.68565261, -82.68028209, -82.67639296, -82.67257911, -82.6681375, -82.66058641, -82.65536864, -82.65000222, -82.64456231, -82.64371092, -82.6346848, -82.6279162, -82.62262775, -82.61804243, -82.61112841, -82.60414163, -82.59830126, -82.59379213, -82.58928338, -82.57963833, -82.56641014, -82.55122386, -82.53758948, -82.5266183, -82.52196729, -82.51148122, -82.51076165, -82.50828947, -82.49794018, -82.49655201, -82.49084062, -82.48223858, -82.47235271, -82.46715566, -82.46222575, -82.45277837, -82.44677571, -82.44040424, -82.4305309, -82.42369027, -82.41547015, -82.40860241, -82.40271332, -82.39800423, -82.3935978, -82.38733889, -82.37522325, -82.37024246, -82.36048105, -82.35364817, -82.34974409, -82.3434078, -82.34165417, -82.33814661, -82.33424181, -82.33073414, -82.33045281, -82.33055208, -82.32959203, -82.3300885, -82.33136308, -82.33156175, -82.3332339, -82.33392889, -82.33863161, -82.34265741, -82.34375269, -82.34317383, -82.34269481, -82.34171735, -82.33409689, -82.32803314, -82.32059514, -82.3149149, -82.31001527, -82.30316395, -82.29083989, -82.28204285, -82.27481394, -82.26495129, -82.26075293, -82.25713682, -82.25694019, -82.2540081, -82.25244464, -82.25049112, -82.24844061, -82.24336832, -82.24122309, -82.23634805, -82.2373224, -82.23712743, -82.23936782, -82.24092588, -82.24024411, -82.24073093, -82.24608649, -82.24949587, -82.25203014, -82.25826496, -82.26069952, -82.26673227, -82.26819398, -82.26721926, -82.26342342, -82.26001491, -82.25748306, -82.25358855, -82.24833291, -82.24473374, -82.24094248, -82.23968075, -82.23783795, -82.23619056, -82.23493181, -82.23473825, -82.22748497, -82.22383061, -82.21755283, -82.21667248, -82.21695808, -82.21622497, -82.21840905, -82.21767583, -82.21708927, -82.21504491, -82.20746271, -82.20425476, -82.19784015, -82.19273839, -82.18734825, -82.18691192, -82.18574862, -82.18633223, -82.18575059, -82.18502403, -82.1842976, -82.18357133, -82.1827001, -82.18284983, -82.18488988, -82.18547469, -82.18722376, -82.18766303, -82.18941172, -82.19028593, -82.18941679, -82.18927195, -82.19116519, -82.19131495, -82.19349598, -82.19567765, -82.19771426, -82.19858794, -82.20004562, -82.20353298, -82.20440586, -82.2067302, -82.20890979, -82.20963769, -82.20949301, -82.21123748, -82.21559314, -82.22154427, -82.22662171, -82.23053761, -82.23430858, -82.23807904, -82.24431336, -82.24953179, -82.25300925, -82.25300658, -82.25112087, -82.25372941, -82.25372874, -82.25532154, -82.25604621, -82.25908691, -82.26458377, -82.26921486, -82.27008278, -82.27340938, -82.27702493, -82.2813627, -82.28121787, -82.2815056, -82.28251626, -82.28294935, -82.28511934, -82.30204454, -82.30191886, -82.30588954, -82.30787444, -82.31196891, -82.31370167, -82.3155596, -82.31815759, -82.31951187, -82.32111706, -82.32135349, -82.32047359, -82.31909249, -82.31882791, -82.31906545, -82.32985533, -82.32972229, -82.33123369, -82.3320859, -82.33418912, -82.33563312, -82.33707679, -82.338261, -82.34088799, -82.34312245, -82.34456472, -82.34614008, -82.3477819, -82.34988172, -82.35086476, -82.35348871, -82.35413764, -82.35432854, -82.35392811, -82.35386138, -82.35595938, -82.35884839, -82.35969668, -82.36152642, -82.36244106, -82.36283154, -82.36381282, -82.36636578, -82.36852803, -82.37009934, -82.37160357, -82.37388717, -82.37446598, -82.37497779, -82.37857394, -82.38066663, -82.3928269, -82.39380516, -82.39550693, -82.39786513, -82.40153626, -82.40572938, -82.40795258, -82.41063051, -82.41088405, -82.40942221, -82.40935511, -82.40710327, -82.40649966, -82.40444994, -82.40246769, -82.39996375, -82.39804914, -82.39791523, -82.39652294, -82.39519785, -82.38874855, -82.38539265, -82.38343013, -82.37907929, -82.37754482, -82.37123821, -82.36788748, -82.36439544, -82.35965453, -82.35491439, -82.34864332, -82.3437644, -82.337637, -82.33290112, -82.32649399, -82.32286878, -82.32258734, -82.31548027, -82.30990476, -82.30628505, -82.30141665, -82.29960785, -82.29765904, -82.29390212, -82.2915351, -82.28639194, -82.27958328, -82.26986223, -82.26181107, -82.25681485, -82.25459465, -82.24765896, -82.24377698, -82.23878612, -82.23213337, -82.22409625, -82.2139869, -82.20914052, -82.18495029, -82.18149543, -82.17942582, -82.17472461, -82.16975059, -82.16505088, -82.16146282, -82.15925944, -82.15830391, -82.15596499, -82.15224308, -82.15031432, -82.14824955, -82.14452951, -82.14371251, -82.14248732, -82.14180682, -82.14099036, -82.140174, -82.13990204, -82.13591346, -82.13509786, -82.1326287, -82.13099861, -82.12853068, -82.12606333, -82.12386791, -82.11836821, -82.11176009, -82.10929575, -82.10545131, -82.10298824, -82.10177072, -82.10095917, -82.1001477, -82.09960681, -82.09540233, -82.09469041, -82.09369396, -82.09429544, -82.09620954, -82.09709496, -82.10017768, -82.10382924, -82.10733751, -82.11187121, -82.11551979, -82.11931039, -82.12703264, -82.1309644, -82.13620583, -82.14130345, -82.14204084, -82.14220521, -82.142799, -82.14615444, -82.1481998, -82.15184014,

24 March 2016 – F-49 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 186: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

-82.17427214, -82.17412859, -82.17588147, -82.17792103, -82.17836628, -82.17707404, -82.1772321, -82.1765145, -82.1752231, -82.17464926, -82.17335839, -82.1726414, -82.17221127, -82.16990221, -82.16889907, -82.16702054, -82.16312081, -82.16109969, -82.16038401, -82.15793391, -82.15548431, -82.1528922, -82.15058657, -82.15044363, -82.14915733, -82.14829986, -82.14411931, -82.1402253, -82.13676011, -82.13488496, -82.13272464, -82.13201142, -82.12376182, -82.12248665, -82.12230452, -82.11880941, -82.11436945, -82.11327838, -82.11164277, -82.11037122, -82.10910013, -82.10597506, -82.10248823, -82.09936535, -82.0979158, -82.094614, -82.09334727, -82.09244272, -82.09117673, -82.08864581, -82.08629751, -82.08539475, -82.08467267, -82.0837704, -82.08286818, -82.08615387, -82.09207234, -82.10804994, -82.12089392, -82.13026803, -82.14969056, -82.15939757, -82.17534221, -82.18469948, -82.19751514, -82.20686584, -82.21275348, -82.21517936, -82.22348714, -82.22902291, -82.23421105, -82.23697681, -82.24492472, -82.24699616, -82.24906702, -82.25113684, -82.24975318, -82.24318959, -82.24146228, -82.23869962, -82.23593846, -82.23317852, -82.23042012, -82.22800758, -82.2156077, -82.20355666, -82.19495321, -82.18256819, -82.15710305, -82.14299195, -82.12131572, -82.10652741, -82.09140214, -82.08039881, -82.06838252, -82.05603187, -82.03201889, -82.01590576, -82.00013473, -81.9884774, -81.97615343, -81.96383355, -81.95151796, -81.95085017, -81.94097497, -81.93420537, -81.92877131, -81.92333968, -81.91824356, -81.90971451, -81.89808702, -81.88646235, -81.86421253, -81.84539954, -81.83035155, -81.81187383, -81.78554957, -81.77459747, -81.77394035, -81.76200575, -81.75007274, -81.71713983, -81.71153117, -81.68655282, -81.66071364, -81.64048476, -81.61983099, -81.59445486, -81.5742471, -81.55962768, -81.53467622, -81.51921567, -81.5072215, -81.50595797, -81.5038439, -81.50257498, -81.49961606, -81.49708188, -81.49497172, -81.49286048, -81.49933598, -81.49595027, -81.49425584, -81.49298553, -81.48616229, -81.47976055, -81.46738755, -81.46058013, -81.45722336, -81.45042573, -81.44446647, -81.43850934, -81.41719362, -81.3950559, -81.38399272, -81.37846114, -81.35759516, -81.34226307, -81.33204287, -81.30691202, -81.28177956, -81.25196394, -81.23195939, -81.2123656, -81.17827464, -81.14968851, -81.13089824, -81.10740442, -81.08310798, -81.06310692, -81.03801481, -81.02782095, -81.00783467, -80.99685357, -80.975685, -80.95961834, -80.93846653, -80.92748942, -80.91066219, -80.89461833, -80.87896711, -80.86801496, -80.85276224, -80.82265029, -80.79370262, -80.78861926, -80.76906297, -80.72371699, -80.67516665, -80.65696589, -80.6425733, -80.6322164, -80.62186627, -80.60519562, -80.59838603, -80.58781678, -80.57397534, -80.56622483, -80.56479208, -80.56056502, -80.54979547, -80.54557697, -80.54159756, -80.53364397, -80.53246668, -80.53129129, -80.52405631, -80.51659137, -80.50633727, -80.49330781, -80.48353203, -80.47911211, -80.47818419, -80.47679344, -80.4791229, -80.47146204, -80.4642656, -80.45080329, -80.44082664, -80.43689413, -80.43598241, -80.43438987, -80.43257423, -80.4307622, -80.42872696, -80.42782304, -80.42691937, -80.42210012, -80.42052506, -80.41616556, -80.40812694, -80.39797925, -80.38527393, -80.37279512, -80.36677859, -80.35452486, -80.33581653, -80.31968301, -80.29733123, -80.28121579, -80.26254081, -80.23808036, -80.2350774, -80.21062676, -80.19540184, -80.18318066, -80.15874237, -80.14310182, -80.13067681, -80.12767647, -80.11441205, -80.10736214, -80.10073496, -80.09048342, -80.07766065, -80.06825408, -80.05006868, -80.02010824, -80.01112025, -79.99573014, -79.98272385, -79.96972343, -79.95353128, -79.94353586, -79.92715518, -79.91417893, -79.90439959, -79.89462321, -79.87826993, -79.86232399, -79.85036768, -79.83243321, -79.81808192, -79.8124987, -79.81029985, -79.81128856, -79.80011594, -79.78295754, -79.77158132, -79.75701465, -79.73964933, -79.72527266, -79.71707288, -79.71804578, -79.71882441, -79.72240314, -79.73294877, -79.73672615, -79.74688915, -79.75725328, -79.76762339, -79.77160723, -79.77298825, -79.77437037, -79.76935607, -79.76114125, -79.75612302, -79.74770683, -79.73928904, -79.71963918, -79.71121417, -79.69697285, -79.69455227, -79.68069205, -79.67526235, -79.66663107, -79.64635696, -79.62889102, -79.61481109, -79.59828867, -79.59322368, -79.59135744, -79.59212024, -79.59044328, -79.58556203, -79.57785434, -79.57239629, -79.56147536, -79.54734314, -79.533015, -79.51868109, -79.50754647, -79.4994253, -79.4847023, -79.45789805, -79.43108314, -79.36795938, -79.35211519, -79.34309971, -79.32451745, -79.31290384, -79.30115383, -79.28421515, -79.26973983, -79.25540364, -79.24830431, -79.23642812, -79.22700952, -79.21745725, -79.20763852, -79.19576991, -79.17952934, -79.16328904, -79.14267232, -79.131071, -79.1268257, -79.10427609, -79.09074377, -79.08185195, -79.07282841, -79.07154941, -79.06536518, -79.05453359, -79.0483444, -79.04228256, -79.03389422, -79.03002193, -79.03079778, -79.02911937, -79.02020612, -79.0089655, -79.00250288, -79.00056247, -78.98944447, -78.98491962, -78.97121553, -78.95958178, -78.94794774, -78.93864022, -78.92713258, -78.91562334, -78.90656581, -78.89763241, -78.886244, -78.8774314, -78.86641222, -78.8597992, -78.85330898, -78.84240553, -78.83848699, -78.83947508, -78.84034053, -78.84291929, -78.86256491, -78.88455226, -78.89009401, -78.88580405, -78.88138809, -78.87434731, -78.87382947, -78.85756482, -78.84116743, -78.83443157, -78.82286057, -78.81344633, -78.79652831, -78.78940442, -78.77769783, -78.74485215, -78.72321238, -78.72396656, -78.72713931, -78.73018724, -78.7309419, -78.72965396, -78.72339496, -78.70210372, -

24 March 2016 – F-50 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 187: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

78.69024517, -78.68794785, -78.67403708, -78.66713859, -78.66024151, -78.64377423, -78.6320253, -78.62729996, -78.61578942, -78.60221434, -78.59057478, -78.58184072, -78.57091692, -78.56193067, -78.55986434, -78.56070813, -78.56191393, -78.56299934, -78.56311993, -78.57149766, -78.57429074, -78.57999816, -78.57841284, -78.57646398, -78.57706794, -78.5777924, -78.57644545, -78.57266249, -78.57046872, -78.55681847, -78.54072389, -78.53888451, -78.53436773, -78.535082, -78.53603495, -78.53675032, -78.54037999, -78.5443702, -78.54996534, -78.55103752, -78.54907229, -78.5471065, -78.54037349, -78.53852457, -78.53888103, -78.53959331, -78.54251236, -78.55103653, -78.55909504, -78.56983753, -78.5903684, -78.60308375, -78.61556011, -78.63268726, -78.6479817, -78.66817086, -78.68554626, -78.69802944, -78.71038847, -78.73021599, -78.75519346, -78.76291497, -78.76819186, -78.76637861, -78.79987869, -78.79947346, -78.80510273, -78.80309893, -78.80431554, -78.80553231, -78.80661423, -78.81238331, -78.82311165, -78.84416585, -78.85744643, -78.86349768, -78.86431784, -78.85749387, -78.85025822, -78.84315766, -78.8414255, -78.85257614, -78.85808473, -78.86614419, -78.87689208, -78.88240399, -78.89060481, -78.90446039, -78.90542528, -78.90342484, -78.89873392, -78.87617502, -78.8411188, -78.83144993, -78.82729361, -78.8329451, -78.84626101, -78.8572978, -78.87965658, -78.88289896, -78.88600474, -78.89733232, -78.89788365, -78.8992627, -78.9023727, -78.91571729, -78.92781548, -78.94460728, -78.96678412, -78.98979583, -79.01067386, -79.02160963, -79.03553244, -79.04420251, -79.0451993, -79.04591156, -79.04676646, -79.04491888, -79.04520397, -79.03382343, -79.01688653, -79.00036586, -78.99096104, -78.99451247, -79.00590012, -79.01929072, -79.03268495, -79.04337417, -79.067181, -79.08058749, -79.09172026, -79.08730951, -79.08246404, -79.06535638, -79.03839789, -79.02369954, -79.01385058, -79.01142352, -79.00442539, -79.00070464, -78.99655596, -78.99754914, -78.99825896, -78.99424903, -78.99009505, -78.98336466, -78.97878142, -78.9697524, -78.97003485, -78.96343496, -78.96442229, -78.97600545, -78.99003322, -78.99561829, -78.9934662, -78.9918829, -78.9924524, -78.99316452, -79.00147884, -79.01209108, -79.04637452, -79.06775741, -79.07121336, -79.05873305, -79.04137125, -79.03103539, -79.01596186, -79.01395129, -79.02012692, -79.03334292, -79.05446367, -79.0725653, -79.07129306, -79.07173113, -79.09042878, -79.11127737, -79.13242471, -79.14063613, -79.12614419, -79.12385148, -79.13236314, -79.13828852, -79.15228875, -79.16081301, -79.16934111, -79.17253634, -79.18137271, -79.18472315, -79.17265774, -79.15280174, -79.13108914, -79.13198597, -79.1455718, -79.16451135, -79.18040399, -79.18300225, -79.18712261, -79.17304184, -79.16324407, -79.15314103, -79.14058493, -79.12527372, -79.12386902, -79.13117815, -79.14265241, -79.14280339, -79.15122568, -79.16010627, -79.16086619, -79.16132214, -79.16745237, -79.17834588, -79.19246667, -79.19507659, -79.20690693, -79.21013702, -79.24081027, -79.24170136, -79.23934423, -79.23721017, -79.23810274, -79.23922028, -79.24425829, -79.2499704, -79.25019466, -79.24324608, -79.22015617, -79.2044646, -79.18810832, -79.16761477, -79.14822654, -79.14518486, -79.15501408, -79.15589673, -79.14848921, -79.14632863, -79.15091697, -79.16291759, -79.17625133, -79.17736233, -79.17432238, -79.15927032, -79.13569271, -79.10840537, -79.10120411, -79.1193463, -79.1313633, -79.15933307, -79.18686273, -79.21001177, -79.22180989, -79.24147403, -79.25349964, -79.26597934, -79.29095074, -79.30760647, -79.30852189, -79.3094388, -79.31035605, -79.31590318, -79.33652302, -79.36086068, -79.37685778, -79.40839073, -79.4162746, -79.44434106, -79.45664255, -79.47730973, -79.48591341, -79.50312837, -79.5131804, -79.51760914, -79.52074008, -79.52194699, -79.51645644, -79.50903215, -79.49442084, -79.49610768, -79.50151187, -79.50990981, -79.53439012, -79.54425991, -79.54450444, -79.5420104, -79.53109906, -79.52366058, -79.51274752, -79.51397031, -79.52757834, -79.53624391, -79.54961939, -79.55482194, -79.55605763, -79.55704318, -79.55778483, -79.55877441, -79.56423448, -79.57715195, -79.58957714, -79.60673492, -79.60748835, -79.60501882, -79.59806508, -79.58340021, -79.58440192, -79.60531847, -79.62573341, -79.63793584, -79.65888129, -79.65990383, -79.65320683, -79.63827259, -79.63080353, -79.62808455, -79.63310367, -79.67404226, -79.71847527, -79.73870169, -79.76345203, -79.76823634, -79.78580487, -79.79486188, -79.79619214, -79.7972572, -79.7868534, -79.76417444, -79.73321389, -79.69050006, -79.65952248, -79.61703821, -79.57053113, -79.48419266, -79.45314627, -79.42132963, -79.41614557, -79.39021794, -79.34933806, -79.3029704, -79.25141857, -79.21540049, -79.17391557, -79.14830193, -79.14341885, -79.10742376, -79.09187249, -79.06162237, -79.04635299, -79.02617915, -79.00600123, -78.98119138, -78.96100246, -78.93534495, -78.91487238, -78.8943919, -78.87390897, -78.8381346, -78.81765526, -78.78706624, -78.7515441, -78.73131343, -78.70588683, -78.68538311, -78.66487634, -78.63450041, -78.61398493, -78.58852936, -78.56826234, -78.54279418, -78.51731804, -78.48688709, -78.47154241, -78.45099709, -78.43069555, -78.41063213, -78.38535759, -78.34990586, -78.33453347, -78.31443288, -78.28414611, -78.24863102, -78.22351793, -78.18772724, -78.1573632, -78.12675162, -78.10157203, -78.07116152, -78.04573448, -78.02029721, -77.99484897, -77.96938426, -77.9491197, -77.92884432, -77.90835218, -77.89328728, -77.87781076, -77.85750529, -77.82692655, -77.81706365, -77.78643761, -77.77151635, -77.77171561, -77.75658802, -77.73680027, -77.72689953, -77.70729106, -

24 March 2016 – F-51 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 188: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

77.68181244, -77.66682755, -77.65163809, -77.6263059, -77.61109659, -77.59080135, -77.57048903, -77.56051296, -77.54507494, -77.53018952, -77.50965995, -77.48437411, -77.46925696, -77.43827513, -77.41801152, -77.4024965, -77.38714721, -77.37179248, -77.35147091, -77.33609017, -77.30533642, -77.28483152, -77.26944384, -77.24356679, -77.22826315, -77.20764786, -77.18717385, -77.1668377, -77.14646611, -77.12590412, -77.10518667, -77.08963817, -77.0740725, -77.06382232, -77.04359155, -77.02280113, -77.01266361, -76.99731627, -76.98181458, -76.96629715, -76.95076774, -76.94554459, -76.92999957, -76.91444278, -76.89873885, -76.86744111, -76.85183444, -76.83632718, -76.82058106, -76.79977563, -76.78935896, -76.77398856, -76.7637477, -76.75362523, -76.74349633, -76.72805864, -76.71819894, -76.7032236, -76.6878003, -76.67785356, -76.66769496, -76.66284547, -76.65817361, -76.65320887, -76.64814637, -76.64344285, -76.63336627, -76.61772087, -76.59683335, -76.58110959, -76.57089692, -76.56055381, -76.56117726, -76.5617878, -76.56246681, -76.56291456, -76.58582629, -76.57805139, -76.57840304, -76.57910478, -76.57919228, -76.57556244, -76.57599813, -76.56873528, -76.56155065, -76.55418643, -76.55062964, -76.55114154, -76.55148264, -76.55598128, -76.5604809, -76.56506779, -76.56948587, -76.57033871, -76.5709362, -76.57161685, -76.57212629, -76.57280474, -76.57331304, -76.57397803, -76.57431487, -76.57490326, -76.57547049, -76.57594754, -76.57235304, -76.56460902, -76.55313492, -76.54955541, -76.55029474, -76.55103181, -76.55967023, -76.57658671, -76.59759724, -76.61041441, -76.61896473, -76.62349585, -76.62819814, -76.62853708, -76.62879097, -76.62921428, -76.62955277, -76.63812057, -76.64266132, -76.64711903, -76.65552646, -76.66410976, -76.66453912, -76.66101744, -76.66144504, -76.66591266, -76.67051588, -76.68284952, -76.69136699, -76.69593247, -76.70041287, -76.70472043, -76.7090293, -76.72160974, -76.72601162, -76.73455311, -76.73514258, -76.73543036, -76.73588283, -76.73660796, -76.74104033, -76.74131648, -76.75405085, -76.7709979, -76.77965248, -76.79246441, -76.79670736, -76.80955566, -76.81786073, -76.83061375, -76.84337969, -76.85207964, -76.85653324, -76.86941821, -76.8822159, -76.89065397, -76.9032664, -76.90395628, -76.91260547, -76.91339825, -76.91420189, -76.92706284, -76.93582723, -76.93602789, -76.94062566, -76.94920667, -76.95391227, -76.96679286, -76.97129036, -77.04738176, -77.05157429, -77.05996204, -77.06437285, -77.0687861, -77.09332603, -77.1134565, -77.133704, -77.15030922, -77.16283112, -77.16727339, -77.17569519, -77.18833611, -77.19690284, -77.21378478, -77.22235182, -77.22705229, -77.2437342, -77.26430101, -77.28887477, -77.30135096, -77.3137094, -77.33444276, -77.33869152, -77.3550597, -77.35981563, -77.3638172, -77.38058107, -77.40936292, -77.44979252, -77.45379682, -77.47381923, -77.49451037, -77.49891844, -77.51161287, -77.52859616, -77.53743412, -77.54586833, -77.56247438, -77.57520489, -77.59168396, -77.60816933, -77.624661, -77.64503424, -77.6616822, -77.68191782, -77.69827748, -77.71852097, -77.73892213, -77.75917436, -77.77541359, -77.79165318, -77.80789423, -77.82429253, -77.84069677, -77.85710506, -77.88590402, -77.89427095, -77.90683732, -77.93181092, -77.95277408, -77.98214701, -78.00751311, -78.02416285, -78.03257911, -78.04554467, -78.05432603, -78.07118749, -78.08840746, -78.10123819, -78.11829826, -78.13096938, -78.14787486, -78.16442563, -78.17693379, -78.19368429, -78.21853115, -78.23934689, -78.24782655, -78.26477332, -78.27343823, -78.29909513, -78.31611066, -78.31630298, -78.34571946, -78.36702672, -78.39222215, -78.40930133, -78.42618153, -78.44713807, -78.45975937, -78.48501831, -78.48929979, -78.51029285, -78.52722029, -78.55659791, -78.58170716, -78.59845477, -78.61520434, -78.63218879, -78.64510217, -78.66640332, -78.67524702, -78.71445243, -78.71461127, -78.72165301, -78.72549409, -78.7267706, -78.72067839, -78.71185709, -78.70639868, -78.70751413, -78.71488912, -78.72178689, -78.7322175, -78.74586306, -78.74634702, -78.74137738, -78.73881139, -78.73624486, -78.73400051, -78.73464759, -78.73224135, -78.72983399, -78.72501926, -78.71971837, -78.71730969, -78.71151927, -78.71216567, -78.7165176, -78.72038666, -78.7278044, -78.73473694, -78.74860764, -78.75926313, -78.77604384, -78.78977296, -78.78754351, -78.76562167, -78.74982072, -78.7404696, -78.72772565, -78.71514505, -78.69369443, -78.6720757, -78.65658161, -78.64366757, -78.62429782, -78.60524494, -78.59264745, -78.57359077, -78.55437975, -78.52225024, -78.5190215, -78.4964215, -78.4870444, -78.46152228, -78.45183623, -78.43291912, -78.41399722, -78.39829979, -78.38920904, -78.37996582, -78.36763854, -78.35545556, -78.34664842, -78.33475074, -78.32887298, -78.32299305, -78.32446696, -78.31225551, -78.29694698, -78.28177577, -78.26983522, -78.2608385, -78.2550793, -78.25227095, -78.24326452, -78.22790975, -78.2153624, -78.19956621, -78.18701086, -78.17092069, -78.15497556, -78.13605516, -78.12334507, -78.1202358, -78.0981912, -78.08249649, -78.06340975, -78.05406661, -78.02900249, -78.01029169, -78.00119732, -77.99209813, -77.98910796, -77.98352128, -77.98066058, -77.92950421, -77.91888838, -77.94130947, -77.97456807, -77.98579469, -77.98741513, -77.9882282, -77.98924765, -77.98484874, -77.98024429, -77.97042019, -77.95536835, -77.93990479, -77.91900992, -77.88182337, -77.86593619, -77.84481523, -77.8353339, -77.8371043, -77.83809142, -77.83848954, -77.84007695, -77.84126617, -77.84206321, -77.84306008, -77.8440577, -77.84466052, -77.84525827, -77.84060971, -77.83090521, -77.82099669, -77.8211971, -77.80602538, -77.79570488, -77.78557797, -77.7756489, -

24 March 2016 – F-52 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 189: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

77.75399481, -77.72668404, -77.71010738, -77.68223237, -77.65418602, -77.62163407, -77.59435364, -77.57271195, -77.52905888, -77.49086367, -77.46921588, -77.45302233, -77.44879534, -77.4491416, -77.45529931, -77.46163639, -77.48419769, -77.50658315, -77.5242401, -77.52496103, -77.52604436, -77.51581776, -77.48933285, -77.47308072, -77.45700389, -77.43544386, -77.41387815, -77.41473693, -77.42621846, -77.44301728, -77.46530788, -77.49291326, -77.51522081, -77.53735344, -77.56535166, -77.5931794, -77.62612481, -77.64847289, -77.6767179, -77.6996844, -77.70047521, -77.69616019, -77.68594462, -77.68103092, -77.66530202, -77.64936874, -77.6391297, -77.64581079, -77.65191747, -77.6855905, -77.71376113, -77.74217003, -77.75955344, -77.76058349, -77.75077073, -77.74012833, -77.71842533, -77.69589724, -77.66827999, -77.64086426, -77.63059882, -77.61499386, -77.5944233, -77.59480794, -77.59004111, -77.59120272, -77.59771258, -77.61550432, -77.63847391, -77.65551764, -77.75881038, -77.7705198, -77.77179989, -77.77244043, -77.76764751, -77.74654127, -77.74194915, -77.7268885, -77.72752061, -77.73402182, -77.74052627, -77.75248261, -77.77555321, -77.82149456, -77.85024413, -77.87311611, -77.88488598, -77.89166165, -77.88143865, -77.87076613, -77.83675099, -77.81429065, -77.80403295, -77.81057262, -77.81187529, -77.8070668, -77.80793482, -77.79744161, -77.775577, -77.75917011, -77.73138533, -77.72043671, -77.71559318, -77.72760346, -77.75626153, -77.79673552, -77.81424199, -77.85474101, -77.87795456, -77.92394685, -77.95286539, -77.9870255, -78.03303974, -78.07290146, -78.10137505, -78.12391641, -78.16353798, -78.1915252, -78.2140565, -78.25317218, -78.28113051, -78.30338926, -78.33676648, -78.35926874, -78.38719823, -78.42649711, -78.45494164, -78.49476618, -78.54597363, -78.58608211, -78.62023002, -78.64327316, -78.6728566, -78.67996022, -78.68165253, -78.67166273, -78.65568347, -78.63941743, -78.61173843, -78.59518073, -78.56720806, -78.52781237, -78.51694182, -78.48867865, -78.44409321, -78.4217918, -78.39377504, -78.36627305, -78.33823816, -78.31019575, -78.28214601, -78.26005485, -78.22105932, -78.20416231, -78.17632325, -78.15394287, -78.1320469, -78.11586003, -78.09942004, -78.07748772, -78.05530044, -78.04432318, -78.02832909, -78.01255578, -77.99126389, -77.98025983, -77.96397866, -77.94791763, -77.93230223, -77.91644108, -77.89988331, -77.88906639, -77.8729433, -77.86278485, -77.84685905, -77.83623289, -77.82005918, -77.80897566, -77.79832667, -77.77591933, -77.75926808, -77.76013244, -77.76698608, -77.78005624, -77.78049241, -77.78136529, -77.78223868, -77.78333121, -77.78508079, -77.7919651, -77.79284359, -77.7935029, -77.80039774, -77.80172177, -77.8030471, -77.80415185, -77.80503667, -77.80547929, -77.80055559, -77.80188214, -77.80276741, -77.80991416, -77.82244269, -77.83475563, -77.84170258, -77.84237859, -77.85493565, -77.86167218, -77.86303702, -77.86417529, -77.86531485, -77.866912, -77.87366991, -77.91574389, -77.939837, -77.95809333, -77.97026986, -77.99976566, -78.02975521, -78.04268918, -78.03805892, -78.03391621, -78.03538838, -78.03661608, -78.03784589, -78.03883046, -78.03981573, -78.05231382, -78.07094673, -78.08984588, -78.10211811, -78.10338514, -78.10465424, -78.10617628, -78.10129349, -78.09666534, -78.09177925, -78.09304792, -78.1002263, -78.10124667, -78.11434924, -78.12746522, -78.14033413, -78.15321334, -78.16018056, -78.16149098, -78.16280266, -78.15844673, -78.15923419, -78.16028491, -78.16160043, -78.16318168, -78.16476585, -78.16608954, -78.1671495, -78.17470023, -78.17603125, -78.1768307, -78.17843085, -78.18003321, -78.16915365, -78.17022099, -78.16557717, -78.16664466, -78.15601218, -78.15109309, -78.13544717, -78.12781407, -78.11620112, -78.10108832, -78.09344787, -78.07035101, -78.06270816, -78.05107745, -78.04359747, -78.02830435, -78.01650389, -77.99656579, -77.96866035, -77.95287674, -77.93709252, -77.91310648, -77.88138102, -77.85799216, -77.84216462, -77.82234159, -77.80691448, -77.79195387, -77.79255626, -77.78518657, -77.77412684, -77.75877408, -77.74341553, -77.70795948, -77.67597009, -77.6642999, -77.64462589, -77.62911245, -77.61369454, -77.60612668, -77.60288693, -77.59569154, -77.59212149, -77.59296698, -77.58540116, -77.56556848, -77.54201727, -77.5303096, -77.51432867, -77.49875788, -77.47891816, -77.45108967, -77.42313148, -77.4111489, -77.39092019, -77.3783022, -77.35796595, -77.34561805, -77.32542279, -77.30523626, -77.28106602, -77.25279957, -77.23275214, -77.20872436, -77.20075466, -77.18481573, -77.16477981, -77.14076396, -77.13268517, -77.09672853, -77.08478106, -77.0688512, -77.05690442, -77.03301183, -77.0091193, -76.97693491, -76.95681024, -76.94067234, -76.9204548, -76.90841559, -76.88457147, -76.86461476, -76.84872787, -76.82884864, -76.80886766, -76.79276868, -76.78064611, -76.7604843, -76.73639532, -76.72439035, -76.70426161, -76.68819729, -76.66791705, -76.65988849, -76.65161597, -76.63945789, -76.6312783, -76.61119194, -76.59103622, -76.57905757, -76.56304218, -76.53513741, -76.52317264, -76.49535101, -76.47543279, -76.45556672, -76.42764162, -76.4117077, -76.39572037, -76.38376606, -76.36377425, -76.34772037, -76.31593956, -76.303961, -76.28802313, -76.26776057, -76.25178477, -76.23586135, -76.21592883, -76.20002318, -76.17614534, -76.16417089, -76.13622885, -76.10828484, -76.10032081, -76.08830908, -76.07241522, -76.0564784, -76.03665967, -76.01274278, -76.00085168, -75.98104866, -75.96920655, -75.95338181, -75.9414469, -75.92156089, -75.90554051, -75.88958869, -75.87763183, -75.86168636, -75.84971712, -75.83379661, -75.80993364, -75.78209817, -75.77415599, -75.75831419, -

24 March 2016 – F-53 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 190: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

75.73456264, -75.71476765, -75.69101418, -75.67913583, -75.66329655, -75.65141592, -75.6275795, -75.61166651, -75.52252705, -75.50500772, -75.4786628, -75.4433214, -75.40789022, -75.36344944, -75.31902682, -75.2834512, -75.23894816, -75.20305591, -75.16690715, -75.1235018, -75.07934459, -75.02631125, -74.9821306, -74.94680329, -74.92031128, -74.8761793, -74.84971167, -74.80557271, -74.77030001, -74.71741045, -74.66455943, -74.62943579, -74.5942897, -74.53299288, -74.49782521, -74.45391602, -74.41875576, -74.38339337, -74.35678983, -74.33894993, -74.32100764, -74.29416371, -74.25001092, -74.21463886, -74.17937155, -74.13543836, -74.09984159, -74.06429889, -74.03778421, -74.01100548, -73.97528713, -73.95712757, -73.93895255, -73.9031548, -73.8677904, -73.83221454, -73.78806866, -73.74391717, -73.70872449, -73.6740096, -73.64812151, -73.63125736, -73.60539176, -73.57091359, -73.52802782, -73.49303331, -73.45822836, -73.41491944, -73.38039437, -73.34565842, -73.30220384, -73.25902581, -73.21537302, -73.18072147, -73.13709741, -73.1030282, -73.06899811, -73.05270075, -73.04484189, -73.02858746, -72.98511444, -72.93265977, -72.88889474, -72.86281989, -72.82805949, -72.80263371, -72.77787191, -72.76214465, -72.74644316, -72.73043903, -72.71412222, -72.69815618, -72.68187521, -72.65765427, -72.64106929, -72.60618706, -72.56231333, -72.53605062, -72.50042137, -72.46550569, -72.44071403, -72.40732089, -72.39158945, -72.37549388, -72.35118448, -72.33551459, -72.30227011, -72.27765562, -72.25306538, -72.22849904, -72.21294499, -72.18883293, -72.16433854, -72.14885086, -72.12481936, -72.10081742, -72.0674415, -72.03365808, -72.00031334, -71.96744696, -71.94314314, -71.9457956, -71.97270571, -72.0076753, -72.04267072, -72.04523884, -72.04694933, -72.02312637, -71.97130216, -71.95428752, -71.92026513, -71.87814784, -71.84416531, -71.81060032, -71.78674329, -71.7625205, -71.72985628, -71.68919398, -71.66425067, -71.63129288, -71.59836364, -71.55702707, -71.52375661, -71.49138216, -71.47588705, -71.46973455, -71.46496305, -71.46678419, -71.46905927, -71.47043017, -71.49695996, -71.53980681, -71.59015519, -71.59147619, -71.55970537, -71.54428584, -71.53725442, -71.53950826, -71.54967577, -71.55147508, -71.51895351, -71.47765382, -71.43638668, -71.40490359, -71.39012355, -71.39249513, -71.39439405, -71.39629613, -71.39866944, -71.40057283, -71.4024782, -71.38731214, -71.35606657, -71.33217348, -71.27419578, -71.21625583, -71.16662221, -71.13405742, -71.11080743, -71.08855701, -71.06480793, -71.02354789, -70.97519869, -70.91761859, -70.89291603, -70.86053901, -70.81223825, -70.7629579, -70.71535967, -70.6918663, -70.66896184, -70.62911571, -70.59632457, -70.56295467, -70.52899285, -70.49442669, -70.45104736, -70.41644401, -70.39063316, -70.31746975, -70.26892686, -70.22042524, -70.17950921, -70.13860616, -70.10785835, -70.09478246, -70.08039747, -70.0552548, -70.03565343, -70.00166732, -69.97849105, -69.95533112, -69.89888965, -69.86626745, -69.81666297, -69.79151756, -69.77992605, -69.76901276, -69.7410652, -69.70023711, -69.64310095, -69.60230136, -69.56222757, -69.53919958, -69.51834995, -69.50567168, -69.49228845, -69.47079135, -69.43307589, -69.39392979, -69.36367008, -69.32532722, -69.29587534, -69.29001644, -69.27756301, -69.28131212, -69.28505794, -69.28805255, -69.29104327, -69.29403103, -69.30583431, -69.31613793, -69.32791882, -69.35506742, -69.38951911, -69.42394885, -69.45763375, -69.49936717, -69.53232004, -69.56454519, -69.60551472, -69.63780074, -69.67075106, -69.69031183, -69.67629578, -69.66300941, -69.62562031, -69.59628558, -69.59179613, -69.59463313, -69.60549308, -69.61634468, -69.63589318, -69.73472004, -69.71177888, -69.6893507, -69.67341899, -69.6570028, -69.64707134, -69.63765565, -69.62825222, -69.61886089, -69.61492974, -69.59910135, -69.58481794, -69.56410739, -69.55427801, -69.54445927, -69.52923294, -69.51892211, -69.50913694, -69.49987924, -69.4955139, -69.49758842, -69.50069917, -69.50328856, -69.50587635, -69.50846334, -69.51104813, -69.51363186, -69.51621343, -69.5182769, -69.52085592, -69.5288054, -69.53726299, -69.54520089, -69.55313264, -69.56744767, -69.57536492, -69.58378671, -69.58582256, -69.58887451, -69.59192285, -69.57637172, -69.5480947, -69.52569288, -69.50330347, -69.49366589, -69.49573506, -69.49831899, -69.50090349, -69.50348546, -69.50503376, -69.50126046, -69.48582393, -69.47675272, -69.47299983, -69.47507496, -69.48879755, -69.50251176, -69.51621647, -69.52409291, -69.53196624, -69.53401784, -69.53606921, -69.52598973, -69.50326797, -69.48054785, -69.46520428, -69.46199865, -69.45879773, -69.46191571, -69.46399343, -69.46710932, -69.48179563, -69.49491911, -69.51433743, -69.53323311, -69.56368732, -69.58784008, -69.61827684, -69.63613152, -69.66605269, -69.69066267, -69.68639598, -69.66528249, -69.64995887, -69.64670034, -69.64243831, -69.63918582, -69.63543282, -69.63744689, -69.62793256, -69.61842915, -69.60318266, -69.57490993, -69.55188911, -69.52261252, -69.49384764, -69.46664274, -69.40370552, -69.38986034, -69.35367711, -69.31028516, -69.2747975, -69.24786867, -69.22097468, -69.2019813, -69.17581506, -69.16406561, -69.1523441, -69.13345098, -69.11526485, -69.08926306, -69.06260906, -69.03530855, -68.99373191, -68.95081799, -68.93006144, -68.89433234, -68.88074319, -68.86282516, -68.85206626, -68.84915529, -68.85407763, -68.85900328, -68.86112148, -68.86963476, -68.87955993, -68.89018807, -68.90010981, -68.90292004, -68.91423009, -68.91704234, -68.91276265, -68.88085208, -68.86668243, -68.83835517, -68.80225141, -68.76544043, -68.73007849, -68.70035386, -68.66501654, -68.6367624, -68.60925244, -

24 March 2016 – F-54 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 191: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

68.56765127, -68.53461522, -68.5008748, -68.47495057, -68.44905279, -68.42946096, -68.39107656, -68.37854685, -68.36678629, -68.34954702, -68.33157173, -68.31986154, -68.30269465, -68.29253327, -68.28315976, -68.27458274, -68.2644823, -68.24742511, -68.2381389, -68.2273162, -68.2226789, -68.19952442, -68.187959, -68.16329179, -68.15097082, -68.1154662, -68.07064847, -68.04903213, -68.0188852, -67.98179802, -67.94710971, -67.9132468, -67.88713897, -67.86023764, -67.81258909, -67.78044537, -67.75687928, -67.7394344, -67.70902783, -67.69080579, -67.68556492, -67.66819499, -67.64145438, -67.60784276, -67.58029725, -67.55443843, -67.51399803, -67.50277623, -67.49927943, -67.50265555, -67.50000502, -67.47507735, -67.44076802, -67.40646715, -67.37217726, -67.34303653, -67.30445402, -67.27272406, -67.25041887, -67.21525999, -67.19980451, -67.18260642, -67.15766662, -67.13869894, -67.12146954, -67.11109515, -67.09896015, -67.0817038, -67.05756339, -67.02653484, -66.9981583, -66.96469119, -66.93989292, -66.92108506, -66.87900595, -66.86438174, -66.82050283, -66.78943355, -66.77298491, -66.7496638, -66.72359707, -66.71398948, -66.6965907, -66.6791818, -66.66955612, -66.65808848, -66.63880865, -66.62731765, -66.6098551, -66.60019406, -66.59649271, -66.57807809, -66.57343852, -66.56879451, -66.54250955, -66.51713499, -66.48389653, -66.45941528, -66.44371369, -66.42204219, -66.38059132, -66.34605522, -66.32629173, -66.30154086, -66.28275136, -66.25611538, -66.22563595, -66.2020437, -66.17747242, -66.1538551, -66.13713066, -66.11153942, -66.10763398, -66.10372584, -66.11364685, -66.12357758, -66.13653918, -66.13761251, -66.13370686, -66.10997085, -66.08223524, -66.0515473, -66.02183322, -66.00300982, -65.99210215, -65.97324712, -65.96231783, -65.93448083, -65.93047726, -65.91851069, -65.89856485, -65.89353255, -65.88950277, -65.88647819, -65.87941321, -65.87537069, -65.87031278, -65.83832319, -65.81533404, -65.79131472, -65.75330452, -65.72329366, -65.69922968, -65.6870677, -65.67592867, -65.66477977, -65.64661763, -65.62739475, -65.62112776, -65.61485072, -65.6096125, -65.60436729, -65.5790856, -65.55483817, -65.51651306, -65.48519909, -65.46793458, -65.44361944, -65.44535574, -65.4470248, -65.47089696, -65.49588326, -65.51170781, -65.51942525, -65.5314174, -65.54128549, -65.55116321, -65.55911322, -65.53707665, -65.51032413, -65.48355196, -65.47572296, -65.45917618, -65.43077716, -65.39366562, -65.35652545, -65.32962491, -65.29242746, -65.24491458, -65.20925248, -65.19414791, -65.17742092, -65.16773053, -65.15964513, -65.13255755, -65.11413008, -65.1076264, -65.09079363, -65.07394524, -65.03477962, -65.00754072, -64.98192133, -64.96498344, -64.94802898, -64.91200596, -64.88465738, -64.87634603, -64.86969474, -64.86303706, -64.86340225, -64.879167, -64.88288588, -64.89701007, -64.8869985, -64.88031627, -64.87362673, -64.8669294, -64.84979192, -64.83263611, -64.81546225, -64.78782159, -64.77060478, -64.75336828, -64.74657725, -64.73977814, -64.72249504, -64.68594089, -64.64402807, -64.59509519, -64.56886258, -64.53219831, -64.49557328, -64.46943319, -64.45549944, -64.44158345, -64.41725913, -64.41380267, -64.40167921, -64.40171811, -64.39827755, -64.38445244, -64.3914081, -64.37760288, -64.37418373, -64.35004123, -64.33628471, -64.32254475, -64.29847632, -64.27269314, -64.24867923, -64.22294457, -64.19723344, -64.18361598, -64.18032247, -64.17703208, -64.1634476, -64.16016823, -64.13632327, -64.13481578, -64.14183934, -62.49089699, -59.98787707, -56.60641419, -56.75536153, -56.82051187, -56.56925415, -56.99963467, -57.25145309, -57.50327913, -57.37112632, -57.06794377, -57.62977148, -57.63008017, -58.01048025, -58.87735429, -59.17817949, -59.58901807, -59.56562903, -59.64352726, -59.63588004, -59.77987638, -60.6429388, -61.56735502, -62.0636736, -62.65083309, -63.87212121, -65.86864997, -67.83509925, -69.72774568, -71.91363135, -73.15748827, -73.42901679, -73.98626526, -73.98551968, -74.34586738, -74.49444654, -74.43488957, -73.82223452, -73.37449027, -72.16956274, -68.93172775, -68.51876346, -66.15230522, -64.0464188, -62.81844826, -61.91524754, -60.68477272, -59.5134534, -59.5419415, -59.28490262, -60.02034012, -48.163055, -140.9546201, -140.9542439, -141.0020442, -140.9278414, -140.5213601, -140.4593628, -139.9802985, -139.9213273, -139.7427516, -139.6926312, -139.12937, -139.0750778, -139.0720029, -139.1998011, -139.0622358, -137.9999277, -137.0008728, -134.9956033, -132.4920984, -129.9855339, -127.5023663, -125.0017895, -124.9981153, -123.0014296, -120.9895676, -118.9939748, -116.9945758, -114.9925596, -112.9915111, -110.9851489, -108.9949219, -105.9884866, -103.0007967, -97.99692484, -94.74608422, -94.74632189]; % Simplified set of coordinate points (i.e. no detail around Hudson's Bay. %jtfnLat = [60.000065, 56.930910, 49.274230, 60.014294, 60.022607, 60.017743, 60.000532, 60.114277, 60.740941, 60.906442, 62.189245, 62.699293, 63.464385, 64.107900, 64.588787, 66.549512, 66.549537, 67.229128, 67.849711, 68.052734, 68.308254, 68.537496, 68.774335, 69.035551, 69.161572, 69.898401, 70.734860, 71.496430, 72.162748, 73.032708, 73.764727, 73.927776, 74.287450, 74.778333, 75.204685, 75.575717, 76.021399, 76.021374, 76.533976, 77.306748, 77.928457, 78.362789, 78.833689, 79.179004, 79.899063, 80.275247, 80.929723, 81.267956, 81.483478, 81.925864, 82.101344, 82.265326, 82.631091, 84.106491, 86.318635, 89.998028, 76.000455, 76.000550, 60.305884, 60.293715, 60.221196, 60.309008, 60.181742, 60.213251, 60.308004, 60.334827, 60.351565, 60.352301, 60.318073, 60.088850,

24 March 2016 – F-55 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 192: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

59.999870, 59.998530, 60.004698, 60.001588, 60.017343, 60.019914, 60.017588, 60.000887, 60.000459, 60.002176, 60.002509, 60.012234, 60.004496, 59.991904, 60.007295, 60.006827, 59.999378, 59.998459, 60.000546, 59.998440, 60.000076]; %jtfnLong = [-94.746322, -95.766640, -79.214040, -64.141839, -62.490897, -59.987877, -56.606414, -56.755362, -56.820512, -56.569254, -56.999635, -57.251453, -57.503279, -57.371126, -57.067944, -57.629771, -57.630080, -58.010480, -58.877354, -59.178179, -59.589018, -59.565629, -59.643527, -59.635880, -59.779876, -60.642939, -61.567355, -62.063674, -62.650833, -63.872121, -65.868650, -67.835099, -69.727746, -71.913631, -73.157488, -73.429017, -73.986265, -73.985520, -74.345867, -74.494447, -74.434890, -73.822235, -73.374490, -72.169563, -68.931728, -68.518763, -66.152305, -64.046419, -62.818448, -61.915248, -60.684773, -59.513453, -59.541942, -59.284903, -60.020340, -48.163055, -140.954620, -140.954244, -141.002044, -140.927841, -140.521360, -140.459363, -139.980298, -139.921327, -139.742752, -139.692631, -139.129370, -139.075078, -139.072003, -139.199801, -139.062236, -137.999928, -137.000873, -134.995603, -132.492098, -129.985534, -127.502366, -125.001790, -124.998115, -123.001430, -120.989568, -118.993975, -116.994576, -114.992560, -112.991511, -110.985149, -108.994922, -105.988487, -103.000797, -97.996925, -94.746084]; if ( numel(jtfnLat) ~= numel(jtfnLong) ) error('The JTFN AOR polygon is not properly defined in the function.'); end end % Define the JTFP AOR polygon in terms of Geodetic points. if( checkJTFP == true ) jtfpLat = [35.000000, 41.580000, 42.520000, 44.820000, 45.450000, 47.210000, 48.030000, 48.510000, 48.520000, 48.280000, 48.260000, 48.320000, 48.440000, 48.690000, 48.810000, 49.030000, 49.020000, 49.660000, 51.450000, 53.340000, 54.790000, 55.540000, 56.000000, 55.840000, 55.620000, 55.320000, 55.200000, 55.000000, 54.790000, 54.720000, 54.720000, 54.680000, 54.300000, 55.000000, 55.000000, 59.000000, 59.300000, 59.300000, 59.300000, 59.100000, 59.100000, 59.300000, 59.300000, 58.500000, 57.300000, 56.150000, 56.100000, 55.000000, 48.300000]; jtfpLong = [-138.000000, -128.980000, -127.720000, -124.260000, -124.120000, -124.480000, -125.000000, -124.990000, -124.760000, -123.810000, -123.540000, -123.290000, -123.180000, -123.320000, -123.020000, -123.330000, -122.270000, -122.300000, -124.910000, -127.560000, -129.580000, -129.420000, -129.990000, -130.160000, -130.140000, -129.990000, -130.140000, -130.270000, -130.620000, -130.620000, -131.300000, -132.720000, -134.020000, -134.000000, -135.080000, -139.000000, -141.000000, -144.300000, -145.500000, -145.500000, -146.500000, -146.500000, -149.000000, -151.000000, -151.300000, -153.500000, -155.000000, -155.000000, -155.000000]; if ( numel(jtfpLat) ~= numel(jtfpLong) ) error('The JTFP AOR polygon is not properly defined in the function.'); end end % Check the regions for a single point % ---------------------------------------------------------------------------------------------------------------- % Check to see if the first point is in JTFA. if( checkJTFA == true ) [in, on] = inpolygon(lat, long, jtfaLat, jtfaLong); inAOR = (in | on); if (inAOR == true) return; end end

24 March 2016 – F-56 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 193: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Check to see if the first point is in JTFN. if( checkJTFN == true ) [in, on] = inpolygon(lat, long, jtfnLat, jtfnLong); inAOR = (in | on); if (inAOR == true) return; end end % Check to see if the first point is in JTFP. if( checkJTFP == true ) [in, on] = inpolygon(lat, long, jtfpLat, jtfpLong); inAOR = (in | on); if (inAOR == true) return; end end % Check the regions for a second point % ---------------------------------------------------------------------------------------------------------------- % Check to see if the first point is in JTFA. if( hasSecondPoint == true && checkJTFA == true ) [in, on] = inpolygon(lat2, long2, jtfaLat, jtfaLong); inAOR = (in | on); if (inAOR == true) return; end end % Check to see if the first point is in JTFN. if( hasSecondPoint == true && checkJTFN == true ) [in, on] = inpolygon(lat2, long2, jtfnLat, jtfnLong); inAOR = (in | on); if (inAOR == true) return; end end % Check to see if the first point is in JTFP. if( hasSecondPoint == true && checkJTFP == true )

24 March 2016 – F-57 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 194: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

[in, on] = inpolygon(lat2, long2, jtfpLat, jtfpLong); inAOR = (in | on); if (inAOR == true) return; end end % Check to see if the line segment formed by point 1 and 2 intersects the AOR polygon. % ---------------------------------------------------------------------------------------------------------------- % The GeoJSON specification doesn't mention handling of the 180th meridian in its specification, as such, % representations of lines crossing the 180th meridian can just as well be interpreted as going around the world. % Skew the longitude values to avoid problems where in the case were the line segment crosses the 180 meridian. if (hasSecondPoint == true && evalIntersect == true) % Case where the object is heading east over the 180 meridian if (long >= 0 && long2 <= 0 && ... long + (long2*-1) >= 180) % If not true then ship should cross over the prime meridian. % Skew the longitude value in the eastern hemisphere because we only care about Canadian AORs. long = long - 360; % Case where the object is heading west over the 180 meridian elseif (long <= 0 && long2 >= 0 && ... (long*-1) + long2 >= 180) % If not true then ship should cross over the prime meridian. % Skew the longitude value in the eastern hemisphere because we only care about Canadian AORs. long2 = long2 - 360; end end % Check to see if the first point is in JTFA. if (hasSecondPoint == true && evalIntersect == true && checkJTFA == true) % Iterate through the line segments of the polygon and return true if an interception is found. for i=2:numel(jtfaLat) u = (((jtfaLat(i-1)-jtfaLat(i))*(long-jtfaLong(i-1)))+((jtfaLong(i)-jtfaLong(i-1))*(lat-jtfaLat(i-1)))) / ... (((jtfaLong(i)-jtfaLong(i-1))*(lat-lat2))-((long-long2)*(jtfaLat(i)-jtfaLat(i-1)))); t = (((lat-lat2)*(long-jtfaLong(i-1)))+((long2-long)*(lat-jtfaLat(i-1)))) / ... (((jtfaLong(i)-jtfaLong(i-1))*(lat-lat2))-((long-long2)*(jtfaLat(i)-jtfaLat(i-1)))); if ( 0 <= u && u <= 1 && ... 0 <= t && t <= 1) inAOR = true; return; end end end

24 March 2016 – F-58 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 195: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% Check to see if the first point is in JTFN. if (hasSecondPoint == true && evalIntersect == true && checkJTFN == true) % Iterate through the line segments of the polygon and return true if an interception is found. for i=2:numel(jtfnLat) u = (((jtfnLat(i-1)-jtfnLat(i))*(long-jtfnLong(i-1)))+((jtfnLong(i)-jtfnLong(i-1))*(lat-jtfnLat(i-1)))) / ... (((jtfnLong(i)-jtfnLong(i-1))*(lat-lat2))-((long-long2)*(jtfnLat(i)-jtfnLat(i-1)))); t = (((lat-lat2)*(long-jtfnLong(i-1)))+((long2-long)*(lat-jtfnLat(i-1)))) / ... (((jtfnLong(i)-jtfnLong(i-1))*(lat-lat2))-((long-long2)*(jtfnLat(i)-jtfnLat(i-1)))); if ( 0 <= u && u <= 1 && ... 0 <= t && t <= 1) inAOR = true; return; end end end % Check to see if the first point is in JTFP. if (hasSecondPoint == true && evalIntersect == true && checkJTFP == true) % Iterate through the line segments of the polygon and return true if an interception is found. for i=2:numel(jtfpLat) u = (((jtfpLat(i-1)-jtfpLat(i))*(long-jtfpLong(i-1)))+((jtfpLong(i)-jtfpLong(i-1))*(lat-jtfpLat(i-1)))) / ... (((jtfpLong(i)-jtfpLong(i-1))*(lat-lat2))-((long-long2)*(jtfpLat(i)-jtfpLat(i-1)))); t = (((lat-lat2)*(long-jtfpLong(i-1)))+((long2-long)*(lat-jtfpLat(i-1)))) / ... (((jtfpLong(i)-jtfpLong(i-1))*(lat-lat2))-((long-long2)*(jtfpLat(i)-jtfpLat(i-1)))); if ( 0 <= u && u <= 1 && ... 0 <= t && t <= 1) inAOR = true; return; end end end end % End of the function

F.6 isTimeInAccessInterval function rowIndex = isTimeInAccessInterval( startDateTimeInSec, endDateTimeInSec, accessTimes ) % isTimeInAccessInterval Returns the cell array row containing first overlapping date/time interval otherwise an index value of 0 is returned. % % Syntax: [rowIndex] = isTimeInAccessInterval(startDateTimeInSec, endDateTimeInSec, accessTimes) % % Inputs:

24 March 2016 – F-59 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 196: CORA 198 Final Report

DRDC CORA Task 198 Implementing a Parametric Model for Satellite AIS

% startDateTimeInSec - MATLAB eTime value of the interval start time relative to the STK scenario start time (required).% endDateTimeInSec - MATLAB eTime value of the interval end time relative to the STK scenario start time (required).% accessTimes - Converted cell array, created by the convertAccessStringCellToDateTime function, containining % eTime access you wish to compare against (required).%% Outputs:% rowIndex - Index of the accessTimes cell array containing the first overlapping date time with the input.%% Notes:% This function assumes that the accessTimes is sorted in chronological order. % This function is designed to run in MATLAB R2015a and take the access time cell array created by % convertAccessStringCellToDateTime function.%% Copyright (C) Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2015-2016%% Contract: W7714-083663/001/SV% Author: Kenzie MacNeil (CAE Inc.)% Version: 1.0% Date: February 02, 2016% ================================================================================================================

% Set default, invalid index value.rowIndex = 0;

% Validate input parameters.% ---------------------------------------------------------------------------------------------inParser = inputParser;inParser.addRequired('startDateTimeInSec', @isnumeric);inParser.addRequired('endDateTimeInSec', @isnumeric);inParser.addRequired('accessTimes', @iscell);inParser.parse(startDateTimeInSec, endDateTimeInSec, accessTimes);

% Get the number of entries in the access cell array.numAccessTimes = size(accessTimes);if (numAccessTimes(2) < 4) error('Access array contains too few columns. Ensure that the convertAccessStringCellToDateTime function is called before executing the isTimeInAccessInterval function.');end

% Iterate through the access times.for i = 1:(numAccessTimes(1)) % The interval time has already passed. if (startDateTimeInSec < accessTimes{i, 3} && endDateTimeInSec < accessTimes{i, 3} )

24 March 2016 – F-60 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 197: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

return; % Exit the function. end % The start time occurs between the access times start and end times. if (startDateTimeInSec >= accessTimes{i, 3} && startDateTimeInSec <= accessTimes{i, 4}) rowIndex = i; return; % The end time occurs between the access times start and end times. elseif (endDateTimeInSec >= accessTimes{i, 3} && endDateTimeInSec <= accessTimes{i, 4}) rowIndex = i; return; end end end % End of the function

F.7 processAisMessageArray function [probArray, minProb, maxProb, avgProb] = processAisMessageArray( aorText, gammaZero, q, s, accessTimes ) % processAisMessageArray Returns the probability of receiving an uncorrupted AIS message during an AOR's access interval. % % Syntax: [probArray, minProb, maxProb, avgProb] = processAisMessageArray( aorText, gammaZero, q, s, accessTimes ) % % Inputs: % aorText - The name of the AOR being processed. This is used when outputting the information into a new file (required). % gammaZero - Double value representing the probability of receiving an uncorrupted message at the input of the receiving system regardless of collisions (required). % The default value is 0.2683 from "The Performance of a Space-Based AIS System" by James K.E. Tunaley, London Research and Development Corporation Technical Report, August 8th 2011. % q - Double value representing the probability that a single message will be uncorrupted by the simultaneous arrival of another singleton message (required). % The default value is 0.904 from "The Performance of a Space-Based AIS System" by James K.E. Tunaley, London Research and Development Corporation Technical Report, August 8th 2011. % s - Double value representing the effect of message overlap based on AIS sensor altitude and swath width (required). % The default value is 0.6744 from "Observation modelling and detection probability for space-based AIS reception – Extended observation area" by Gudrun HOYE, FFI Rapport 04390, 2005. % accessTimes - A cell array, created by the convertAccessStringCellToDateTime function, containining number of transmissions made during an access interval (required). % % Outputs: % probArray - Cell array containing the access time information and the associated probability of receiving an uncorrupted AIS message the access interval. % minProb - The minimum probability of receiving an uncorrupted AIS message during the passed in set of access intervals.

24 March 2016 – F-61 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 198: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

% maxProb - The maximum probability of receiving an uncorrupted AIS message during the passed in set of access intervals. % avgProb - The average probability of receiving an uncorrupted AIS message during the passed in set of access intervals. % % Notes: % This function is designed to run in MATLAB R2015a and take the access time cell array created by % convertAccessStringCellToDateTime function and populated by either the CORA_198_Deliverable_C_Analyze_STK_Model or % CORA_198_Deliverable_C_Create_Analyze_STK_Model script. % % Copyright (C) Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2015-2016 % % Contract: W7714-083663/001/SV % Author: Kenzie MacNeil (CAE Inc.) % Version: 1.0 % Date: February 02, 2016 % ================================================================================================================ % Set default values. avgProb = 0; minProb = 1; maxProb = 0; % Validate input parameters. % --------------------------------------------------------------------------------------------- inParser = inputParser; inParser.addRequired('aorText', @ischar); inParser.addRequired('gammaZero', @isnumeric); inParser.addRequired('q', @isnumeric); inParser.addRequired('s', @isnumeric); inParser.addRequired('accessTimes', @iscell); inParser.parse(aorText, gammaZero, q, s, accessTimes); % Open the associated entity AIS data file. outFileName = ['.\S-AIS Probability Results for ' aorText '.csv']; outFile = fopen(outFileName, 'w+'); if outFile == -1 error('Could not open the "%s" file.', outFileName); end % Print the header for the output file. fprintf(outFile, 'Probability of extracting uncorrupted S-AIS message for:,%s\n', aorText); fprintf(outFile, 'Analysis performed on:,%s\n\n', datestr(now)); fprintf(outFile, 'Gamma Zero =,%.5f\n', gammaZero); fprintf(outFile, 'q =,%.5f\n', q);

24 March 2016 – F-62 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 199: CORA 198 Final Report

DRDC CORA Task 198

Implementing a Parametric Model for Satellite AIS

fprintf(outFile, 's =,%.5f\n\n', s); fprintf(outFile, 'Access Interval Start DateTime,Access Interval End DateTime,Analysis Duration (sec),Number of Ships,Number of Transmission,Probability of Uncorrupted Message\n'); % Copy the input data into the output matrix numAccesses = size(accessTimes); probArray = cell(numAccesses(1), 4); for i = 1:numAccesses(1) % Get the cell values into to the appropriate variable types. startTimeStr = accessTimes{i, 1}; if iscell(startTimeStr) == true startTimeStr = startTimeStr{1}; end startDateVec = datevec(startTimeStr); endTimeStr = accessTimes{i, 2}; if iscell(endTimeStr) == true endTimeStr = endTimeStr{1}; end endDateVec = datevec(endTimeStr); duration = accessTimes{i, 4} - accessTimes{i, 3}; numTransmission = accessTimes{i, 5}; numShips = accessTimes{i, 6}; % Copy appropriate data into the probability array. probArray{i, 1} = startTimeStr; probArray{i, 2} = endTimeStr; probArray{i, 3} = numTransmission; % Determine the probability of recieving an uncorrupted message. prob = gammaZero * exp( -1 * (numTransmission/duration) * (1-q) * (1+s) ); probArray{i, 4} = prob; % Add to average. avgProb = avgProb + prob; % Set the appropriate min and max values. if prob < minProb minProb = prob;

24 March 2016 – F-63 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016

Page 200: CORA 198 Final Report

DRDC CORA Task 198 Implementing a Parametric Model for Satellite AIS

end if prob > maxProb maxProb = prob; end

% Print results to the file. fprintf(outFile, '%s,%s,%0.3f,%d,%d,%0.10f\n', ... datestr(startDateVec, 'dd mmm yyyy HH:MM:SS'), ... datestr(endDateVec, 'dd mmm yyyy HH:MM:SS'), ... duration, ... numShips, ... numTransmission, ... prob);

clear prob startTimeStr endTimeStr duration numTransmission;end

% Get the average probability.avgProb = avgProb / numAccesses(1);

% Print the results.fprintf(outFile, '\nMinimum Probability,%0.10f\n', minProb);fprintf(outFile, 'Maximum Probability,%0.10f\n', maxProb);fprintf(outFile, 'Average Probability,%0.10f\n', avgProb);

% Close the ephemeris file.status = fclose(outFile);if status ~= 0 warning('Could not close interface to %s.\n', outFileName);end

end % End of the function

24 March 2016 – F-64 – 5888-001 Version 02

© Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2016 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2016