CNN have no problem dealing with orientation. Just give it the data and
make it match to a output label.
Just need to find images of aerial data base to train it on.
150 x 150 pixel in to the black box and 80 x 80 output pixels.
You get make the decision. That output pixel 44 x 55 is going to be
the top of a pine tree:) It is labeled top of pine tree by a link list.
Then from that out put pixel
back prop out all thing that down vote that output when the nn is shown a pine tree.
You can select a pixel to do cars at 40 degree for another output pixel
to do a truck 10 degrees.
If you want north or south orientation then gps data will have to entered
in at the beginning and may have to come in on it own filter.
To find what the a filter is trained to detect it is shown hand drawn
lines and see what activates it. it is possible for two or more filter
detecting the same thing. Since these little kernels are little NN and
not a hand crafted sobel edge detection algorithm.
Since they tiny NN 15 x 15 pixels with a output 5. Five slightly different
orientations of a line. All OR'd together for its output.
The activation of a filter are collected on a empty image in the
next layer. When a filter is not dead center over a line it will generate
a fractional output. Max pooling get rid of these:
https://www.quora.com/What-is-max-pooling-in-convolutional-neural-networks
Each feature is channeled out, by a filter, into its own red carpet path.
Then all of them are reconnected later on.