Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clip flights by altitude #92

Open
jsmailes opened this issue Jul 16, 2020 · 1 comment
Open

Clip flights by altitude #92

jsmailes opened this issue Jul 16, 2020 · 1 comment
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@jsmailes
Copy link

When given an Airspace, the intersect method in flight.py checks the airspace's geometry as well as its upper and lower bounds, but clip ignores the vertical bounds. To clip by vertical bounds I currently have to use query to access the underlying dataframe, but it would be cleaner if the built-in method could perform this clipping.

@xoolive xoolive added enhancement New feature or request help wanted Extra attention is needed labels Jul 16, 2020
@xoolive
Copy link
Owner

xoolive commented Jul 16, 2020

Thank you @jsmailes for your comment. Indeed, this feature is still not implemented.

Just some points to be careful about (why a simple .query() as you suggest is not enough in the general case -- although it may be is on your specific use case):

  • current implementation of .clip() actually clips in time between the first and last intersection timestamps. This means you can have geometrical reentries (which are not considered as such by ATC) when an aircraft flies close to a concavity of the airspace shape;

  • this means that if we consider altitudes, we have to keep in mind that we may want to keep the reentries as well (think phugoids at the border altitude, highly improbable with commercial aircraft, but you can find virtually all kind of corner cases within all available trajectory data);

  • some complex airspaces do not have the same shape at all flight levels. The current clip method applies to the biggest polygon enclosing all extruded polygons, which is actually a hard simplification.

Maybe the best way would be to consider the minimum and maximum timestamps of intersections for all extruded layers forming the airspace and clip between these two timestamps.

Help is welcome, for implementation and/or tests and/or documentation 😉

@xoolive xoolive added good first issue Good for newcomers and removed help wanted Extra attention is needed labels Dec 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants