{
  "id": 5529,
  "title": "Simulator Issues and Bug Reports",
  "url": "/competitions/flight2-milestone/discussion/5529",
  "author_name": "",
  "post_date": "2013-08-24T22:46:37.227Z",
  "votes": null,
  "comment_count": 68,
  "views": 27841,
  "content": "<p>Please use this forum thread to report any bugs or issues you find with the Flight Quest Simulator in a constructive manner.</p>\n<p>This is by far the most complex competition we've ever hosted, which means there is a large surface area for potential bugs and issues in both the data and the Simulator. Remember, as George Box said, &quot;All models are wrong, some models are useful.&quot; The current version of the Simulator is by no means a complete reflection of reality nor does it account for all the considerations that need to be made when determining a flight route.</p>",
  "messages": [
    {
      "id": "29405",
      "postDate": "08/24/2013 22:46:37",
      "content": "<p>Please use this forum thread to report any bugs or issues you find with the Flight Quest Simulator in a constructive manner.</p>\n<p>This is by far the most complex competition we've ever hosted, which means there is a large surface area for potential bugs and issues in both the data and the Simulator. Remember, as George Box said, &quot;All models are wrong, some models are useful.&quot; The current version of the Simulator is by no means a complete reflection of reality nor does it account for all the considerations that need to be made when determining a flight route.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29422",
      "postDate": "08/25/2013 05:16:10",
      "content": "<p>It looks like all the flights are treated as &quot;Westbound&quot;, please fix this.&nbsp;</p>\n<p>In FlightEntry.fs line 39:</p>\n<p><code>Direction=if Tuple3.get1 departureAirport.Position &lt; Tuple3.get1 departureAirport.Position then Eastbound else Westbound</code></p>\n<p>(it looks to me you should be comparing departureAirport.Position with arrivalAirport.Position)</p>\n<p>&nbsp;</p>\n<p>Note: I posted this a bit earlier in a separate thread (when this one didn't exist). You can remove that thread.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29443",
      "postDate": "08/25/2013 14:48:54",
      "content": "<p>Between 24 aug 13:00 UTC and now the simulator used to calculate the leaderboard changed (again).</p>\n<p>(Resulting in other scores and changes in the Leaderboard)</p>\n<p>Is this change reflected in the source we can download i.e. is this source the current version?</p>\n<p>And, as charango asked before, would it be possible to notify us if and when the simulator is changed, even if it is only a small bug fix?</p>\n<p>Thanks</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29449",
      "postDate": "08/25/2013 17:58:13",
      "content": "<p>Thank you, Ben</p>\n<p>Discovering F# just now.&nbsp;</p>\n<p>I think in descent.fs, in calculate Time, the&nbsp; MaximumRateOfDescent restriction isn't used:</p>\n<p>&nbsp;</p>\n<p>Actually:</p>\n<p>let calculateTime (model:DescentModel) (altitude:float&#161;Feet&#161;) =<br> let aTime = (float altitude)**model.TimePower<br> let time = model.TimeIntercept + model.TimeAltitude*aTime<br> let result = time * 1.0&#161;Hours&#161;<br> result</p>\n<p>Would be?</p>\n<p>let calculateTime (model:DescentModel) (altitude:float&#161;Feet&#161;) =<br> let aTime = (float altitude)**model.TimePower<br> let time = model.TimeIntercept + model.TimeAltitude*aTime<br> let result = max (altitude / MaximumRateOfDescent) time * 1.0&#161;Hours&#161;<br> result</p>\n<p>&nbsp;</p>\n<p>I understand this altitude is assumed as the altitude needed to descend. Not the actual altitude. Is correct?</p>\n<p>&nbsp;EDIT. The '&lt;' symbol trunc the message. Is there a way to avoid this?</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29455",
      "postDate": "08/25/2013 23:17:22",
      "content": "<p>Hello Ben,</p>\n<p><span style=\"line-height: 1.4\">I've gotten the executable to compile, but I can't find all of the data that I need to run the simulator. From RunSimulation.exe.config:</span></p>\n<p>&nbsp;</p>\n<p>add key=&quot;basePath&quot; value=&quot;/home/jhaberstroh/Data/kaggle/FlightData&quot; /&gt;</p>\n<p>!-- Following file paths are appended to basePath --&gt;<br>add key=&quot;configFile&quot; value=&quot;/Configuration/Configuration.json&quot; /&gt;<br>add key=&quot;projectionFile&quot; value=&quot;/Configuration/Projection.json&quot; /&gt;<br>add key=&quot;airportsFile&quot; value=&quot;/Airports/Airports.csv&quot; /&gt;<br>add key=&quot;landingFile&quot; value=&quot;/Airports/Landing.csv&quot; /&gt;<br>add key=&quot;taxiFile&quot; value=&quot;/Airports/Taxi.csv&quot; /&gt;<br>add key=&quot;routesFile&quot; value=&quot;/sampleSubmission.csv&quot; /&gt;</p>\n<p>!-- Day specific file pattern; also appended to basePath--&gt;<br><span style=\"line-height: 1.4\">add key=&quot;weatherFiles&quot; value=&quot;/Weather/weather_{0}.txt.gz&quot; /&gt;</span><br>add key=&quot;flightFiles&quot; value=&quot;/Flights/flights_{0}.csv&quot; /&gt;<br>add key=&quot;groundConditionFiles&quot; value=&quot;/Airports/groundConditions_{0}.csv&quot; /&gt;<br>add key=&quot;scheduledLandingFiles&quot; value=&quot;/Airports/scheduledLandings_{0}.csv&quot; /&gt;<br>add key=&quot;actualLandingFiles&quot; value=&quot;/Airports/actualLandings_{0}.csv&quot; /&gt;</p>\n<p>&nbsp;Unfortunately, the only ones of these files that are on the download page are sampleSubmission.csv and airports.csv (though this one is maybe not even the right file?). I did a `find . --name &quot;Configuration.json&quot;` in a folder containing all of the downloadable content, and I found nothing. Is there something here that I don't understand?</p>\n<p>&nbsp;</p>\n<p>Thank you,</p>\n<p>John</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>Edit: Answer pointed out by Quadbinary:</p>\n<p>&quot;We have not yet released samples of the input files necessary to run the Simulator. These include configuration settings, flight initialization files, wind data, and airport data. We also haven't released other files over the leaderboard period that you may find useful (flight and weather information prior to each day's cutoff time). Additionally, the code to generate these files from the raw data as well as the comprehensive unit tests for the Simulator aren't included in the current code release. These sample files, data, and code will be released in the coming days.&quot; -- posted in paragraph three of <a href=\"https://www.gequest.com/c/flight2/forums/t/5530/simulator-release/29406#post29406,\">Simulator Release</a>,&nbsp;Sun, Aug 25th</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29473",
      "postDate": "08/26/2013 09:51:09",
      "content": "<p>It looks like Arrival.fs model does not trigger non-arrival penalty, i.e. it is possible for an aircraft to consume more fuel than it had on-board initially.</p>\n<p>For example, if a flight had 10,000 pounds of fuel initially, and spent 9990 pounds just to get to the landing area (18,000 ft and within 75 miles of the destination airport), the simulator will mark it as &quot;arrived&quot; and will apply the landing model afterwards. Let's suppose the landing model reports 1000 pounds fuel consumption, then the simulator will calculate the resulting score by applying the CostModel.fs with 10,990 pounds as argument (although it had only 10,000 initially). I suppose this example should triggen non-arrival penalty score.</p>\n<p>Please let us know if this issue will be fixed, or if it's going to stay like that, as this decision might affect the resulting model significantly.</p>\n<p>P.S. I might be mistaken in this, please correct me if I'm wrong. I'm just reading the code, as we cannot actually run it without the config files.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29483",
      "postDate": "08/26/2013 12:41:21",
      "content": "<p>[quote=charango;29473]</p>\n<p>It looks like Arrival.fs model does not trigger non-arrival penalty, i.e. it is possible for an aircraft to consume more fuel than it had on-board initially.</p>\n<p>For example, if a flight had 10,000 pounds of fuel initially, and spent 9990 pounds just to get to the landing area (18,000 ft and within 75 miles of the destination airport), the simulator will mark it as &quot;arrived&quot; and will apply the landing model afterwards. Let's suppose the landing model reports 1000 pounds fuel consumption, then the simulator will calculate the resulting score by applying the CostModel.fs with 10,990 pounds as argument (although it had only 10,000 initially). I suppose this example should triggen non-arrival penalty score.</p>\n<p>Please let us know if this issue will be fixed, or if it's going to stay like that, as this decision might affect the resulting model significantly.</p>\n<p>P.S. I might be mistaken in this, please correct me if I'm wrong. I'm just reading the code, as we cannot actually run it without the config files.</p>\n<p>[/quote]</p>\n<p>Would be interesting to know the landing (time &amp; fuel) model or almost a maximun bound for both time and fuel. Otherwise if we adjust in excess could be penalized with a 'not arrival'.</p>\n<p>I don't know what time to estimate for automatic landing from 75 miles to arrival gate.</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29490",
      "postDate": "08/26/2013 14:43:24",
      "content": "<p>[quote=Jos&#233; A. Guerrero;29449]</p>\n<p>&nbsp;EDIT. The '&lt;' symbol trunc the message. Is there a way to avoid this?</p>\n<p>[/quote]</p>\n<p>&nbsp;</p>\n<p>Follow along at https://www.kaggle.com/forums/t/5400/forum-posting-bug/ in case one is posted.&nbsp; The best current workaround is to put a space after your less than sign. </p>\n<p>And on edit...wow, I am amazed at how the forum just mangled the quote.&nbsp; It looks just fine in the post editor.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29644",
      "postDate": "08/28/2013 14:20:47",
      "content": "<p>Hello, Ben/Nick.</p>\n<p>I've noticed another possible issue with the ArrivalModel (Arrival.fs).</p>\n<p>The model includes structures named&nbsp;LandingGlm and&nbsp;TaxiGlm, which describe the approximation model coefficients. Among other fields, there are fields named &quot;TakeOff_*&quot;.</p>\n<p>However, the simulator code feeds values from&nbsp;scheduledLandings_[date].csv into those TakeOff fields, and the file&nbsp;actualTakeoffs_[date].csv (provided within &quot;OneDaySimulatorFiles&quot;) is not used at all. And BTW, the&nbsp;scheduledLandings file for the training day was not provided.</p>\n<p>&nbsp;</p>\n<p>This means that either (a) the field names in GLM models are incorrect, or (b) the simulator should feed actualTakeoffs.csv instead of scheduledLandings.csv</p>\n<p>Please provide your comments on this issue.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29716",
      "postDate": "08/29/2013 14:42:01",
      "content": "<p>Charango,</p>\n<p>The answer to your question is b - we do not use scheduledlandings.csv anymore. &nbsp;Sorry, this was a rename that didn't get propagated everywhere. &nbsp;I've uploaded a minor, cosmetic update to the simulator that renames the variables in RunSimulator to actualTakeoffs and switches the scheduledLandingFiles app setting with&nbsp;actualTakeoffFiles. &nbsp;You can continue to run your current version of the code just by feeding scheduledLandingFiles with&nbsp;actualTakeoffs_[date].csv.</p>\n<p>As always, thanks for catching this.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29733",
      "postDate": "08/29/2013 19:43:03",
      "content": "<p>This is possibly a stupid mistake or misreading on my part, but I'm struggling to understand this part of the simulator source, from FuelModel.fuelBurn:</p>\n<p>&nbsp;</p>\n<p><code>let (totalFuelBurn, verticalVelocity) =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; match vertical with<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Descent -&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; let (descentRate, descentFuelBurn)= Descent.calculateRates descentModel altitude weight<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertNumber &quot;descentRate&quot; descentRate<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertNumber &quot;descentFuelBurn&quot; descentFuelBurn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertNonPositive &quot;descentRate&quot; descentRate<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertNonNegative &quot;descentFuelBurn&quot; descentFuelBurn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (descentFuelBurn, descentRate)<br><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Cruise -&gt; (0.0&lt; FuelPounds/Hours &gt;, 0.0&lt; Feet/Hours &gt;)</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Ascent -&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; let (ascentRate, rawAscentFuelBurn) = Ascent.calculateRates ascentModel altitude weight<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertNumber &quot;ascentRate&quot; ascentRate<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertNumber &quot;rawAscentFuelBurn&quot; rawAscentFuelBurn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertNonNegative &quot;ascentRate&quot; ascentRate<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertNonNegative &quot;rawAscentFuelBurn&quot; rawAscentFuelBurn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; let ascentFuelBurn = max rawAscentFuelBurn cruiseFuelBurn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ascentFuelBurn, ascentRate)</code></p>\n<p>&nbsp;</p>\n<p>Specifically the bolded line. Why is the total fuel burn being set to 0 for cruise? Shouldn't it be the vertical fuel burn that's 0? I'd have thought the correct line (allowing syntax, as I'm not too familiar with F#) would be:</p>\n<p>&nbsp;</p>\n<p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Cruise -&gt; (cruiseFuelBurn&lt; FuelPounds/Hours &gt;, 0.0&lt; Feet/Hours &gt;)</code></p>\n<p>&nbsp;</p>\n<p>Where cruiseFuelBurn is defined earlier in the function.</p>\n<p>EDIT: Had to add extra spacing to get the triangular brackets to display properly</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29740",
      "postDate": "08/29/2013 21:39:55",
      "content": "<p>Not an F# expert at all, but I'm guessing that you calculate previously the cruise fuel consumption from A to B and you store into <strong>cruiseFuelBurn</strong>.&nbsp;</p>\n<p>If from A to B you're adjusting your altitude, you'll have some extra cost\\discount in fuel consumption to take in account, since you're climbing\\descending. AscendModel &amp; DescendModel will make these calculationg, coming up with their relative&nbsp;<strong>(totalFuelBurn, verticalVelocity)</strong>.</p>\n<p>You'll <strong>verticalFuelBurn</strong> will be the total fuel burn, minus the fuel burned while crusing. I'm guessing negative if you're descending, positive if you're climing.. the same (this is why is zero) if you're cruising and not adjusting the altitude!</p>\n<p>I just hope I'm right, and it makes sense!</p>\n<p>&nbsp;</p>\n<p><strong>Question:</strong><br>What I would like to understand is... from A (Alt: 10,000) to B (Alt: 15,000) to C (Alt: 15,000). I'll be climbing proportionally for all the entire time between A to B? Or I'll be climbing to 15,000 from A just for the first minutes and then cruising till reaching waypoint B? (assuming you'll have enough time!)</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29747",
      "postDate": "08/29/2013 23:15:34",
      "content": "<p>Well later on comes the line:</p>\n<p><code>let verticalFuelBurn = totalFuelBurn - cruiseFuelBurn</code></p>\n<p>&nbsp;</p>\n<p>So totalFuelBurn when you're cruising should not be 0. It should be cruiseFuelBurn. That would give the desired value of 0 for verticalFuelBurn</p>\n<p>XXXXX</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29755",
      "postDate": "08/30/2013 00:44:25",
      "content": "<p>Hi Nick,</p>\n<p>Thank you for addressing this issue!</p>\n<p>We are so close to having working simulator. The ONLY file missing is Taxi.csv.</p>\n<p>I don't think this is even part of the model anymore; if Taxi means &quot;driving around the airport&quot;, that part of the system should not be relevant to our simulations. Can anyone help us out with this? Are there some lines that we can delete/modify in the source to spoof this file?</p>\n<p>&nbsp;</p>\n<p>Thanks!</p>\n<p>John</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29756",
      "postDate": "08/30/2013 00:45:53",
      "content": "<p>Taxi.csv is now available for download (there's another forum thread on this).</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29768",
      "postDate": "08/30/2013 11:57:10",
      "content": "<p>Hello, Ben/Nick.</p>\n<p>&nbsp;</p>\n<p>In Simulator.fs line 54:</p>\n<p><code>let <strong>weight</strong> = coreFunctions.WeightModel flightParams <strong>state</strong><br>let landingState = coreFunctions.ArrivalModel airportEnvironment FuelModel.flightFunctions flightParams <strong>endState</strong>.AircraftPosition <strong>weight</strong> time<br></code></p>\n<p>&nbsp;</p>\n<p>You're passing the aircraft position in the landing zone _and_ the aircraft weight in the starting point, to the ArrivalModel.</p>\n<p>It looks like the weight should be calculated based on the &quot;endState&quot;.</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29773",
      "postDate": "08/30/2013 13:24:23",
      "content": "<p>In Flight.fs line 55:</p>\n<p>let windVector = getWindVelocity weather time currentPosition<br> let groundSpeed = calculateGroundVelocity airSpeed (calculateRadians deltaVector) windVector<br> let groundVector = Movement.rescale deltaVector groundSpeed</p>\n<p>&nbsp;</p>\n<p><span style=\"line-height: 1.4\">Does the groundVector calculation account for the differences in the distance in one degree of longitude at different degrees of latitude? &nbsp;If not, will that assumption change in future versions of the simulator?</span></p>\n<p>Thanks!</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29819",
      "postDate": "08/31/2013 00:49:13",
      "content": "<p>[quote=Stereotomy;29733]</p>\n<p>Specifically the bolded line. Why is the total fuel burn being set to 0 for cruise? Shouldn't it be the vertical fuel burn that's 0? I'd have thought the correct line (allowing syntax, as I'm not too familiar with F#) would be:</p>\n<p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Cruise -&gt; (cruiseFuelBurn&lt; FuelPounds/Hours &gt;, 0.0&lt; Feet/Hours &gt;)</code></p>\n<p>[/quote]</p>\n<p>Stereotomy, I've renamed the first item of the resulting tuple to 'verticalCruiseFuelDiff' as verticalFuelBurn is a misnomer. &nbsp;This does contain a negative value when the flight's altitude does not change ( match vertical -&gt; Cruise) or when in descent. &nbsp;However, let me show you line 97 of Flight.fs.</p>\n<p><code> let totalFuelBurn = cruiseBurn * timeElapsed + verticalCruiseFuelDiff * climbTimeElapsed</code></p>\n<p>climbTimeElapsed equals 0.0 when&nbsp;VerticalVelocity is 0.0 (cruising), and therefore only the cruising fuel burn is returned.</p>\n<p>&nbsp;</p>\n<p>[quote=Alessandro Mariani;29740]</p>\n<p>What I would like to understand is... from A (Alt: 10,000) to B (Alt: 15,000) to C (Alt: 15,000). I'll be climbing proportionally for all the entire time between A to B? Or I'll be climbing to 15,000 from A just for the first minutes and then cruising till reaching waypoint B? (assuming you'll have enough time!)</p>\n<p>[/quote]</p>\n<p>No, it's not proportional to the distance of A and B. Your ascent/descent rate change depending your current altitude and, for ascent only, your weight. &nbsp;(Try iterating over calculateRates in Ascent.fs and Descent.fs to get an idea of what the curve looks like) &nbsp;You bring up something important:&nbsp;<strong>you may not reach your target altitude given a short distance between instructions.&nbsp;</strong> An instruction is determined to be 'reached' when the plane arrives at the lat/long coordinates, and then the next instruction's altitude is only relevant.</p>\n<p>&nbsp;</p>\n<p>[quote=charango;29768]</p>\n<p>You're passing the aircraft position in the landing zone _and_ the aircraft weight in the starting point, to the ArrivalModel.</p>\n<p>It looks like the weight should be calculated based on the &quot;endState&quot;.</p>\n<p>[/quote]</p>\n<p>Good catch, thanks charango. &nbsp;I've uploaded a new revision of the simulator (Rev3) and updated all the submission scores. &nbsp;This change lowered the cost of the sampleSubmission by about $7. &nbsp;</p>\n<p>&nbsp;</p>\n<p>[quote=David Wilson;29773]</p>\n<p><span style=\"line-height: 1.4\">Does the groundVector calculation account for the differences in the distance in one degree of longitude at different degrees of latitude? If not, will that assumption change in future versions of the simulator?</span></p>\n<p><span style=\"line-height: 1.4\">[/quote]</span></p>\n<p><span style=\"line-height: 1.4\">David, any lats/longs inputted into the simulator immediately get converted onto a<a href=\"http://geospatial.referata.com/wiki/Lambert_conformal_conic_projection\"> Lambert conformal conic projection</a> (same type and parameters used by NOAA for the grib weather data). Take a look at the spatial coverage section <a href=\"http://www.esrl.noaa.gov/psd/data/gridded/data.narr.html\">here</a>, and you can find the parameters to the conversion in OneDaySimulatorFilesRev2/Projection.json. &nbsp;</span></p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29846",
      "postDate": "08/31/2013 14:17:03",
      "content": "<p>About the same lines David posted above.</p>\n<p><strong>In Flight.fs line 55:</strong></p>\n<p style=\"padding-left: 30px\"><code>let windVector = getWindVelocity weather time currentPosition<br>let groundSpeed = calculateGroundVelocity airSpeed (calculateRadians deltaVector) windVector<br>let groundVector = Movement.rescale deltaVector groundSpeed</code></p>\n<p>If I'm reading it right, ground speed is calculated using the wind direction\\strength in the current position of the aircraft. So, if we have a long waypoint from A to B (eg. 1000nm or more), the ground speed stay the same till we reach B? Even though wind condition might be different by the time we get to B?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29851",
      "postDate": "08/31/2013 15:18:07",
      "content": "<p>I've been looking at those lines too, as well as the calculateGroundVelocity function.&nbsp; Overall, it seems like&nbsp;<span style=\"line-height: 1.4\">the plane's <em>direction</em> (i.e. direction of groundVector) at each simulation timestep is </span><em style=\"line-height: 1.4\">not</em><span style=\"line-height: 1.4\"> influenced by the wind, but groundSpeed is. So groundspeed can change between waypoints. &nbsp;How much probably also depends on the time/spacial resolution of the wind report data (which I haven't checked...).</span></p>\n<p>The code above also made me wonder why a plane's&nbsp;<em>direction</em> wouldn't change due to wind. After all, couldn't a sudden crosswind blow a plane off course? After some research I saw that&nbsp;the equations at the end of calculateGroundVelocity (in Movement.fs) look suspiciously like a wind-correction angle formula for an <a href=\"http://en.wikipedia.org/wiki/E6B\">E6B</a>. &nbsp; So that implies the simulator 'autopilot'&nbsp;keeps the plane on course by pointing the plane a few degrees away from a waypoint (towards the wind) to correct for any &quot;side-slipping&quot; due to winds.&nbsp;</p>\n<p>Speaking of wind, here's a fun video of &nbsp;some &nbsp;<a href=\"http://youtu.be/_z2LtHrn9Jw\">777 landings in high crosswinds</a>, which shows all these dynamics in action&nbsp; :)</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29889",
      "postDate": "09/01/2013 04:27:30",
      "content": "<p><code>Aircraft.fs, in FlightQuestSimulator-Rev3, has the following configuration for the aircraft:</code></p>\n<p><code>ServiceCeiling=41000.0&lt;Feet&gt;</code></p>\n<p><code>OperatingEmptyWeight=91108.0&lt;Pounds&gt;</code><code></code></p>\n<p><code>FuelCapacity=7837.0&lt;Gallons&gt;</code></p>\n<p><code>MaximumTakeOffWeight=174200.0&lt;Pounds&gt;</code><code></code></p>\n<p><code>MaximumMachSpeed = 0.82</code></p>\n<p><code>MinimumAirSpeed = 150.0&lt;Knots&gt;</code><code></code></p>\n<p><code>TaxiFuelBurn = 1984.158&lt;FuelPounds/Hours&gt;}</code></p>\n<p>&nbsp;</p>\n<p>According to Wikipedia (https://en.wikipedia.org/wiki/Boeing_737_Next_Generation), the 737-800 has a matching operating empty weight and maximum takeoff weight, but not a matching fuel capacity (6,875 US gallons).&nbsp; The 737-900ER has a matching fuel capacity, but not a matching operating empty weight (98,495 lbs) and a maximum takeoff weight (187,700 lbs).</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29892",
      "postDate": "09/01/2013 06:11:27",
      "content": "<p>why &nbsp;do&nbsp;FlightQuestSimulator-Rev3 use v2 data format?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29893",
      "postDate": "09/01/2013 06:12:37",
      "content": "<p>Data and code are revisioned separately.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29894",
      "postDate": "09/01/2013 06:14:50",
      "content": "<p>[quote=Christopher Hefele;29851]</p>\n<p>I've been looking at those lines too, as well as the calculateGroundVelocity function.&nbsp; Overall, it seems like&nbsp;<span style=\"line-height: 1.4\">the plane's <em>direction</em> (i.e. direction of groundVector) at each simulation timestep is </span><em style=\"line-height: 1.4\">not</em><span style=\"line-height: 1.4\"> influenced by the wind, but groundSpeed is. So groundspeed can change between waypoints. &nbsp;How much probably also depends on the time/spacial resolution of the wind report data (which I haven't checked...).</span></p>\n<p>The code above also made me wonder why a plane's&nbsp;<em>direction</em> wouldn't change due to wind. After all, couldn't a sudden crosswind blow a plane off course? After some research I saw that&nbsp;the equations at the end of calculateGroundVelocity (in Movement.fs) look suspiciously like a wind-correction angle formula for an <a href=\"http://en.wikipedia.org/wiki/E6B\">E6B</a>. &nbsp; So that implies the simulator 'autopilot'&nbsp;keeps the plane on course by pointing the plane a few degrees away from a waypoint (towards the wind) to correct for any &quot;side-slipping&quot; due to winds.&nbsp;</p>\n<p>Speaking of wind, here's a fun video of &nbsp;some &nbsp;<a href=\"http://youtu.be/_z2LtHrn9Jw\">777 landings in high crosswinds</a>, which shows all these dynamics in action&nbsp; :)</p>\n<p>[/quote]We assume the plane's heading accounts for the wind in such a manner that the plane's path along the ground is always pointed directly towards the waypoint.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29895",
      "postDate": "09/01/2013 06:29:17",
      "content": "<p>Hi Ben,</p>\n<p>You have provided wind information for one day in weather_20130704_1540.txt.Will you provide the same for other days or we need to create some probabilistic model for the same.</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29964",
      "postDate": "09/01/2013 23:23:45",
      "content": "<p>In arrival.fs:</p>\n<p><span style=\"line-height: 1.4\">let arrivalModel</span></p>\n<p>(airportEnvironment:AirportEnvironment) (_, descentModel, _, holdingModel)<br> (flightParams:FlightParameters) (position:Spatial.Position) weight time =<br> let airport = flightParams.DestinationAirport<br> let altitude = positionToAltitude position</p>\n<p>let (descentTime, descentFuel, descentDistance) =<br> Descent.calculateTimeFuelDistance descentModel altitude weight</p>\n<p>&nbsp;</p>\n<p>altitude is used for descent model, but the efective altitude to descend is (altitude - airport.elevation)</p>\n<p>There are airports with elevation &gt; 5000 ft, which is relevant.</p>\n<p>&nbsp;</p>\n<p>Have you used effective altitude (altitude - airport elevation) in the generation of taxi, landing and holding time and fuel burned? Otherwise these models could be biased.</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29965",
      "postDate": "09/01/2013 23:33:21",
      "content": "<p>[quote=suresh s;29895]</p>\n<p>Hi Ben,</p>\n<p>You have provided wind information for one day in weather_20130704_1540.txt.Will you provide the same for other days or we need to create some probabilistic model for the same.</p>\n<p>&nbsp;[/quote]</p>\n<p>I think we need several adjacents days for estimated these models and<strong> the weather at cutoff time for the test day</strong>. Then &nbsp;we can estimate how the wind could change some hours later.</p>\n<p>This would be more realistic.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29966",
      "postDate": "09/02/2013 03:18:56",
      "content": "<p>Yes. We may require wind map(magnitude and direction) for some days with (latitude,longitude,altitude and time) info to train the wind model.</p>\n<p>I have not seen any data set provided , with the above info altogether except in onedaySimulatorFilesRev2(&quot;weather_20130704_1540.txt&quot;)</p>\n<p>But , admin must be using some wind model (look up table etc.) at their end to calculate the cost for the way points that we submit, if they share it ,it would be helpful.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29996",
      "postDate": "09/02/2013 16:12:49",
      "content": "<p>I tried to run the simulator on my XP machine.</p>\n<p>It fails with a message that I need .Net 4.5</p>\n<p>I tried to install .Net 4.5 and says it can't be run on XP</p>\n<p>I have F# installed for my MSVS 2008 (9.0) system.&nbsp; I create a new project for the FlightQuest library and add the *.fs files from the project that I downloaded.&nbsp; I try to compile it and it fails for lack of some packages.&nbsp; I found Newtonsoft.json package and that resolves some of the issues.&nbsp; But still I have some missing symbols.</p>\n<ul>\n<li>DataContract</li>\n<li>Parallel</li>\n<li>List ?</li>\n<li>row</li>\n</ul>\n<p>What can I add to this think to make it build?</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30087",
      "postDate": "09/03/2013 20:14:41",
      "content": "<p>Data incongruencies</p>\n<p><span style=\"line-height: 1.4\">I've found several data times incongruencies:</span></p>\n<p>999 scheduled_gate_arrival before the cutoffTime.</p>\n<p>179 with scheduled_gate_arrival before actual_gate_departure.</p>\n<p>In the file there are some examples.</p>\n<p>Could you confirm the data used by the simulator for compute leaderboard are these?</p>\n<p>(I've taken them from test1_flighthistory.csv file).</p>\n<p>How do affect these negative values to the landing / taxi /holding models?</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30091",
      "postDate": "09/03/2013 20:30:25",
      "content": "<p>I too would like to get the exact same result locally as I get from the leaderboard but haven't yet.</p>\n<p>How are you going about translating the missing</p>\n<p>departure and arrival times found in test1_flighthistory.csv from date format to float?:</p>\n<p>scheduled_gate_departure</p>\n<p>actual_gate_departure</p>\n<p>scheduled_runway_arrival</p>\n<p>Also where is the: initial_fuel ?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30096",
      "postDate": "09/03/2013 20:46:24",
      "content": "<p>[quote=Tanstaafl;30091]</p>\n<p>I too would like to get the exact same result locally as I get from the leaderboard but haven't yet.</p>\n<p>How are you going about translating the missing</p>\n<p>departure and arrival times found in test1_flighthistory.csv from date format to float?</p>\n<p>also where is the initial_fuel and consumed_fuel ?</p>\n<p>[/quote]</p>\n<p>The only flight with NA (not in history flights) is&nbsp;303137309.</p>\n<p>Transform date to float:</p>\n<p>http://stat.ethz.ch/R-manual/R-devel/library/base/html/difftime.html</p>\n<p>&nbsp;</p>\n<p><span style=\"line-height: 1.4\">About the rest: I don't know.</span></p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30099",
      "postDate": "09/03/2013 21:15:34",
      "content": "<p>Ah thanks for the time diff thing, I'll give it a try.</p>\n<p>Are you sure this method is what they were using to create the testFlightsRev3.csv file?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30444",
      "postDate": "09/07/2013 19:13:29",
      "content": "<p>It seems that early arrival results in negative delay and negative cost which is subtracted from the fuel cost. I guess it's not intended behavior.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30698",
      "postDate": "09/10/2013 22:51:42",
      "content": "<p>The simulator cannot be run by people using a comma for the decimal mark and not a dot. The simulator fails when trying to parse the CSV files. The quick&amp;dirty solution consists in changing the lang of the system but it affects all programs. I tried to set the LANG environment variable just before running the executable but without success.</p>\n<p>So, I modified the code in Program.fs to set the culture to en_US. Unfortunately, with .NET 4.0, there is no easy way to set the culture for the whole application. The culture must be set for each thread (in the function loadMaps before loading flights and costs, airports and weather and in the main function before loading dates). It must also be done for the Intruction Parser.</p>\n<p>Below is what I am doing to set the culture for each thread.</p>\n<p>Thread.CurrentThread.CurrentCulture &lt;- (CultureInfo.CreateSpecificCulture &quot;en-US&quot;)</p>\n<p>Once solved, it works well even under Snow Leopard with mono 3.2.1 (.NET 4.0).</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30797",
      "postDate": "09/12/2013 19:15:38",
      "content": "<p>Has anyone had success running the simulator on a Mac?</p>\n<p>&nbsp;</p>\n<p>Installed mono, tried to run the simulator, got the following error:</p>\n<p>Missing method System.Numerics.BigInteger::Parse(string,IFormatProvider) in assembly /Library/Frameworks/Mono.framework/Versions/2.10.11/lib/mono/gac/System.Numerics/4.0.0.0__b77a5c561934e089/System.Numerics.dll, referenced in assembly /Users/.../Desktop/FlightQuest/FlightQuestSimulator-Rev3/FlightQuest Simulator Executable/Newtonsoft.Json.dll</p>\n<p>&nbsp;</p>\n<p>I imagine I'm missing some crucial package or other part of the .NET platform.</p>\n<p>&nbsp;</p>\n<p>Appreciate any help.</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30798",
      "postDate": "09/12/2013 19:24:58",
      "content": "<p>Hey Philip, I got it to work in Linux, and I used the dll from Json.NET 4.0 Release 8 (http://json.codeplex.com/releases/view/82120) to fix that error.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30799",
      "postDate": "09/12/2013 19:25:27",
      "content": "<p>I got the same error as you initially. Then I decided to install the latest mono version(3.2.1) from http://www.go-mono.com/mono-downloads/download.html.</p>\n<p>The simulator works fine since.</p>\n<p>Uninstall your current version and install the 3.2.1 version.</p>\n<p>Good luck.</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30802",
      "postDate": "09/12/2013 19:58:30",
      "content": "<p>Thanks - switching to the latest version worked like a charm. &nbsp;Easier than expected.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30831",
      "postDate": "09/13/2013 04:28:39",
      "content": "<p>Hello Ben/Nick:</p>\n<p>I'm new to this contest and I was browsing the sourcecode of the simulator. It appears to me that when it simulates the route of a flight, it doesn't check the routes of other flights to detect collision. Does this mean the agent can assume the entire airspace is available? If yes, will the further version of simulator add this collision detection mechanism?</p>\n<p>&nbsp;</p>\n<p>Thanks!</p>\n<p>&nbsp;</p>\n<p>Edward</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30868",
      "postDate": "09/13/2013 17:26:10",
      "content": "<p>[quote=Edward He;30831]</p>\n<p>&nbsp;It appears to me that when it simulates the route of a flight, it doesn't check the routes of other flights to detect collision. Does this mean the agent can assume the entire airspace is available? If yes, will the further version of simulator add this collision detection mechanism?</p>\n<p>[/quote]</p>\n<p>As Ben <a href=\"https://www.gequest.com/c/flight2/forums/t/5530/simulator-release/29406#post29406\">mentioned </a>before, static restricted air space is a possibility for a future version.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30910",
      "postDate": "09/14/2013 15:28:53",
      "content": "<p>Hello everyone</p>\n<p>We just joined the quest and our first bump is getting the simulator to work(windows):</p>\n<p>1. The Version 4 of the simulator was looking for many actualLandings, actualTakeoffs and groundConditions csv files for different dates ... Those files<br>don't even exist in any of the folders provided in the Data download section.</p>\n<p>2. The simulator is asking for a route file name from C:/Temporary/FlightQuest. We couldn't find this file.<br>By looking at the forum Q&amp;A this should be an easy one for the gurus who already submitted their initial quests</p>\n<p>We have attached a screenshot for the problem.<img alt></p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30914",
      "postDate": "09/14/2013 18:59:29",
      "content": "<p>[quote=Nassim Khaled;30910]</p>\n<p>Hello everyone</p>\n<p>We just joined the quest and our first bump is getting the simulator to work(windows):</p>\n<p>1. The Version 4 of the simulator was looking for many actualLandings, actualTakeoffs and groundConditions csv files for different dates ... Those files<br>don't even exist in any of the folders provided in the Data download section.</p>\n<p>2. The simulator is asking for a route file name from C:/Temporary/FlightQuest. We couldn't find this file.<br>By looking at the forum Q&amp;A this should be an easy one for the gurus who already submitted their initial quest</p>\n<p>[/quote]</p>\n<p>&nbsp;</p>\n<p>Hello.</p>\n<p>Note that not everyone on the leaderboard has the simulator working.</p>\n<p>I think your next step is to edit your &quot;runSimulation.exe.config&quot; file.</p>\n<p>&quot;basePath&quot; should hold your main directory for the files you want it to work on.</p>\n<p>The other directories are relative to that basePath.</p>\n<p>You might find it useful to compare the config files in simulators Rev3 and Rev4.</p>\n<p>The gurus can speak for themselves, but I find this a messy process.</p>\n<p>Good luck.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30926",
      "postDate": "09/15/2013 00:49:36",
      "content": "<p>Thank you for the response, glazed. Our question is not about the location of the &quot;basepath&quot; though. We don't know where to get the following files:&nbsp;actualLandings, actualTakeoffs and groundConditions csv files for different dates. Can you point us where to download these files or if we have to create them (and if yes, what is the process). Anyways thanks for the help.&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30933",
      "postDate": "09/15/2013 08:24:38",
      "content": "<p>As of yesterday avast quarantines RunSimulator.exe under Windows considering it a potential threat. I have already notified avast about the issue, but I would suggest the authors to investigate the source of the problem, because clearly the simulator behaves in a way that is considered suspicious.</p>\n<p>For those who have the same problem, open avast, add an exception on the checks for the executable path, restore it from the bin and run as usual.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30939",
      "postDate": "09/15/2013 13:39:17",
      "content": "<p>[quote=Nassim Khaled;30926]</p>\n<p>Thank you for the response, glazed. Our question is not about the location of the &quot;basepath&quot; though. We don't know where to get the following files:&nbsp;actualLandings, actualTakeoffs and groundConditions csv files for different dates. Can you point us where to download these files or if we have to create them (and if yes, what is the process). Anyways thanks for the help.&nbsp;</p>\n<p>[/quote]</p>\n<p>OneDaySimulatorFiles-Rev3 has all the files you need to run the simulator, but it's for different data than the leaderboard is using. Still a good place to start, though. Running the simulator with the leaderboard data is discussed on the &quot;Simulator Release&quot; thread, specifically posts #17 and #21.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "30942",
      "postDate": "09/15/2013 16:59:24",
      "content": "<p>I am trying to run the simulator for the first time is there any user manual</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31046",
      "postDate": "09/17/2013 13:07:42",
      "content": "<p>Should the time steps in the log be in equal increments?.</p>\n<p>Compare the 50th log step of my route 7 &amp; 8 attempts for 301817127 respectively: 1.236 &amp; 1.239. As I write this, it is occuring to me that the difference is due to the last step to a particular waypoint, but can you confirm?</p>\n<p>FlightId,Latitude,Longitude,Easting,Northing,ElapsedTime,AirSpeed,GroundSpeed,Altitude,FuelConsumed,Weight,Status</p>\n<p>301817127,28.7245937106677,-85.9892340120488,475.115628416402,239.588210451629,<strong>1.236</strong>,450.00,436.46,38812.17,6339.02,155048.98,Flying</p>\n<p>301817127,29.2316793768564,-85.8612398941499,479.798468261818,270.491846024349,<strong>1.239</strong>,450.00,439.67,38814.20,6352.68,155035.32,Flying</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31060",
      "postDate": "09/17/2013 20:27:42",
      "content": "<p>[quote=Nassim Khaled;30910]</p>\n<p>Hello everyone</p>\n<p>We just joined the quest and our first bump is getting the simulator to work(windows):</p>\n<p>1. The Version 4 of the simulator was looking for many actualLandings, actualTakeoffs and groundConditions csv files for different dates ... Those files<br>don't even exist in any of the folders provided in the Data download section.</p>\n<p>2. The simulator is asking for a route file name from C:/Temporary/FlightQuest. We couldn't find this file.<br>By looking at the forum Q&amp;A this should be an easy one for the gurus who already submitted their initial quests</p>\n<p>We have attached a screenshot for the problem.<img alt></p>\n<p>[/quote]</p>\n<p>&nbsp;</p>\n<p>Hello all,</p>\n<p>I am also having some questions regarding the actualTakeoffs and actualLanding files. Could someone explain why are the times given as a float number? Are they measured relative to a specific reference timestamp and in which unit (hours, minutes etc)? </p>\n<p>I would also like to ask if someone could clarify the format of the partial weather files </p>\n<p>Thanks for your help.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31061",
      "postDate": "09/17/2013 20:59:25",
      "content": "<p>[quote=Arcana Imperii;31060]</p>\n<p>[quote=Nassim Khaled;30910]</p>\n<p>Hello everyone</p>\n<p>We just joined the quest and our first bump is getting the simulator to work(windows):</p>\n<p>1. The Version 4 of the simulator was looking for many actualLandings, actualTakeoffs and groundConditions csv files for different dates ... Those files<br>don't even exist in any of the folders provided in the Data download section.</p>\n<p>2. The simulator is asking for a route file name from C:/Temporary/FlightQuest. We couldn't find this file.<br>By looking at the forum Q&amp;A this should be an easy one for the gurus who already submitted their initial quests</p>\n<p>We have attached a screenshot for the problem.<img alt></p>\n<p>[/quote]</p>\n<p>&nbsp;</p>\n<p>Hello all,</p>\n<p>I am also having some questions regarding the actualTakeoffs and actualLanding files. Could someone explain why are the times given as a float number? Are they measured relative to a specific reference timestamp and in which unit (hours, minutes etc)?</p>\n<p>I would also like to ask if someone could clarify the format of the partial weather files</p>\n<p>Thanks for your help.</p>\n<p>[/quote]</p>\n<p>about the time, it's not officially expained, but I'm guessing it's the time difference to the day's cutoff time, in hours.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31123",
      "postDate": "09/18/2013 19:27:30",
      "content": "",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31134",
      "postDate": "09/18/2013 20:43:06",
      "content": "<p>Humm. Is the simulator an actual download to a local computer? Or is it in the cloud somewhere and is only controlled through data submissions?&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31135",
      "postDate": "09/18/2013 20:47:48",
      "content": "<p>[quote=John Blue;31134]</p>\n<p>Humm. Is the simulator an actual download to a local computer? Or is it in the cloud somewhere and is only controlled through data submissions?&nbsp;</p>\n<p>[/quote]</p>\n<p>&nbsp;</p>\n<p>Answered my own question. The data page has&nbsp;FlightQuest Simulator-Rev4.&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31143",
      "postDate": "09/18/2013 23:39:03",
      "content": "<p>Hi,</p>\n<p>Could you please fix a bug in the evaluation system?</p>\n<p>It returns error message now:</p>\n<p>Wed, 18 Sep 2013 23:33:57<br>X.<br>Edit description submission.csv<br>&#9650; Submission info/warnings<br>Evaluation Exception: One or more errors occurred.<br>0.00000</p>\n<p>BTW, zero average cost is OK for us, so feel free to leave it as is and move us up in standings :)</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31153",
      "postDate": "09/19/2013 05:49:06",
      "content": "<p>[quote=Alexey Gusakov;31143]</p>\n<p>Evaluation Exception: One or more errors occurred.</p>\n<p>[/quote]</p>\n<p>Each flight is limited to a maximum of 200 way-points. We'll work on getting that error message to flow out to competitors instead of the vague 'one or more errors occurred'.&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31311",
      "postDate": "09/21/2013 17:18:55",
      "content": "<p>I am trying to get the simulator to run on Ubuntu. The simulator hangs while loading the flights*.csv files. Each time, it gets stuck while reading a different file. No messages printed to the output once it hangs. The weather data is loaded fine. Has anyone else seen this?</p>\n<p>I tried two different instances on AWS with the same results. I have been running the simulator on a Mac with no issues. Ubuntu version 12.04.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31314",
      "postDate": "09/21/2013 18:48:57",
      "content": "<p>I have seen a weird behavior of the simulator: 2 solutions identical in the routes can produce different results if the order of the flights is different. Adding column headers can change the result as well.</p>\n<p>The differences are not huge (yet not even so small; +/-0.32 is the greatest I have experienced so far) and it happens only with certain solutions (I haven't found a pattern yet, though), but I'm wondering if there is any flaw in the scoring system at this point...</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31320",
      "postDate": "09/21/2013 22:31:10",
      "content": "<p>[quote=Anil Thomas;31311] I&nbsp;am trying to get the simulator to run on ...Ubuntu version 12.04..[/quote]</p>\n<p>I was able to get the simulator running on Ubuntu 12.04 on my PC (not AWS), though I haven't hit the issue you described. Like others, I did upgrade my version of mono, &nbsp;just for good measure. &nbsp;(The default for Ubuntu 12.04 is mono 2.10, and the simulator README says the simulator runs under mono 3.3).&nbsp;&nbsp;I'm not sure if an old version of mono could cause some file reads to stall, though.&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31321",
      "postDate": "09/21/2013 23:40:14",
      "content": "<p>[quote=Tim Hardin;30798]Hey Philip, I got it to work in Linux, and I used the dll from Json.NET 4.0 Release 8 (http://json.codeplex.com/releases/view/82120) to fix that error.[/quote]</p>\n<p>Thanks! Worked for me.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31337",
      "postDate": "09/22/2013 15:48:40",
      "content": "<p>[quote=Gabriele Seppi;31314]</p>\n<p>I have seen a weird behavior of the simulator: 2 solutions identical in the routes can produce different results if the order of the flights is different. Adding column headers can change the result as well.</p>\n<p>The differences are not huge (yet not even so small; +/-0.32 is the greatest I have experienced so far) and it happens only with certain solutions (I haven't found a pattern yet, though), but I'm wondering if there is any flaw in the scoring system at this point...</p>\n<p>[/quote]</p>\n<p>Now I'm getting worse results and even more worries: I simply swapped the first 2 flights of my solution and added the header, and the score improved by 1.41 points for a SINGLE DAY of the leaderboard. Now, multiply that for the 7 days the leaderboard accounts for and I could theoretically improve by 9.87 points (assuming there are no other hidden tricks): that's definitely no little figure. Is anyone else experiencing this problem?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31340",
      "postDate": "09/22/2013 16:04:40",
      "content": "<p>when you say header you mean the first line of the csv file? &nbsp;if you leave that out it interprets the first line of your file as the header, and so the first leg of your first flight disappears... possibly leading to a crashed flight. &nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31343",
      "postDate": "09/22/2013 16:30:18",
      "content": "<p>I haven't been able to replicate this using the provided simulator. I did a complete shuffling of my routes, and got identical results (twice).</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31345",
      "postDate": "09/22/2013 18:08:56",
      "content": "<p>[quote=ragingphilip;31340]</p>\n<p>when you say header you mean the first line of the csv file? if you leave that out it interprets the first line of your file as the header, and so the first leg of your first flight disappears... possibly leading to a crashed flight.</p>\n<p>[/quote]</p>\n<p>That's exactly what I thought in the first place, but according to the submission page this should not be a problem and, indeed, it doesn't happen with all the files I produce.</p>\n<p>[quote=johnsonav;31343]</p>\n<p>I haven't been able to replicate this using the provided simulator. I did a complete shuffling of my routes, and got identical results (twice).</p>\n<p>[/quote]</p>\n<p>To be honest, that's the kind of behavior I see most of the time, but not always. That's why I'm worried, I can't find a plausible reason for this behavior.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31346",
      "postDate": "09/22/2013 18:25:02",
      "content": "<p>when i run the simulator locally on the one day (July 4th) files and do vs. do not put in the header line in the submitted flight legs .csv file (onedaysamplesubmission), the simulator seems to clearly skip the first line of my submission file when i don't include the header and i (in that case) lost a flight.</p>\n<p>&nbsp;</p>\n<p>when i made the fix and submitted to the leaderboard with header i fixed a couple of other things too, i got a better score but i can't be sure the leaderboard has the same issue.</p>\n<p>&nbsp;</p>\n<p>it would make sense, though, relative to your other issues - if you left out the header and ran flights with order shuffled such that the first line was different each run, it would drop a different flight leg each time and possibly lead to somewhat different scores.</p>\n<p>&nbsp;</p>\n<p>on the submission instructions it seems to indicate a header with column names is needed - did you see elsewhere that it isn't?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31347",
      "postDate": "09/22/2013 18:59:05",
      "content": "<p>Maybe I'm making confusion with flight quest 1, I don't know.</p>\n<p>Anyway, I'll try to always add the header just to be sure everything is in order. Thank you for your help =)</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "31348",
      "postDate": "09/22/2013 19:01:11",
      "content": "<p>[quote=Gabriele Seppi;31345]</p>\n<p>[quote=ragingphilip;31340]</p>\n<p>when you say header you mean the first line of the csv file? if you leave that out it interprets the first line of your file as the header, and so the first leg of your first flight disappears... possibly leading to a crashed flight.</p>\n<p>[/quote]</p>\n<p>That's exactly what I thought in the first place, but according to the submission page this should not be a problem and, indeed, it doesn't happen with all the files I produce.</p>\n<p>[/quote]<br>The header is absolutely required. As you can see in InstructionParser.fs, the first line of the parse function is<br>let body = parseCellsSkipHeader text</p>\n<p>Ragingphilip correctly states that the first waypoint of your first flight will be skipped, thereby affecting your cost.</p>\n<p>&nbsp;</p>\n<p>[quote=Gabriele Seppi;31345]</p>\n<p>[quote=johnsonav;31343]</p>\n<p>I haven't been able to replicate this using the provided simulator. I did a complete shuffling of my routes, and got identical results (twice).</p>\n<p>[/quote]</p>\n<p>To be honest, that's the kind of behavior I see most of the time, but not always. That's why I'm worried, I can't find a plausible reason for this behavior.</p>\n<p>[/quote]</p>\n<p>Rounding error while summing the costs is <a href=\"http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html#1070\">plausible</a>; the final score could change depending on the order of the flight costs (... the flights themselves). &nbsp;Unless we see an extremely tight race near the end of the competition, this is not worth looking at any further.</p>\n<p>&nbsp;</p>\n<p>[quote=Gabriele Seppi;31345]</p>\n<p>the score improved by 1.41 points for a SINGLE DAY of the leaderboard. Now, multiply that for the 7 days the leaderboard accounts for and I could theoretically improve by 9.87 points</p>\n<p>[/quote]</p>\n<p>The leaderboard score is the weighted average of the daily scores. &nbsp;</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "32170",
      "postDate": "10/09/2013 11:41:17",
      "content": "<p>Waiting for the new data release I am going through the simulator-code atm, (which I should have done earlier, since I see plenty of useless stuff I coded like different cruising speeds and heights depending on which airplane type it is).</p>\n<p>Anyway, in Movement.fs are you sure that the angles in:</p>\n<p>let calculateGroundVelocity are right?</p>\n<p>More in detail, I think there is an error in defining g, assuming that Groundspeed in the next line is computed via the sine-formula. From just drawing the triangle:</p>\n<p>1)the angle oppsed to airspeed is (PI - aDirection) and sin(PI - aDirection)==sin(aDirection).</p>\n<p>2)the angle opposed to the grounddirection is gMine= aDirection-w.</p>\n<p>So the sine formula gives</p>\n<p>GroundSpeed/sin(aDirection-w)=airspeed/sin(PI-aDirection)</p>\n<p>Rearranging and using sin(PI-th)=sin(th) twice:</p>\n<p>Groundspeed=airSpeed* sin (PI-aDirection <strong>+ </strong>w)/sin(aDirection)</p>\n<p>&nbsp;</p>\n<p>So if my triangle is not wrong, then g in the code should be:</p>\n<p>g = System.Math.PI - aDirection + w&nbsp;&nbsp;&nbsp; and not:</p>\n<p>g = System.Math.PI - aDirection - w</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "32237",
      "postDate": "10/11/2013 01:36:29",
      "content": "<p>[quote=Sandro Scodeller (Sigma);32170]</p>\n<p>Waiting for the new data release I am going through the simulator-code atm, (which I should have done earlier, since I see plenty of useless stuff I coded like different cruising speeds and heights depending on which airplane type it is).</p>\n<p>Anyway, in Movement.fs are you sure that the angles in:</p>\n<p>let calculateGroundVelocity are right?</p>\n<p>More in detail, I think there is an error in defining g, assuming that Groundspeed in the next line is computed via the sine-formula. From just drawing the triangle:</p>\n<p>1)the angle oppsed to airspeed is (PI - aDirection) and sin(PI - aDirection)==sin(aDirection).</p>\n<p>2)the angle opposed to the grounddirection is gMine= aDirection-w.</p>\n<p>So the sine formula gives</p>\n<p>GroundSpeed/sin(aDirection-w)=airspeed/sin(PI-aDirection)</p>\n<p>Rearranging and using sin(PI-th)=sin(th) twice:</p>\n<p>Groundspeed=airSpeed* sin (PI-aDirection <strong>+ </strong>w)/sin(aDirection)</p>\n<p>&nbsp;</p>\n<p>So if my triangle is not wrong, then g in the code should be:</p>\n<p>g = System.Math.PI - aDirection + w&nbsp;&nbsp;&nbsp; and not:</p>\n<p>g = System.Math.PI - aDirection - w</p>\n<p>[/quote]Sandro, thanks for looking into this.</p>\n<p>The unit test cases that this function passes are as follows:</p>\n<pre>module SpatialTests\n\nopen FlightQuest.Units\nopen FlightQuest.Movement\n\nopen Testing\nopen NUnit.Framework\nopen FsUnit\n\n[]\ntype SpatialTests() =\n    let Precision = 0.0001\n\n    []\n    member test.``Calculated Ground Speed``() =\n        let checkCalculatedSpeed (airspeed, windX:float, windY:float, groundDirection:float, expededGroundSpeed:float) =\n            let gSpeed = calculateGroundVelocity (airspeed*1.0) groundDirection (windX * 1.0, windY * 1.0)\n            gSpeed |&gt; should (equalWithin 1.0) expededGroundSpeed\n\n        let entries =\n            [(500.0,0.0,300.0,0.0,400.0);\n            (500.0,100.0,0.0,0.0,600.0);\n            (500.0,0.0,0.0,0.0,500.0);\n            (500.00,300.0,0.0,1.570796327,400.0);\n            (0.0,0.0,0.0,0.0,0.0);\n            (400.0,-100.0,0.0,0.0,300.0);\n            (230.0,100.0,0.0,-0.6681002,300.0);\n            (255.3256439,87.75825619,47.94255386,-0.093823323,332.0);\n            (455.0,-85.33,-135.32,0.0,349.0816684);\n            (433.0,0.0,0.0,1.3321,433.0);\n            ]\n        List.iter checkCalculatedSpeed entries</pre>\n<p>The change you proposed causes the (230.0, 100.0, 0.0, -0.6681002, 300.0) test to fail (and possibly subsequent ones as well). If you still believe there's an error in the math, could you make a case for the failing unit test(s) being erroneous as well and possibly propose new unit tests?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "32248",
      "postDate": "10/11/2013 08:38:45",
      "content": "<p>Ok, I found where I was wrong: I assumed that the directions are wrt to the north while actually the atan2 function in spatial.fs:</p>\n<p>let calculateRadians (v:Vector) = &nbsp;&nbsp;&nbsp; System.Math.Atan2(float(snd v), float(fst v))</p>\n<p>returns the angle from the x-axis.</p>\n<p>E.g.: (u,v)=(100,0) corresponds to a windir=0, while I assumed it would be +90deg</p>\n<p>Re-drawing my triangle with this in mind, I completely agree with the formula (and your test anyway showed it to be right:-)).</p>\n<p>Sorry, for this misunderstanding.</p>",
      "rawMarkdown": "",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 29422,
      "author_name": "sergeykozub",
      "author_url": "",
      "post_date": "08/25/2013 05:16:10",
      "content": "<p>It looks like all the flights are treated as &quot;Westbound&quot;, please fix this.&nbsp;</p>\n<p>In FlightEntry.fs line 39:</p>\n<p><code>Direction=if Tuple3.get1 departureAirport.Position &lt; Tuple3.get1 departureAirport.Position then Eastbound else Westbound</code></p>\n<p>(it looks to me you should be comparing departureAirport.Position with arrivalAirport.Position)</p>\n<p>&nbsp;</p>\n<p>Note: I posted this a bit earlier in a separate thread (when this one didn't exist). You can remove that thread.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29443,
      "author_name": "julesvanligtenberg",
      "author_url": "",
      "post_date": "08/25/2013 14:48:54",
      "content": "<p>Between 24 aug 13:00 UTC and now the simulator used to calculate the leaderboard changed (again).</p>\n<p>(Resulting in other scores and changes in the Leaderboard)</p>\n<p>Is this change reflected in the source we can download i.e. is this source the current version?</p>\n<p>And, as charango asked before, would it be possible to notify us if and when the simulator is changed, even if it is only a small bug fix?</p>\n<p>Thanks</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29449,
      "author_name": "blindape",
      "author_url": "",
      "post_date": "08/25/2013 17:58:13",
      "content": "<p>Thank you, Ben</p>\n<p>Discovering F# just now.&nbsp;</p>\n<p>I think in descent.fs, in calculate Time, the&nbsp; MaximumRateOfDescent restriction isn't used:</p>\n<p>&nbsp;</p>\n<p>Actually:</p>\n<p>let calculateTime (model:DescentModel) (altitude:float&#161;Feet&#161;) =<br> let aTime = (float altitude)**model.TimePower<br> let time = model.TimeIntercept + model.TimeAltitude*aTime<br> let result = time * 1.0&#161;Hours&#161;<br> result</p>\n<p>Would be?</p>\n<p>let calculateTime (model:DescentModel) (altitude:float&#161;Feet&#161;) =<br> let aTime = (float altitude)**model.TimePower<br> let time = model.TimeIntercept + model.TimeAltitude*aTime<br> let result = max (altitude / MaximumRateOfDescent) time * 1.0&#161;Hours&#161;<br> result</p>\n<p>&nbsp;</p>\n<p>I understand this altitude is assumed as the altitude needed to descend. Not the actual altitude. Is correct?</p>\n<p>&nbsp;EDIT. The '&lt;' symbol trunc the message. Is there a way to avoid this?</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29455,
      "author_name": "jhaberstroh",
      "author_url": "",
      "post_date": "08/25/2013 23:17:22",
      "content": "<p>Hello Ben,</p>\n<p><span style=\"line-height: 1.4\">I've gotten the executable to compile, but I can't find all of the data that I need to run the simulator. From RunSimulation.exe.config:</span></p>\n<p>&nbsp;</p>\n<p>add key=&quot;basePath&quot; value=&quot;/home/jhaberstroh/Data/kaggle/FlightData&quot; /&gt;</p>\n<p>!-- Following file paths are appended to basePath --&gt;<br>add key=&quot;configFile&quot; value=&quot;/Configuration/Configuration.json&quot; /&gt;<br>add key=&quot;projectionFile&quot; value=&quot;/Configuration/Projection.json&quot; /&gt;<br>add key=&quot;airportsFile&quot; value=&quot;/Airports/Airports.csv&quot; /&gt;<br>add key=&quot;landingFile&quot; value=&quot;/Airports/Landing.csv&quot; /&gt;<br>add key=&quot;taxiFile&quot; value=&quot;/Airports/Taxi.csv&quot; /&gt;<br>add key=&quot;routesFile&quot; value=&quot;/sampleSubmission.csv&quot; /&gt;</p>\n<p>!-- Day specific file pattern; also appended to basePath--&gt;<br><span style=\"line-height: 1.4\">add key=&quot;weatherFiles&quot; value=&quot;/Weather/weather_{0}.txt.gz&quot; /&gt;</span><br>add key=&quot;flightFiles&quot; value=&quot;/Flights/flights_{0}.csv&quot; /&gt;<br>add key=&quot;groundConditionFiles&quot; value=&quot;/Airports/groundConditions_{0}.csv&quot; /&gt;<br>add key=&quot;scheduledLandingFiles&quot; value=&quot;/Airports/scheduledLandings_{0}.csv&quot; /&gt;<br>add key=&quot;actualLandingFiles&quot; value=&quot;/Airports/actualLandings_{0}.csv&quot; /&gt;</p>\n<p>&nbsp;Unfortunately, the only ones of these files that are on the download page are sampleSubmission.csv and airports.csv (though this one is maybe not even the right file?). I did a `find . --name &quot;Configuration.json&quot;` in a folder containing all of the downloadable content, and I found nothing. Is there something here that I don't understand?</p>\n<p>&nbsp;</p>\n<p>Thank you,</p>\n<p>John</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>Edit: Answer pointed out by Quadbinary:</p>\n<p>&quot;We have not yet released samples of the input files necessary to run the Simulator. These include configuration settings, flight initialization files, wind data, and airport data. We also haven't released other files over the leaderboard period that you may find useful (flight and weather information prior to each day's cutoff time). Additionally, the code to generate these files from the raw data as well as the comprehensive unit tests for the Simulator aren't included in the current code release. These sample files, data, and code will be released in the coming days.&quot; -- posted in paragraph three of <a href=\"https://www.gequest.com/c/flight2/forums/t/5530/simulator-release/29406#post29406,\">Simulator Release</a>,&nbsp;Sun, Aug 25th</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29473,
      "author_name": "sergeykozub",
      "author_url": "",
      "post_date": "08/26/2013 09:51:09",
      "content": "<p>It looks like Arrival.fs model does not trigger non-arrival penalty, i.e. it is possible for an aircraft to consume more fuel than it had on-board initially.</p>\n<p>For example, if a flight had 10,000 pounds of fuel initially, and spent 9990 pounds just to get to the landing area (18,000 ft and within 75 miles of the destination airport), the simulator will mark it as &quot;arrived&quot; and will apply the landing model afterwards. Let's suppose the landing model reports 1000 pounds fuel consumption, then the simulator will calculate the resulting score by applying the CostModel.fs with 10,990 pounds as argument (although it had only 10,000 initially). I suppose this example should triggen non-arrival penalty score.</p>\n<p>Please let us know if this issue will be fixed, or if it's going to stay like that, as this decision might affect the resulting model significantly.</p>\n<p>P.S. I might be mistaken in this, please correct me if I'm wrong. I'm just reading the code, as we cannot actually run it without the config files.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29483,
      "author_name": "blindape",
      "author_url": "",
      "post_date": "08/26/2013 12:41:21",
      "content": "<p>[quote=charango;29473]</p>\n<p>It looks like Arrival.fs model does not trigger non-arrival penalty, i.e. it is possible for an aircraft to consume more fuel than it had on-board initially.</p>\n<p>For example, if a flight had 10,000 pounds of fuel initially, and spent 9990 pounds just to get to the landing area (18,000 ft and within 75 miles of the destination airport), the simulator will mark it as &quot;arrived&quot; and will apply the landing model afterwards. Let's suppose the landing model reports 1000 pounds fuel consumption, then the simulator will calculate the resulting score by applying the CostModel.fs with 10,990 pounds as argument (although it had only 10,000 initially). I suppose this example should triggen non-arrival penalty score.</p>\n<p>Please let us know if this issue will be fixed, or if it's going to stay like that, as this decision might affect the resulting model significantly.</p>\n<p>P.S. I might be mistaken in this, please correct me if I'm wrong. I'm just reading the code, as we cannot actually run it without the config files.</p>\n<p>[/quote]</p>\n<p>Would be interesting to know the landing (time &amp; fuel) model or almost a maximun bound for both time and fuel. Otherwise if we adjust in excess could be penalized with a 'not arrival'.</p>\n<p>I don't know what time to estimate for automatic landing from 75 miles to arrival gate.</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29490,
      "author_name": "wbtthefrog",
      "author_url": "",
      "post_date": "08/26/2013 14:43:24",
      "content": "<p>[quote=Jos&#233; A. Guerrero;29449]</p>\n<p>&nbsp;EDIT. The '&lt;' symbol trunc the message. Is there a way to avoid this?</p>\n<p>[/quote]</p>\n<p>&nbsp;</p>\n<p>Follow along at https://www.kaggle.com/forums/t/5400/forum-posting-bug/ in case one is posted.&nbsp; The best current workaround is to put a space after your less than sign. </p>\n<p>And on edit...wow, I am amazed at how the forum just mangled the quote.&nbsp; It looks just fine in the post editor.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29644,
      "author_name": "sergeykozub",
      "author_url": "",
      "post_date": "08/28/2013 14:20:47",
      "content": "<p>Hello, Ben/Nick.</p>\n<p>I've noticed another possible issue with the ArrivalModel (Arrival.fs).</p>\n<p>The model includes structures named&nbsp;LandingGlm and&nbsp;TaxiGlm, which describe the approximation model coefficients. Among other fields, there are fields named &quot;TakeOff_*&quot;.</p>\n<p>However, the simulator code feeds values from&nbsp;scheduledLandings_[date].csv into those TakeOff fields, and the file&nbsp;actualTakeoffs_[date].csv (provided within &quot;OneDaySimulatorFiles&quot;) is not used at all. And BTW, the&nbsp;scheduledLandings file for the training day was not provided.</p>\n<p>&nbsp;</p>\n<p>This means that either (a) the field names in GLM models are incorrect, or (b) the simulator should feed actualTakeoffs.csv instead of scheduledLandings.csv</p>\n<p>Please provide your comments on this issue.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29716,
      "author_name": "nicksardo",
      "author_url": "",
      "post_date": "08/29/2013 14:42:01",
      "content": "<p>Charango,</p>\n<p>The answer to your question is b - we do not use scheduledlandings.csv anymore. &nbsp;Sorry, this was a rename that didn't get propagated everywhere. &nbsp;I've uploaded a minor, cosmetic update to the simulator that renames the variables in RunSimulator to actualTakeoffs and switches the scheduledLandingFiles app setting with&nbsp;actualTakeoffFiles. &nbsp;You can continue to run your current version of the code just by feeding scheduledLandingFiles with&nbsp;actualTakeoffs_[date].csv.</p>\n<p>As always, thanks for catching this.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29733,
      "author_name": "stereotomy",
      "author_url": "",
      "post_date": "08/29/2013 19:43:03",
      "content": "<p>This is possibly a stupid mistake or misreading on my part, but I'm struggling to understand this part of the simulator source, from FuelModel.fuelBurn:</p>\n<p>&nbsp;</p>\n<p><code>let (totalFuelBurn, verticalVelocity) =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; match vertical with<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Descent -&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; let (descentRate, descentFuelBurn)= Descent.calculateRates descentModel altitude weight<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertNumber &quot;descentRate&quot; descentRate<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertNumber &quot;descentFuelBurn&quot; descentFuelBurn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertNonPositive &quot;descentRate&quot; descentRate<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertNonNegative &quot;descentFuelBurn&quot; descentFuelBurn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (descentFuelBurn, descentRate)<br><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Cruise -&gt; (0.0&lt; FuelPounds/Hours &gt;, 0.0&lt; Feet/Hours &gt;)</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Ascent -&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; let (ascentRate, rawAscentFuelBurn) = Ascent.calculateRates ascentModel altitude weight<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertNumber &quot;ascentRate&quot; ascentRate<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertNumber &quot;rawAscentFuelBurn&quot; rawAscentFuelBurn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertNonNegative &quot;ascentRate&quot; ascentRate<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertNonNegative &quot;rawAscentFuelBurn&quot; rawAscentFuelBurn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; let ascentFuelBurn = max rawAscentFuelBurn cruiseFuelBurn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ascentFuelBurn, ascentRate)</code></p>\n<p>&nbsp;</p>\n<p>Specifically the bolded line. Why is the total fuel burn being set to 0 for cruise? Shouldn't it be the vertical fuel burn that's 0? I'd have thought the correct line (allowing syntax, as I'm not too familiar with F#) would be:</p>\n<p>&nbsp;</p>\n<p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Cruise -&gt; (cruiseFuelBurn&lt; FuelPounds/Hours &gt;, 0.0&lt; Feet/Hours &gt;)</code></p>\n<p>&nbsp;</p>\n<p>Where cruiseFuelBurn is defined earlier in the function.</p>\n<p>EDIT: Had to add extra spacing to get the triangular brackets to display properly</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29740,
      "author_name": "alzmcr",
      "author_url": "",
      "post_date": "08/29/2013 21:39:55",
      "content": "<p>Not an F# expert at all, but I'm guessing that you calculate previously the cruise fuel consumption from A to B and you store into <strong>cruiseFuelBurn</strong>.&nbsp;</p>\n<p>If from A to B you're adjusting your altitude, you'll have some extra cost\\discount in fuel consumption to take in account, since you're climbing\\descending. AscendModel &amp; DescendModel will make these calculationg, coming up with their relative&nbsp;<strong>(totalFuelBurn, verticalVelocity)</strong>.</p>\n<p>You'll <strong>verticalFuelBurn</strong> will be the total fuel burn, minus the fuel burned while crusing. I'm guessing negative if you're descending, positive if you're climing.. the same (this is why is zero) if you're cruising and not adjusting the altitude!</p>\n<p>I just hope I'm right, and it makes sense!</p>\n<p>&nbsp;</p>\n<p><strong>Question:</strong><br>What I would like to understand is... from A (Alt: 10,000) to B (Alt: 15,000) to C (Alt: 15,000). I'll be climbing proportionally for all the entire time between A to B? Or I'll be climbing to 15,000 from A just for the first minutes and then cruising till reaching waypoint B? (assuming you'll have enough time!)</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29747,
      "author_name": "stereotomy",
      "author_url": "",
      "post_date": "08/29/2013 23:15:34",
      "content": "<p>Well later on comes the line:</p>\n<p><code>let verticalFuelBurn = totalFuelBurn - cruiseFuelBurn</code></p>\n<p>&nbsp;</p>\n<p>So totalFuelBurn when you're cruising should not be 0. It should be cruiseFuelBurn. That would give the desired value of 0 for verticalFuelBurn</p>\n<p>XXXXX</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29755,
      "author_name": "jhaberstroh",
      "author_url": "",
      "post_date": "08/30/2013 00:44:25",
      "content": "<p>Hi Nick,</p>\n<p>Thank you for addressing this issue!</p>\n<p>We are so close to having working simulator. The ONLY file missing is Taxi.csv.</p>\n<p>I don't think this is even part of the model anymore; if Taxi means &quot;driving around the airport&quot;, that part of the system should not be relevant to our simulations. Can anyone help us out with this? Are there some lines that we can delete/modify in the source to spoof this file?</p>\n<p>&nbsp;</p>\n<p>Thanks!</p>\n<p>John</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29756,
      "author_name": "benhamner",
      "author_url": "",
      "post_date": "08/30/2013 00:45:53",
      "content": "<p>Taxi.csv is now available for download (there's another forum thread on this).</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29768,
      "author_name": "sergeykozub",
      "author_url": "",
      "post_date": "08/30/2013 11:57:10",
      "content": "<p>Hello, Ben/Nick.</p>\n<p>&nbsp;</p>\n<p>In Simulator.fs line 54:</p>\n<p><code>let <strong>weight</strong> = coreFunctions.WeightModel flightParams <strong>state</strong><br>let landingState = coreFunctions.ArrivalModel airportEnvironment FuelModel.flightFunctions flightParams <strong>endState</strong>.AircraftPosition <strong>weight</strong> time<br></code></p>\n<p>&nbsp;</p>\n<p>You're passing the aircraft position in the landing zone _and_ the aircraft weight in the starting point, to the ArrivalModel.</p>\n<p>It looks like the weight should be calculated based on the &quot;endState&quot;.</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29773,
      "author_name": "davidwilson0",
      "author_url": "",
      "post_date": "08/30/2013 13:24:23",
      "content": "<p>In Flight.fs line 55:</p>\n<p>let windVector = getWindVelocity weather time currentPosition<br> let groundSpeed = calculateGroundVelocity airSpeed (calculateRadians deltaVector) windVector<br> let groundVector = Movement.rescale deltaVector groundSpeed</p>\n<p>&nbsp;</p>\n<p><span style=\"line-height: 1.4\">Does the groundVector calculation account for the differences in the distance in one degree of longitude at different degrees of latitude? &nbsp;If not, will that assumption change in future versions of the simulator?</span></p>\n<p>Thanks!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29819,
      "author_name": "nicksardo",
      "author_url": "",
      "post_date": "08/31/2013 00:49:13",
      "content": "<p>[quote=Stereotomy;29733]</p>\n<p>Specifically the bolded line. Why is the total fuel burn being set to 0 for cruise? Shouldn't it be the vertical fuel burn that's 0? I'd have thought the correct line (allowing syntax, as I'm not too familiar with F#) would be:</p>\n<p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Cruise -&gt; (cruiseFuelBurn&lt; FuelPounds/Hours &gt;, 0.0&lt; Feet/Hours &gt;)</code></p>\n<p>[/quote]</p>\n<p>Stereotomy, I've renamed the first item of the resulting tuple to 'verticalCruiseFuelDiff' as verticalFuelBurn is a misnomer. &nbsp;This does contain a negative value when the flight's altitude does not change ( match vertical -&gt; Cruise) or when in descent. &nbsp;However, let me show you line 97 of Flight.fs.</p>\n<p><code> let totalFuelBurn = cruiseBurn * timeElapsed + verticalCruiseFuelDiff * climbTimeElapsed</code></p>\n<p>climbTimeElapsed equals 0.0 when&nbsp;VerticalVelocity is 0.0 (cruising), and therefore only the cruising fuel burn is returned.</p>\n<p>&nbsp;</p>\n<p>[quote=Alessandro Mariani;29740]</p>\n<p>What I would like to understand is... from A (Alt: 10,000) to B (Alt: 15,000) to C (Alt: 15,000). I'll be climbing proportionally for all the entire time between A to B? Or I'll be climbing to 15,000 from A just for the first minutes and then cruising till reaching waypoint B? (assuming you'll have enough time!)</p>\n<p>[/quote]</p>\n<p>No, it's not proportional to the distance of A and B. Your ascent/descent rate change depending your current altitude and, for ascent only, your weight. &nbsp;(Try iterating over calculateRates in Ascent.fs and Descent.fs to get an idea of what the curve looks like) &nbsp;You bring up something important:&nbsp;<strong>you may not reach your target altitude given a short distance between instructions.&nbsp;</strong> An instruction is determined to be 'reached' when the plane arrives at the lat/long coordinates, and then the next instruction's altitude is only relevant.</p>\n<p>&nbsp;</p>\n<p>[quote=charango;29768]</p>\n<p>You're passing the aircraft position in the landing zone _and_ the aircraft weight in the starting point, to the ArrivalModel.</p>\n<p>It looks like the weight should be calculated based on the &quot;endState&quot;.</p>\n<p>[/quote]</p>\n<p>Good catch, thanks charango. &nbsp;I've uploaded a new revision of the simulator (Rev3) and updated all the submission scores. &nbsp;This change lowered the cost of the sampleSubmission by about $7. &nbsp;</p>\n<p>&nbsp;</p>\n<p>[quote=David Wilson;29773]</p>\n<p><span style=\"line-height: 1.4\">Does the groundVector calculation account for the differences in the distance in one degree of longitude at different degrees of latitude? If not, will that assumption change in future versions of the simulator?</span></p>\n<p><span style=\"line-height: 1.4\">[/quote]</span></p>\n<p><span style=\"line-height: 1.4\">David, any lats/longs inputted into the simulator immediately get converted onto a<a href=\"http://geospatial.referata.com/wiki/Lambert_conformal_conic_projection\"> Lambert conformal conic projection</a> (same type and parameters used by NOAA for the grib weather data). Take a look at the spatial coverage section <a href=\"http://www.esrl.noaa.gov/psd/data/gridded/data.narr.html\">here</a>, and you can find the parameters to the conversion in OneDaySimulatorFilesRev2/Projection.json. &nbsp;</span></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29846,
      "author_name": "alzmcr",
      "author_url": "",
      "post_date": "08/31/2013 14:17:03",
      "content": "<p>About the same lines David posted above.</p>\n<p><strong>In Flight.fs line 55:</strong></p>\n<p style=\"padding-left: 30px\"><code>let windVector = getWindVelocity weather time currentPosition<br>let groundSpeed = calculateGroundVelocity airSpeed (calculateRadians deltaVector) windVector<br>let groundVector = Movement.rescale deltaVector groundSpeed</code></p>\n<p>If I'm reading it right, ground speed is calculated using the wind direction\\strength in the current position of the aircraft. So, if we have a long waypoint from A to B (eg. 1000nm or more), the ground speed stay the same till we reach B? Even though wind condition might be different by the time we get to B?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29851,
      "author_name": "chefele",
      "author_url": "",
      "post_date": "08/31/2013 15:18:07",
      "content": "<p>I've been looking at those lines too, as well as the calculateGroundVelocity function.&nbsp; Overall, it seems like&nbsp;<span style=\"line-height: 1.4\">the plane's <em>direction</em> (i.e. direction of groundVector) at each simulation timestep is </span><em style=\"line-height: 1.4\">not</em><span style=\"line-height: 1.4\"> influenced by the wind, but groundSpeed is. So groundspeed can change between waypoints. &nbsp;How much probably also depends on the time/spacial resolution of the wind report data (which I haven't checked...).</span></p>\n<p>The code above also made me wonder why a plane's&nbsp;<em>direction</em> wouldn't change due to wind. After all, couldn't a sudden crosswind blow a plane off course? After some research I saw that&nbsp;the equations at the end of calculateGroundVelocity (in Movement.fs) look suspiciously like a wind-correction angle formula for an <a href=\"http://en.wikipedia.org/wiki/E6B\">E6B</a>. &nbsp; So that implies the simulator 'autopilot'&nbsp;keeps the plane on course by pointing the plane a few degrees away from a waypoint (towards the wind) to correct for any &quot;side-slipping&quot; due to winds.&nbsp;</p>\n<p>Speaking of wind, here's a fun video of &nbsp;some &nbsp;<a href=\"http://youtu.be/_z2LtHrn9Jw\">777 landings in high crosswinds</a>, which shows all these dynamics in action&nbsp; :)</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29889,
      "author_name": "timhardin",
      "author_url": "",
      "post_date": "09/01/2013 04:27:30",
      "content": "<p><code>Aircraft.fs, in FlightQuestSimulator-Rev3, has the following configuration for the aircraft:</code></p>\n<p><code>ServiceCeiling=41000.0&lt;Feet&gt;</code></p>\n<p><code>OperatingEmptyWeight=91108.0&lt;Pounds&gt;</code><code></code></p>\n<p><code>FuelCapacity=7837.0&lt;Gallons&gt;</code></p>\n<p><code>MaximumTakeOffWeight=174200.0&lt;Pounds&gt;</code><code></code></p>\n<p><code>MaximumMachSpeed = 0.82</code></p>\n<p><code>MinimumAirSpeed = 150.0&lt;Knots&gt;</code><code></code></p>\n<p><code>TaxiFuelBurn = 1984.158&lt;FuelPounds/Hours&gt;}</code></p>\n<p>&nbsp;</p>\n<p>According to Wikipedia (https://en.wikipedia.org/wiki/Boeing_737_Next_Generation), the 737-800 has a matching operating empty weight and maximum takeoff weight, but not a matching fuel capacity (6,875 US gallons).&nbsp; The 737-900ER has a matching fuel capacity, but not a matching operating empty weight (98,495 lbs) and a maximum takeoff weight (187,700 lbs).</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29892,
      "author_name": "ofuture",
      "author_url": "",
      "post_date": "09/01/2013 06:11:27",
      "content": "<p>why &nbsp;do&nbsp;FlightQuestSimulator-Rev3 use v2 data format?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29893,
      "author_name": "benhamner",
      "author_url": "",
      "post_date": "09/01/2013 06:12:37",
      "content": "<p>Data and code are revisioned separately.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29894,
      "author_name": "benhamner",
      "author_url": "",
      "post_date": "09/01/2013 06:14:50",
      "content": "<p>[quote=Christopher Hefele;29851]</p>\n<p>I've been looking at those lines too, as well as the calculateGroundVelocity function.&nbsp; Overall, it seems like&nbsp;<span style=\"line-height: 1.4\">the plane's <em>direction</em> (i.e. direction of groundVector) at each simulation timestep is </span><em style=\"line-height: 1.4\">not</em><span style=\"line-height: 1.4\"> influenced by the wind, but groundSpeed is. So groundspeed can change between waypoints. &nbsp;How much probably also depends on the time/spacial resolution of the wind report data (which I haven't checked...).</span></p>\n<p>The code above also made me wonder why a plane's&nbsp;<em>direction</em> wouldn't change due to wind. After all, couldn't a sudden crosswind blow a plane off course? After some research I saw that&nbsp;the equations at the end of calculateGroundVelocity (in Movement.fs) look suspiciously like a wind-correction angle formula for an <a href=\"http://en.wikipedia.org/wiki/E6B\">E6B</a>. &nbsp; So that implies the simulator 'autopilot'&nbsp;keeps the plane on course by pointing the plane a few degrees away from a waypoint (towards the wind) to correct for any &quot;side-slipping&quot; due to winds.&nbsp;</p>\n<p>Speaking of wind, here's a fun video of &nbsp;some &nbsp;<a href=\"http://youtu.be/_z2LtHrn9Jw\">777 landings in high crosswinds</a>, which shows all these dynamics in action&nbsp; :)</p>\n<p>[/quote]We assume the plane's heading accounts for the wind in such a manner that the plane's path along the ground is always pointed directly towards the waypoint.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29895,
      "author_name": "suresh1187",
      "author_url": "",
      "post_date": "09/01/2013 06:29:17",
      "content": "<p>Hi Ben,</p>\n<p>You have provided wind information for one day in weather_20130704_1540.txt.Will you provide the same for other days or we need to create some probabilistic model for the same.</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29964,
      "author_name": "blindape",
      "author_url": "",
      "post_date": "09/01/2013 23:23:45",
      "content": "<p>In arrival.fs:</p>\n<p><span style=\"line-height: 1.4\">let arrivalModel</span></p>\n<p>(airportEnvironment:AirportEnvironment) (_, descentModel, _, holdingModel)<br> (flightParams:FlightParameters) (position:Spatial.Position) weight time =<br> let airport = flightParams.DestinationAirport<br> let altitude = positionToAltitude position</p>\n<p>let (descentTime, descentFuel, descentDistance) =<br> Descent.calculateTimeFuelDistance descentModel altitude weight</p>\n<p>&nbsp;</p>\n<p>altitude is used for descent model, but the efective altitude to descend is (altitude - airport.elevation)</p>\n<p>There are airports with elevation &gt; 5000 ft, which is relevant.</p>\n<p>&nbsp;</p>\n<p>Have you used effective altitude (altitude - airport elevation) in the generation of taxi, landing and holding time and fuel burned? Otherwise these models could be biased.</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29965,
      "author_name": "blindape",
      "author_url": "",
      "post_date": "09/01/2013 23:33:21",
      "content": "<p>[quote=suresh s;29895]</p>\n<p>Hi Ben,</p>\n<p>You have provided wind information for one day in weather_20130704_1540.txt.Will you provide the same for other days or we need to create some probabilistic model for the same.</p>\n<p>&nbsp;[/quote]</p>\n<p>I think we need several adjacents days for estimated these models and<strong> the weather at cutoff time for the test day</strong>. Then &nbsp;we can estimate how the wind could change some hours later.</p>\n<p>This would be more realistic.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29966,
      "author_name": "suresh1187",
      "author_url": "",
      "post_date": "09/02/2013 03:18:56",
      "content": "<p>Yes. We may require wind map(magnitude and direction) for some days with (latitude,longitude,altitude and time) info to train the wind model.</p>\n<p>I have not seen any data set provided , with the above info altogether except in onedaySimulatorFilesRev2(&quot;weather_20130704_1540.txt&quot;)</p>\n<p>But , admin must be using some wind model (look up table etc.) at their end to calculate the cost for the way points that we submit, if they share it ,it would be helpful.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29996,
      "author_name": "robertramey",
      "author_url": "",
      "post_date": "09/02/2013 16:12:49",
      "content": "<p>I tried to run the simulator on my XP machine.</p>\n<p>It fails with a message that I need .Net 4.5</p>\n<p>I tried to install .Net 4.5 and says it can't be run on XP</p>\n<p>I have F# installed for my MSVS 2008 (9.0) system.&nbsp; I create a new project for the FlightQuest library and add the *.fs files from the project that I downloaded.&nbsp; I try to compile it and it fails for lack of some packages.&nbsp; I found Newtonsoft.json package and that resolves some of the issues.&nbsp; But still I have some missing symbols.</p>\n<ul>\n<li>DataContract</li>\n<li>Parallel</li>\n<li>List ?</li>\n<li>row</li>\n</ul>\n<p>What can I add to this think to make it build?</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30087,
      "author_name": "blindape",
      "author_url": "",
      "post_date": "09/03/2013 20:14:41",
      "content": "<p>Data incongruencies</p>\n<p><span style=\"line-height: 1.4\">I've found several data times incongruencies:</span></p>\n<p>999 scheduled_gate_arrival before the cutoffTime.</p>\n<p>179 with scheduled_gate_arrival before actual_gate_departure.</p>\n<p>In the file there are some examples.</p>\n<p>Could you confirm the data used by the simulator for compute leaderboard are these?</p>\n<p>(I've taken them from test1_flighthistory.csv file).</p>\n<p>How do affect these negative values to the landing / taxi /holding models?</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30091,
      "author_name": "tanstaafl",
      "author_url": "",
      "post_date": "09/03/2013 20:30:25",
      "content": "<p>I too would like to get the exact same result locally as I get from the leaderboard but haven't yet.</p>\n<p>How are you going about translating the missing</p>\n<p>departure and arrival times found in test1_flighthistory.csv from date format to float?:</p>\n<p>scheduled_gate_departure</p>\n<p>actual_gate_departure</p>\n<p>scheduled_runway_arrival</p>\n<p>Also where is the: initial_fuel ?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30096,
      "author_name": "blindape",
      "author_url": "",
      "post_date": "09/03/2013 20:46:24",
      "content": "<p>[quote=Tanstaafl;30091]</p>\n<p>I too would like to get the exact same result locally as I get from the leaderboard but haven't yet.</p>\n<p>How are you going about translating the missing</p>\n<p>departure and arrival times found in test1_flighthistory.csv from date format to float?</p>\n<p>also where is the initial_fuel and consumed_fuel ?</p>\n<p>[/quote]</p>\n<p>The only flight with NA (not in history flights) is&nbsp;303137309.</p>\n<p>Transform date to float:</p>\n<p>http://stat.ethz.ch/R-manual/R-devel/library/base/html/difftime.html</p>\n<p>&nbsp;</p>\n<p><span style=\"line-height: 1.4\">About the rest: I don't know.</span></p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30099,
      "author_name": "tanstaafl",
      "author_url": "",
      "post_date": "09/03/2013 21:15:34",
      "content": "<p>Ah thanks for the time diff thing, I'll give it a try.</p>\n<p>Are you sure this method is what they were using to create the testFlightsRev3.csv file?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30444,
      "author_name": "id118392",
      "author_url": "",
      "post_date": "09/07/2013 19:13:29",
      "content": "<p>It seems that early arrival results in negative delay and negative cost which is subtracted from the fuel cost. I guess it's not intended behavior.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30698,
      "author_name": "judicaelbedouet1",
      "author_url": "",
      "post_date": "09/10/2013 22:51:42",
      "content": "<p>The simulator cannot be run by people using a comma for the decimal mark and not a dot. The simulator fails when trying to parse the CSV files. The quick&amp;dirty solution consists in changing the lang of the system but it affects all programs. I tried to set the LANG environment variable just before running the executable but without success.</p>\n<p>So, I modified the code in Program.fs to set the culture to en_US. Unfortunately, with .NET 4.0, there is no easy way to set the culture for the whole application. The culture must be set for each thread (in the function loadMaps before loading flights and costs, airports and weather and in the main function before loading dates). It must also be done for the Intruction Parser.</p>\n<p>Below is what I am doing to set the culture for each thread.</p>\n<p>Thread.CurrentThread.CurrentCulture &lt;- (CultureInfo.CreateSpecificCulture &quot;en-US&quot;)</p>\n<p>Once solved, it works well even under Snow Leopard with mono 3.2.1 (.NET 4.0).</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30797,
      "author_name": "ragingphilip",
      "author_url": "",
      "post_date": "09/12/2013 19:15:38",
      "content": "<p>Has anyone had success running the simulator on a Mac?</p>\n<p>&nbsp;</p>\n<p>Installed mono, tried to run the simulator, got the following error:</p>\n<p>Missing method System.Numerics.BigInteger::Parse(string,IFormatProvider) in assembly /Library/Frameworks/Mono.framework/Versions/2.10.11/lib/mono/gac/System.Numerics/4.0.0.0__b77a5c561934e089/System.Numerics.dll, referenced in assembly /Users/.../Desktop/FlightQuest/FlightQuestSimulator-Rev3/FlightQuest Simulator Executable/Newtonsoft.Json.dll</p>\n<p>&nbsp;</p>\n<p>I imagine I'm missing some crucial package or other part of the .NET platform.</p>\n<p>&nbsp;</p>\n<p>Appreciate any help.</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30798,
      "author_name": "timhardin",
      "author_url": "",
      "post_date": "09/12/2013 19:24:58",
      "content": "<p>Hey Philip, I got it to work in Linux, and I used the dll from Json.NET 4.0 Release 8 (http://json.codeplex.com/releases/view/82120) to fix that error.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30799,
      "author_name": "sebyml",
      "author_url": "",
      "post_date": "09/12/2013 19:25:27",
      "content": "<p>I got the same error as you initially. Then I decided to install the latest mono version(3.2.1) from http://www.go-mono.com/mono-downloads/download.html.</p>\n<p>The simulator works fine since.</p>\n<p>Uninstall your current version and install the 3.2.1 version.</p>\n<p>Good luck.</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30802,
      "author_name": "ragingphilip",
      "author_url": "",
      "post_date": "09/12/2013 19:58:30",
      "content": "<p>Thanks - switching to the latest version worked like a charm. &nbsp;Easier than expected.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30831,
      "author_name": "edwardhe0",
      "author_url": "",
      "post_date": "09/13/2013 04:28:39",
      "content": "<p>Hello Ben/Nick:</p>\n<p>I'm new to this contest and I was browsing the sourcecode of the simulator. It appears to me that when it simulates the route of a flight, it doesn't check the routes of other flights to detect collision. Does this mean the agent can assume the entire airspace is available? If yes, will the further version of simulator add this collision detection mechanism?</p>\n<p>&nbsp;</p>\n<p>Thanks!</p>\n<p>&nbsp;</p>\n<p>Edward</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30868,
      "author_name": "nicksardo",
      "author_url": "",
      "post_date": "09/13/2013 17:26:10",
      "content": "<p>[quote=Edward He;30831]</p>\n<p>&nbsp;It appears to me that when it simulates the route of a flight, it doesn't check the routes of other flights to detect collision. Does this mean the agent can assume the entire airspace is available? If yes, will the further version of simulator add this collision detection mechanism?</p>\n<p>[/quote]</p>\n<p>As Ben <a href=\"https://www.gequest.com/c/flight2/forums/t/5530/simulator-release/29406#post29406\">mentioned </a>before, static restricted air space is a possibility for a future version.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30910,
      "author_name": "nassimkhaled",
      "author_url": "",
      "post_date": "09/14/2013 15:28:53",
      "content": "<p>Hello everyone</p>\n<p>We just joined the quest and our first bump is getting the simulator to work(windows):</p>\n<p>1. The Version 4 of the simulator was looking for many actualLandings, actualTakeoffs and groundConditions csv files for different dates ... Those files<br>don't even exist in any of the folders provided in the Data download section.</p>\n<p>2. The simulator is asking for a route file name from C:/Temporary/FlightQuest. We couldn't find this file.<br>By looking at the forum Q&amp;A this should be an easy one for the gurus who already submitted their initial quests</p>\n<p>We have attached a screenshot for the problem.<img alt></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30914,
      "author_name": "glazed",
      "author_url": "",
      "post_date": "09/14/2013 18:59:29",
      "content": "<p>[quote=Nassim Khaled;30910]</p>\n<p>Hello everyone</p>\n<p>We just joined the quest and our first bump is getting the simulator to work(windows):</p>\n<p>1. The Version 4 of the simulator was looking for many actualLandings, actualTakeoffs and groundConditions csv files for different dates ... Those files<br>don't even exist in any of the folders provided in the Data download section.</p>\n<p>2. The simulator is asking for a route file name from C:/Temporary/FlightQuest. We couldn't find this file.<br>By looking at the forum Q&amp;A this should be an easy one for the gurus who already submitted their initial quest</p>\n<p>[/quote]</p>\n<p>&nbsp;</p>\n<p>Hello.</p>\n<p>Note that not everyone on the leaderboard has the simulator working.</p>\n<p>I think your next step is to edit your &quot;runSimulation.exe.config&quot; file.</p>\n<p>&quot;basePath&quot; should hold your main directory for the files you want it to work on.</p>\n<p>The other directories are relative to that basePath.</p>\n<p>You might find it useful to compare the config files in simulators Rev3 and Rev4.</p>\n<p>The gurus can speak for themselves, but I find this a messy process.</p>\n<p>Good luck.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30926,
      "author_name": "nassimkhaled",
      "author_url": "",
      "post_date": "09/15/2013 00:49:36",
      "content": "<p>Thank you for the response, glazed. Our question is not about the location of the &quot;basepath&quot; though. We don't know where to get the following files:&nbsp;actualLandings, actualTakeoffs and groundConditions csv files for different dates. Can you point us where to download these files or if we have to create them (and if yes, what is the process). Anyways thanks for the help.&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30933,
      "author_name": "gabrieleseppi",
      "author_url": "",
      "post_date": "09/15/2013 08:24:38",
      "content": "<p>As of yesterday avast quarantines RunSimulator.exe under Windows considering it a potential threat. I have already notified avast about the issue, but I would suggest the authors to investigate the source of the problem, because clearly the simulator behaves in a way that is considered suspicious.</p>\n<p>For those who have the same problem, open avast, add an exception on the checks for the executable path, restore it from the bin and run as usual.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30939,
      "author_name": "glazed",
      "author_url": "",
      "post_date": "09/15/2013 13:39:17",
      "content": "<p>[quote=Nassim Khaled;30926]</p>\n<p>Thank you for the response, glazed. Our question is not about the location of the &quot;basepath&quot; though. We don't know where to get the following files:&nbsp;actualLandings, actualTakeoffs and groundConditions csv files for different dates. Can you point us where to download these files or if we have to create them (and if yes, what is the process). Anyways thanks for the help.&nbsp;</p>\n<p>[/quote]</p>\n<p>OneDaySimulatorFiles-Rev3 has all the files you need to run the simulator, but it's for different data than the leaderboard is using. Still a good place to start, though. Running the simulator with the leaderboard data is discussed on the &quot;Simulator Release&quot; thread, specifically posts #17 and #21.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 30942,
      "author_name": "robert14",
      "author_url": "",
      "post_date": "09/15/2013 16:59:24",
      "content": "<p>I am trying to run the simulator for the first time is there any user manual</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31046,
      "author_name": "davidwilson0",
      "author_url": "",
      "post_date": "09/17/2013 13:07:42",
      "content": "<p>Should the time steps in the log be in equal increments?.</p>\n<p>Compare the 50th log step of my route 7 &amp; 8 attempts for 301817127 respectively: 1.236 &amp; 1.239. As I write this, it is occuring to me that the difference is due to the last step to a particular waypoint, but can you confirm?</p>\n<p>FlightId,Latitude,Longitude,Easting,Northing,ElapsedTime,AirSpeed,GroundSpeed,Altitude,FuelConsumed,Weight,Status</p>\n<p>301817127,28.7245937106677,-85.9892340120488,475.115628416402,239.588210451629,<strong>1.236</strong>,450.00,436.46,38812.17,6339.02,155048.98,Flying</p>\n<p>301817127,29.2316793768564,-85.8612398941499,479.798468261818,270.491846024349,<strong>1.239</strong>,450.00,439.67,38814.20,6352.68,155035.32,Flying</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31060,
      "author_name": "arcanaimperii",
      "author_url": "",
      "post_date": "09/17/2013 20:27:42",
      "content": "<p>[quote=Nassim Khaled;30910]</p>\n<p>Hello everyone</p>\n<p>We just joined the quest and our first bump is getting the simulator to work(windows):</p>\n<p>1. The Version 4 of the simulator was looking for many actualLandings, actualTakeoffs and groundConditions csv files for different dates ... Those files<br>don't even exist in any of the folders provided in the Data download section.</p>\n<p>2. The simulator is asking for a route file name from C:/Temporary/FlightQuest. We couldn't find this file.<br>By looking at the forum Q&amp;A this should be an easy one for the gurus who already submitted their initial quests</p>\n<p>We have attached a screenshot for the problem.<img alt></p>\n<p>[/quote]</p>\n<p>&nbsp;</p>\n<p>Hello all,</p>\n<p>I am also having some questions regarding the actualTakeoffs and actualLanding files. Could someone explain why are the times given as a float number? Are they measured relative to a specific reference timestamp and in which unit (hours, minutes etc)? </p>\n<p>I would also like to ask if someone could clarify the format of the partial weather files </p>\n<p>Thanks for your help.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31061,
      "author_name": "alzmcr",
      "author_url": "",
      "post_date": "09/17/2013 20:59:25",
      "content": "<p>[quote=Arcana Imperii;31060]</p>\n<p>[quote=Nassim Khaled;30910]</p>\n<p>Hello everyone</p>\n<p>We just joined the quest and our first bump is getting the simulator to work(windows):</p>\n<p>1. The Version 4 of the simulator was looking for many actualLandings, actualTakeoffs and groundConditions csv files for different dates ... Those files<br>don't even exist in any of the folders provided in the Data download section.</p>\n<p>2. The simulator is asking for a route file name from C:/Temporary/FlightQuest. We couldn't find this file.<br>By looking at the forum Q&amp;A this should be an easy one for the gurus who already submitted their initial quests</p>\n<p>We have attached a screenshot for the problem.<img alt></p>\n<p>[/quote]</p>\n<p>&nbsp;</p>\n<p>Hello all,</p>\n<p>I am also having some questions regarding the actualTakeoffs and actualLanding files. Could someone explain why are the times given as a float number? Are they measured relative to a specific reference timestamp and in which unit (hours, minutes etc)?</p>\n<p>I would also like to ask if someone could clarify the format of the partial weather files</p>\n<p>Thanks for your help.</p>\n<p>[/quote]</p>\n<p>about the time, it's not officially expained, but I'm guessing it's the time difference to the day's cutoff time, in hours.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31123,
      "author_name": "ragingphilip",
      "author_url": "",
      "post_date": "09/18/2013 19:27:30",
      "content": "",
      "votes": null,
      "replies": []
    },
    {
      "id": 31134,
      "author_name": "johnblue",
      "author_url": "",
      "post_date": "09/18/2013 20:43:06",
      "content": "<p>Humm. Is the simulator an actual download to a local computer? Or is it in the cloud somewhere and is only controlled through data submissions?&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31135,
      "author_name": "johnblue",
      "author_url": "",
      "post_date": "09/18/2013 20:47:48",
      "content": "<p>[quote=John Blue;31134]</p>\n<p>Humm. Is the simulator an actual download to a local computer? Or is it in the cloud somewhere and is only controlled through data submissions?&nbsp;</p>\n<p>[/quote]</p>\n<p>&nbsp;</p>\n<p>Answered my own question. The data page has&nbsp;FlightQuest Simulator-Rev4.&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31143,
      "author_name": "alexeygusakov",
      "author_url": "",
      "post_date": "09/18/2013 23:39:03",
      "content": "<p>Hi,</p>\n<p>Could you please fix a bug in the evaluation system?</p>\n<p>It returns error message now:</p>\n<p>Wed, 18 Sep 2013 23:33:57<br>X.<br>Edit description submission.csv<br>&#9650; Submission info/warnings<br>Evaluation Exception: One or more errors occurred.<br>0.00000</p>\n<p>BTW, zero average cost is OK for us, so feel free to leave it as is and move us up in standings :)</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31153,
      "author_name": "nicksardo",
      "author_url": "",
      "post_date": "09/19/2013 05:49:06",
      "content": "<p>[quote=Alexey Gusakov;31143]</p>\n<p>Evaluation Exception: One or more errors occurred.</p>\n<p>[/quote]</p>\n<p>Each flight is limited to a maximum of 200 way-points. We'll work on getting that error message to flow out to competitors instead of the vague 'one or more errors occurred'.&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31311,
      "author_name": "anlthms",
      "author_url": "",
      "post_date": "09/21/2013 17:18:55",
      "content": "<p>I am trying to get the simulator to run on Ubuntu. The simulator hangs while loading the flights*.csv files. Each time, it gets stuck while reading a different file. No messages printed to the output once it hangs. The weather data is loaded fine. Has anyone else seen this?</p>\n<p>I tried two different instances on AWS with the same results. I have been running the simulator on a Mac with no issues. Ubuntu version 12.04.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31314,
      "author_name": "gabrieleseppi",
      "author_url": "",
      "post_date": "09/21/2013 18:48:57",
      "content": "<p>I have seen a weird behavior of the simulator: 2 solutions identical in the routes can produce different results if the order of the flights is different. Adding column headers can change the result as well.</p>\n<p>The differences are not huge (yet not even so small; +/-0.32 is the greatest I have experienced so far) and it happens only with certain solutions (I haven't found a pattern yet, though), but I'm wondering if there is any flaw in the scoring system at this point...</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31320,
      "author_name": "chefele",
      "author_url": "",
      "post_date": "09/21/2013 22:31:10",
      "content": "<p>[quote=Anil Thomas;31311] I&nbsp;am trying to get the simulator to run on ...Ubuntu version 12.04..[/quote]</p>\n<p>I was able to get the simulator running on Ubuntu 12.04 on my PC (not AWS), though I haven't hit the issue you described. Like others, I did upgrade my version of mono, &nbsp;just for good measure. &nbsp;(The default for Ubuntu 12.04 is mono 2.10, and the simulator README says the simulator runs under mono 3.3).&nbsp;&nbsp;I'm not sure if an old version of mono could cause some file reads to stall, though.&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31321,
      "author_name": "xaviergrehant",
      "author_url": "",
      "post_date": "09/21/2013 23:40:14",
      "content": "<p>[quote=Tim Hardin;30798]Hey Philip, I got it to work in Linux, and I used the dll from Json.NET 4.0 Release 8 (http://json.codeplex.com/releases/view/82120) to fix that error.[/quote]</p>\n<p>Thanks! Worked for me.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31337,
      "author_name": "gabrieleseppi",
      "author_url": "",
      "post_date": "09/22/2013 15:48:40",
      "content": "<p>[quote=Gabriele Seppi;31314]</p>\n<p>I have seen a weird behavior of the simulator: 2 solutions identical in the routes can produce different results if the order of the flights is different. Adding column headers can change the result as well.</p>\n<p>The differences are not huge (yet not even so small; +/-0.32 is the greatest I have experienced so far) and it happens only with certain solutions (I haven't found a pattern yet, though), but I'm wondering if there is any flaw in the scoring system at this point...</p>\n<p>[/quote]</p>\n<p>Now I'm getting worse results and even more worries: I simply swapped the first 2 flights of my solution and added the header, and the score improved by 1.41 points for a SINGLE DAY of the leaderboard. Now, multiply that for the 7 days the leaderboard accounts for and I could theoretically improve by 9.87 points (assuming there are no other hidden tricks): that's definitely no little figure. Is anyone else experiencing this problem?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31340,
      "author_name": "ragingphilip",
      "author_url": "",
      "post_date": "09/22/2013 16:04:40",
      "content": "<p>when you say header you mean the first line of the csv file? &nbsp;if you leave that out it interprets the first line of your file as the header, and so the first leg of your first flight disappears... possibly leading to a crashed flight. &nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31343,
      "author_name": "johnsonav",
      "author_url": "",
      "post_date": "09/22/2013 16:30:18",
      "content": "<p>I haven't been able to replicate this using the provided simulator. I did a complete shuffling of my routes, and got identical results (twice).</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31345,
      "author_name": "gabrieleseppi",
      "author_url": "",
      "post_date": "09/22/2013 18:08:56",
      "content": "<p>[quote=ragingphilip;31340]</p>\n<p>when you say header you mean the first line of the csv file? if you leave that out it interprets the first line of your file as the header, and so the first leg of your first flight disappears... possibly leading to a crashed flight.</p>\n<p>[/quote]</p>\n<p>That's exactly what I thought in the first place, but according to the submission page this should not be a problem and, indeed, it doesn't happen with all the files I produce.</p>\n<p>[quote=johnsonav;31343]</p>\n<p>I haven't been able to replicate this using the provided simulator. I did a complete shuffling of my routes, and got identical results (twice).</p>\n<p>[/quote]</p>\n<p>To be honest, that's the kind of behavior I see most of the time, but not always. That's why I'm worried, I can't find a plausible reason for this behavior.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31346,
      "author_name": "ragingphilip",
      "author_url": "",
      "post_date": "09/22/2013 18:25:02",
      "content": "<p>when i run the simulator locally on the one day (July 4th) files and do vs. do not put in the header line in the submitted flight legs .csv file (onedaysamplesubmission), the simulator seems to clearly skip the first line of my submission file when i don't include the header and i (in that case) lost a flight.</p>\n<p>&nbsp;</p>\n<p>when i made the fix and submitted to the leaderboard with header i fixed a couple of other things too, i got a better score but i can't be sure the leaderboard has the same issue.</p>\n<p>&nbsp;</p>\n<p>it would make sense, though, relative to your other issues - if you left out the header and ran flights with order shuffled such that the first line was different each run, it would drop a different flight leg each time and possibly lead to somewhat different scores.</p>\n<p>&nbsp;</p>\n<p>on the submission instructions it seems to indicate a header with column names is needed - did you see elsewhere that it isn't?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31347,
      "author_name": "gabrieleseppi",
      "author_url": "",
      "post_date": "09/22/2013 18:59:05",
      "content": "<p>Maybe I'm making confusion with flight quest 1, I don't know.</p>\n<p>Anyway, I'll try to always add the header just to be sure everything is in order. Thank you for your help =)</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 31348,
      "author_name": "nicksardo",
      "author_url": "",
      "post_date": "09/22/2013 19:01:11",
      "content": "<p>[quote=Gabriele Seppi;31345]</p>\n<p>[quote=ragingphilip;31340]</p>\n<p>when you say header you mean the first line of the csv file? if you leave that out it interprets the first line of your file as the header, and so the first leg of your first flight disappears... possibly leading to a crashed flight.</p>\n<p>[/quote]</p>\n<p>That's exactly what I thought in the first place, but according to the submission page this should not be a problem and, indeed, it doesn't happen with all the files I produce.</p>\n<p>[/quote]<br>The header is absolutely required. As you can see in InstructionParser.fs, the first line of the parse function is<br>let body = parseCellsSkipHeader text</p>\n<p>Ragingphilip correctly states that the first waypoint of your first flight will be skipped, thereby affecting your cost.</p>\n<p>&nbsp;</p>\n<p>[quote=Gabriele Seppi;31345]</p>\n<p>[quote=johnsonav;31343]</p>\n<p>I haven't been able to replicate this using the provided simulator. I did a complete shuffling of my routes, and got identical results (twice).</p>\n<p>[/quote]</p>\n<p>To be honest, that's the kind of behavior I see most of the time, but not always. That's why I'm worried, I can't find a plausible reason for this behavior.</p>\n<p>[/quote]</p>\n<p>Rounding error while summing the costs is <a href=\"http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html#1070\">plausible</a>; the final score could change depending on the order of the flight costs (... the flights themselves). &nbsp;Unless we see an extremely tight race near the end of the competition, this is not worth looking at any further.</p>\n<p>&nbsp;</p>\n<p>[quote=Gabriele Seppi;31345]</p>\n<p>the score improved by 1.41 points for a SINGLE DAY of the leaderboard. Now, multiply that for the 7 days the leaderboard accounts for and I could theoretically improve by 9.87 points</p>\n<p>[/quote]</p>\n<p>The leaderboard score is the weighted average of the daily scores. &nbsp;</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 32170,
      "author_name": "sandros",
      "author_url": "",
      "post_date": "10/09/2013 11:41:17",
      "content": "<p>Waiting for the new data release I am going through the simulator-code atm, (which I should have done earlier, since I see plenty of useless stuff I coded like different cruising speeds and heights depending on which airplane type it is).</p>\n<p>Anyway, in Movement.fs are you sure that the angles in:</p>\n<p>let calculateGroundVelocity are right?</p>\n<p>More in detail, I think there is an error in defining g, assuming that Groundspeed in the next line is computed via the sine-formula. From just drawing the triangle:</p>\n<p>1)the angle oppsed to airspeed is (PI - aDirection) and sin(PI - aDirection)==sin(aDirection).</p>\n<p>2)the angle opposed to the grounddirection is gMine= aDirection-w.</p>\n<p>So the sine formula gives</p>\n<p>GroundSpeed/sin(aDirection-w)=airspeed/sin(PI-aDirection)</p>\n<p>Rearranging and using sin(PI-th)=sin(th) twice:</p>\n<p>Groundspeed=airSpeed* sin (PI-aDirection <strong>+ </strong>w)/sin(aDirection)</p>\n<p>&nbsp;</p>\n<p>So if my triangle is not wrong, then g in the code should be:</p>\n<p>g = System.Math.PI - aDirection + w&nbsp;&nbsp;&nbsp; and not:</p>\n<p>g = System.Math.PI - aDirection - w</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 32237,
      "author_name": "benhamner",
      "author_url": "",
      "post_date": "10/11/2013 01:36:29",
      "content": "<p>[quote=Sandro Scodeller (Sigma);32170]</p>\n<p>Waiting for the new data release I am going through the simulator-code atm, (which I should have done earlier, since I see plenty of useless stuff I coded like different cruising speeds and heights depending on which airplane type it is).</p>\n<p>Anyway, in Movement.fs are you sure that the angles in:</p>\n<p>let calculateGroundVelocity are right?</p>\n<p>More in detail, I think there is an error in defining g, assuming that Groundspeed in the next line is computed via the sine-formula. From just drawing the triangle:</p>\n<p>1)the angle oppsed to airspeed is (PI - aDirection) and sin(PI - aDirection)==sin(aDirection).</p>\n<p>2)the angle opposed to the grounddirection is gMine= aDirection-w.</p>\n<p>So the sine formula gives</p>\n<p>GroundSpeed/sin(aDirection-w)=airspeed/sin(PI-aDirection)</p>\n<p>Rearranging and using sin(PI-th)=sin(th) twice:</p>\n<p>Groundspeed=airSpeed* sin (PI-aDirection <strong>+ </strong>w)/sin(aDirection)</p>\n<p>&nbsp;</p>\n<p>So if my triangle is not wrong, then g in the code should be:</p>\n<p>g = System.Math.PI - aDirection + w&nbsp;&nbsp;&nbsp; and not:</p>\n<p>g = System.Math.PI - aDirection - w</p>\n<p>[/quote]Sandro, thanks for looking into this.</p>\n<p>The unit test cases that this function passes are as follows:</p>\n<pre>module SpatialTests\n\nopen FlightQuest.Units\nopen FlightQuest.Movement\n\nopen Testing\nopen NUnit.Framework\nopen FsUnit\n\n[]\ntype SpatialTests() =\n    let Precision = 0.0001\n\n    []\n    member test.``Calculated Ground Speed``() =\n        let checkCalculatedSpeed (airspeed, windX:float, windY:float, groundDirection:float, expededGroundSpeed:float) =\n            let gSpeed = calculateGroundVelocity (airspeed*1.0) groundDirection (windX * 1.0, windY * 1.0)\n            gSpeed |&gt; should (equalWithin 1.0) expededGroundSpeed\n\n        let entries =\n            [(500.0,0.0,300.0,0.0,400.0);\n            (500.0,100.0,0.0,0.0,600.0);\n            (500.0,0.0,0.0,0.0,500.0);\n            (500.00,300.0,0.0,1.570796327,400.0);\n            (0.0,0.0,0.0,0.0,0.0);\n            (400.0,-100.0,0.0,0.0,300.0);\n            (230.0,100.0,0.0,-0.6681002,300.0);\n            (255.3256439,87.75825619,47.94255386,-0.093823323,332.0);\n            (455.0,-85.33,-135.32,0.0,349.0816684);\n            (433.0,0.0,0.0,1.3321,433.0);\n            ]\n        List.iter checkCalculatedSpeed entries</pre>\n<p>The change you proposed causes the (230.0, 100.0, 0.0, -0.6681002, 300.0) test to fail (and possibly subsequent ones as well). If you still believe there's an error in the math, could you make a case for the failing unit test(s) being erroneous as well and possibly propose new unit tests?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 32248,
      "author_name": "sandros",
      "author_url": "",
      "post_date": "10/11/2013 08:38:45",
      "content": "<p>Ok, I found where I was wrong: I assumed that the directions are wrt to the north while actually the atan2 function in spatial.fs:</p>\n<p>let calculateRadians (v:Vector) = &nbsp;&nbsp;&nbsp; System.Math.Atan2(float(snd v), float(fst v))</p>\n<p>returns the angle from the x-axis.</p>\n<p>E.g.: (u,v)=(100,0) corresponds to a windir=0, while I assumed it would be +90deg</p>\n<p>Re-drawing my triangle with this in mind, I completely agree with the formula (and your test anyway showed it to be right:-)).</p>\n<p>Sorry, for this misunderstanding.</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "29405": "",
    "29422": "",
    "29443": "",
    "29449": "",
    "29455": "",
    "29473": "",
    "29483": "",
    "29490": "",
    "29644": "",
    "29716": "",
    "29733": "",
    "29740": "",
    "29747": "",
    "29755": "",
    "29756": "",
    "29768": "",
    "29773": "",
    "29819": "",
    "29846": "",
    "29851": "",
    "29889": "",
    "29892": "",
    "29893": "",
    "29894": "",
    "29895": "",
    "29964": "",
    "29965": "",
    "29966": "",
    "29996": "",
    "30087": "",
    "30091": "",
    "30096": "",
    "30099": "",
    "30444": "",
    "30698": "",
    "30797": "",
    "30798": "",
    "30799": "",
    "30802": "",
    "30831": "",
    "30868": "",
    "30910": "",
    "30914": "",
    "30926": "",
    "30933": "",
    "30939": "",
    "30942": "",
    "31046": "",
    "31060": "",
    "31061": "",
    "31123": "",
    "31134": "",
    "31135": "",
    "31143": "",
    "31153": "",
    "31311": "",
    "31314": "",
    "31320": "",
    "31321": "",
    "31337": "",
    "31340": "",
    "31343": "",
    "31345": "",
    "31346": "",
    "31347": "",
    "31348": "",
    "32170": "",
    "32237": "",
    "32248": ""
  },
  "source": "meta"
}