A aviation & planes forum. AviationBanter

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » AviationBanter forum » rec.aviation newsgroups » Instrument Flight Rules
Site Map Home Register Authors List Search Today's Posts Mark Forums Read Web Partners

AVIATIONTOOLBOX: automatic route selection



 
 
Thread Tools Display Modes
  #1  
Old October 14th 04, 01:08 AM
Kyler Laird
external usenet poster
 
Posts: n/a
Default AVIATIONTOOLBOX: automatic route selection

I've been asked to help write some code to assist in flight planning
by choosing routes. I have just enough Computer Science and IFR
background to make me dangerous. I said that I'd donate my effort
if it results in Free code the community can use. So we're making
this a community project.

Although this sounds like a fairly simple task, performed by DUAT(S)
and IFR students daily, there are a lot of complexities and I suspect
that there are lots of opportunities for the community to optimize
the process. Here's are some of my thoughts to kick around.

All the data we need should be in the FAA ATA-100 collection.
http://aviationtoolbox.org/old/ATA-100/
Flights will mostly be along airways.
http://aviationtoolbox.org/old/ATA-1...ats/Awy_rf.txt
Preferred routes should be used when possible.
http://aviationtoolbox.org/old/ATA-1...ats/Pfr_rf.txt
Transitions between airports and airways will be handled with
standard arrival and departure procedures when possible.
http://aviationtoolbox.org/old/ATA-1.../Stardp_rf.txt

Here's a simple-minded algorithm with lots of holes to fill.

Provide start and end airports and altitude
restrictions.

Get started with a standard departure or create one.

Use preferred route or create one using least cost
(mileage) routing. There are 20,757 airways.

Finish using a standard approach or create one.

So...suggestions?

Thank you.

--kyler
  #2  
Old October 14th 04, 01:24 AM
Paul Tomblin
external usenet poster
 
Posts: n/a
Default

In a previous article, Kyler Laird said:
Here's a simple-minded algorithm with lots of holes to fill.

Provide start and end airports and altitude
restrictions.

Get started with a standard departure or create one.

Use preferred route or create one using least cost
(mileage) routing. There are 20,757 airways.

Finish using a standard approach or create one.

So...suggestions?


I started playing around with this idea years ago before when I was going
to write an on-line flight planner. (That was an idea I started work on
and then abandoned, and then a year or two later when I discovered CoPilot
I decided that this was a better use of all the FAA data I had collected.)

What I thought I'd do for the first cut at the algorithm was:
Find every VOR that's within "X" degrees of a straight line between
the start and end

At that VOR

- Find every VOR that's within "X" degrees of a straight line between
that VOR and the end point.

- Continue iterating until there are no VORs between you and the end
point.

When you have all your candidate routes, throw away any that don't
have airways between the VOR. Maybe make an exception if the distance is
less than "Y". Sort from shortest to longest.

Obviously that needs some work to handle DPs and STARs and preferred
routes.


--
Paul Tomblin http://xcski.com/blogs/pt/
Today Has Been Two Of Those Days.
-- Mike Andrews
  #3  
Old October 14th 04, 01:59 AM
Matt Whiting
external usenet poster
 
Posts: n/a
Default

Paul Tomblin wrote:

In a previous article, Kyler Laird said:

Here's a simple-minded algorithm with lots of holes to fill.

Provide start and end airports and altitude
restrictions.

Get started with a standard departure or create one.

Use preferred route or create one using least cost
(mileage) routing. There are 20,757 airways.

Finish using a standard approach or create one.

So...suggestions?



I started playing around with this idea years ago before when I was going
to write an on-line flight planner. (That was an idea I started work on
and then abandoned, and then a year or two later when I discovered CoPilot
I decided that this was a better use of all the FAA data I had collected.)

What I thought I'd do for the first cut at the algorithm was:
Find every VOR that's within "X" degrees of a straight line between
the start and end

At that VOR

- Find every VOR that's within "X" degrees of a straight line between
that VOR and the end point.

- Continue iterating until there are no VORs between you and the end
point.

When you have all your candidate routes, throw away any that don't
have airways between the VOR. Maybe make an exception if the distance is
less than "Y". Sort from shortest to longest.

Obviously that needs some work to handle DPs and STARs and preferred
routes.


I'd think some of the approaches taught in any good operations research
course would be much better. It's been 20+ years since I took my last
OR course, but I'd look into a good OR text before writing code. There
a much better methods than a brute force, exhaustive search approach.


Matt

  #4  
Old October 14th 04, 02:51 AM
Mitty
external usenet poster
 
Posts: n/a
Default

All the data we need should be in the FAA ATA-100 collection.
http://aviationtoolbox.org/old/ATA-100/
Flights will mostly be along airways.
http://aviationtoolbox.org/old/ATA-1...ats/Awy_rf.txt
Preferred routes should be used when possible.
http://aviationtoolbox.org/old/ATA-1...ats/Pfr_rf.txt
Transitions between airports and airways will be handled with
standard arrival and departure procedures when possible.
http://aviationtoolbox.org/old/ATA-1.../Stardp_rf.txt


Excuse my ignorance, but what is http://aviationtoolbox.org ?

Lots of good data there but not so much as a readme to explain who/why. I
recently bought a copy of the FAA database disc from ATA-100 in order to play
with my own flight planning application -- now it appears that I could have
downloaded it from http://aviationtoolbox.org. Cool.
  #5  
Old October 14th 04, 03:14 AM
Teacherjh
external usenet poster
 
Posts: n/a
Default


Preferred routes should be used when possible.

So...suggestions?


Find out what the =real= preferred routes are. They are not published. They
are in the hands of the approach controllers. On the East Coast (where I fly)
the preferred routes are almost never given (to me), but rather, other routes
which seem to be standard are.

Jose


--
(for Email, make the obvious changes in my address)
  #6  
Old October 14th 04, 03:17 AM
Paul Tomblin
external usenet poster
 
Posts: n/a
Default

In a previous article, said:
Lots of good data there but not so much as a readme to explain who/why. I
recently bought a copy of the FAA database disc from ATA-100 in order to play
with my own flight planning application -- now it appears that I could have
downloaded it from
http://aviationtoolbox.org. Cool.

Yeah, it's pretty sucky that the FAA wants $36 to make a CD (and ship it
FedEx), when there is so little data and so few people who care that it's
easy to share it out over a measly cable modem upload.

I have the CD subscription, and I make it available to a number of people
who download it from me every 56 days when I get the new one.

--
Paul Tomblin http://xcski.com/blogs/pt/
"You are all but subwidgets in a composite container whose logical tab
group I have registered the traversal order of. I can merely point at you
and your popup dialogue will be unmapped unless XmNautoUnmanage is False."
  #7  
Old October 14th 04, 04:44 AM
Ben Jackson
external usenet poster
 
Posts: n/a
Default

In article ,
Kyler Laird wrote:
Flights will mostly be along airways.
http://aviationtoolbox.org/old/ATA-1...ats/Awy_rf.txt


I keep meaning to apply Dijkstra's algorithm to airway routing.
The key will be choosing edge costs.

Preferred routes should be used when possible.
Transitions between airports and airways will be handled with
standard arrival and departure procedures when possible.


You can do this all with appropriate costs assigned to the routes and
transitions that you want. The tricky part is weighting thoses costs
properly against whatever you consider to be overriding factors (eg
forecast winds, icing, aircraft performance, distance, available nav
equipment, ...)

--
Ben Jackson

http://www.ben.com/
  #9  
Old October 14th 04, 09:47 AM
Julian Scarfe
external usenet poster
 
Posts: n/a
Default

"Ben Jackson" wrote in message
news:tCmbd.121529$He1.75934@attbi_s01...

I keep meaning to apply Dijkstra's algorithm to airway routing.
The key will be choosing edge costs.


I tried something similar for Western Europe. Thinking aloud... My
algorithm was basically:

a) load the entire airway network as a graph using distances as costs
b) link airports to the network using SIDs and STARs (important in Europe,
probably less so in US)
c) add preferred routes using the a cost of
start_to_end_great_circle_distance * factor, where factor is just less than
1.
d) run Dijkstra's algorithm (I was doing this in Perl so I just used the
Graph module from CPAN) for a departure airport
e) store the least cost routing from the departure airport to everywhere
else in a database

Repeat for other departure airports of interest. Processing time for one
departure airport for my network was about 30s on a fairly typical desktop
machine. YMMV, literally. ;-)

Provided your airway network only changes every 28 days (can't speak for the
US but that's what happens in the rest of the world for aeronautical data),
you've then got "static" routes valid for a month which means that to run
this for 100 airports or so, it should be a case of "do the calculation once
and store the results".

You can do this all with appropriate costs assigned to the routes and
transitions that you want. The tricky part is weighting thoses costs
properly against whatever you consider to be overriding factors (eg
forecast winds, icing, aircraft performance, distance, available nav
equipment, ...)


Adding dynamic issues is not only difficult from a "what cost factor do I
use?" point of view, but actually affects the entire strategy. Calculating
weighted factors based on winds means that you have to do a calculation for
the entire network (you may be able to preload the network, but you still
have to run a weighting factor calc for each edge) which is likely to be
very time consuming. You then have to run Dijkstra's algorithm to get the
least-cost routes. But now we're doing that for *every* flight, which means
that we wait for both steps of the processing (edge costs + Dijkstra)
instead of doing a database lookup on stuff that's run once a month.

I wondered about a middle ground. If you could store the 10 or even 100
least-cost routes for a particular airport-pair, then running those routes
for a single flight would be relatively quick (either individually or doing
Dijkstra on the much reduced network). But Dijkstra doesn't produce the
runners up, only the winner, so how do we find the set of 10 or 100 routes
to consider? Do you knock out legs and run the algorithm again? If so,
which ones?

Reducing the network to waypoints within x miles of the great circle for a
particular flight (a little like Paul Tomblin's suggestion) is one
possibility, but, at least in Europe, x would have to be pretty big. On a 3
hour trip to Germany from my home base in the UK, I basically have the
choice between an initial route that goes east over Holland, or south and
then south east over Belgium. For a 450 mile route, I have to consider a
band of possibilities at least 150 miles wide.

Anyway, just sharing some thinking.

Julian Scarfe


  #10  
Old October 14th 04, 03:08 PM
Kyler Laird
external usenet poster
 
Posts: n/a
Default

"Julian Scarfe" writes:

"Ben Jackson" wrote in message
news:tCmbd.121529$He1.75934@attbi_s01...

I keep meaning to apply Dijkstra's algorithm to airway routing.


That was my first thought...'course it's about all I remember about
network theory...

The key will be choosing edge costs.


What's the difficulty here? The airway file contains distances.
Are we not treating airways as the network edges?

I tried something similar for Western Europe. Thinking aloud... My
algorithm was basically:


a) load the entire airway network as a graph using distances as costs
b) link airports to the network using SIDs and STARs (important in Europe,
probably less so in US)
c) add preferred routes using the a cost of
start_to_end_great_circle_distance * factor, where factor is just less than
1.


Hmmmm...I like that. It would allow for lots of tweaking too.

d) run Dijkstra's algorithm (I was doing this in Perl so I just used the
Graph module from CPAN) for a departure airport
e) store the least cost routing from the departure airport to everywhere
else in a database


Repeat for other departure airports of interest. Processing time for one
departure airport for my network was about 30s on a fairly typical desktop
machine. YMMV, literally. ;-)


I wasn't planning to do a lot of precomputation. When we get into altitude
restrictions it just gets too complicated. The shortest path for me from
Indiana to California is going to be much different than for someone who is
going to stay below 8,000'. Besides altitude restrictions, I can imagine
wanting to specify avoidance of MOAs, long overwater segments, busy
airspace, etc.

Adding dynamic issues is not only difficult from a "what cost factor do I
use?" point of view, but actually affects the entire strategy. Calculating
weighted factors based on winds means that you have to do a calculation for
the entire network


Oh, yeah...winds too.

(you may be able to preload the network, but you still
have to run a weighting factor calc for each edge) which is likely to be
very time consuming. You then have to run Dijkstra's algorithm to get the
least-cost routes. But now we're doing that for *every* flight, which means
that we wait for both steps of the processing (edge costs + Dijkstra)
instead of doing a database lookup on stuff that's run once a month.


It's not clear to me that this is a terrible burden. A student
sitting in front of enroute charts can figure out reasonable solutions
so I assume I can program a computer to do the same in short order.

I think that learning to disregard edges that aren't of interest is
the key. This seems fairly simple at first but in mountainous regions
with low altitude restrictions it could get difficult because you might
need to go far away from a direct route.

Reducing the network to waypoints within x miles of the great circle for a
particular flight (a little like Paul Tomblin's suggestion) is one
possibility, but, at least in Europe, x would have to be pretty big. On a 3
hour trip to Germany from my home base in the UK, I basically have the
choice between an initial route that goes east over Holland, or south and
then south east over Belgium. For a 450 mile route, I have to consider a
band of possibilities at least 150 miles wide.


This doesn't sound so bad to me. I don't have a grasp on the power
required to solve it though.

Anyway, just sharing some thinking.


Indeed! I appreciate the thoughts!

--kyler
 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
IFR route BOS - IAD? Peter MacPherson Instrument Flight Rules 2 September 4th 04 05:46 AM
NAS and associated computer system Newps Instrument Flight Rules 8 August 12th 04 05:12 AM
filing IFR plan for VFR flight conditions Paul Safran Instrument Flight Rules 53 May 11th 04 03:07 AM
Route planning question Paul Tomblin Instrument Flight Rules 3 April 4th 04 02:40 PM
My route to the 3rd annual ParasolAirplanes Fly In Scott Home Built 1 July 18th 03 07:28 PM


All times are GMT +1. The time now is 07:01 AM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 AviationBanter.
The comments are property of their posters.