132nd-vWing/132nd-Virtual-Wing-Training-Mission-Tblisi

Create MOA's (military operating area)

Opened this issue · 19 comments

Create MOA's in order to facilitate Air-to-air training. Now that we have the Mirage we should structure additional airspace to facilitate this, and provide the necessary documentation for it.

Should also be seen in conjunction with merging documentation for standard training mission (Range orders + Spins + Mission brief+ ingame mission brief)

I want to start working in the training mission tomorrow in order to prepare for the training mission on Sunday.
For the edit I intend to add OCA Range at Kutaisi (See issue #18 ), and at the same time create one or two more ranges in that general area. I will also add in the MOA airspace together with range airspaces.

Anyone have any inputs on how the airspace structure should look like?

I came here to ask you about #28, and I saw this post.

This is a lot of work in small time frame.

I think we should start by creating the range boundaries.

  1. Create a group named "OCA RANGE"
  2. Set it to "Late activation"
  3. Create a closed polygon around the range area with its waypoints
  4. Waypoints coordinates in ED format (x, y) can be translated to LAT/LONG via a function in the scripting engine
  5. Add range as LAT/LONG to LotATC drawing

We should also close #28; my job, but I need your input.

What else would you like to have implemented for Sunday ?

I can make the range on develop now? and then we have the range outlines (airspace), and then I can just finetune them with content later?

If you're Ok with it, I would rather you'd make a branch based on develop, named "feature/26_MOA". This should be standard COA. You know, the one I absolutely did not follow yesterday =p

Ok, so I make a branch from develop, add inn the range airspaces, with a outline using a group ref explanation below, and then commit the branch once I am done?

That works for me ! I will integrate tomorrow, with the new AWACS, and amend the 176th LotATC *.json file accordingly.

Is there anything else you need for the range ?

Not at this time.

@132nd-etcher Could you please elaborate on you :

Waypoints coordinates in ED format (x, y) can be translated to LAT/LONG via a function in the scripting engine

Do you know what this function is called?

@jkhoel unfortunately, the function is hard-coded. I've been trying to come up with an equivalent algorithm many, many times, but never had a 100% correlation between LL & LO coords. If you ever find a solution to this conundrum, please share, you would be my hero =)

@132nd-etcher thanks! Yes - If I do, then I will share. However, I have a sneaking suspicion that any real-world calculations might not match EDs calculations..

@jkhoel No, I have no clue whatsoever what system, reference, or datum they're using to represent their 2D world. It's been puzzling me for years ...

@132nd-etcher Would it be possible to use the exported coordinates to get a graphical representation of the airspaces? It would be beneficial with a picture showing all new ranges, MOA's, old ranges and TMA airspace in one picture.

@132ndNeck Affirm, the only drawback is that it needs to be exported from a lua script inside the mission. I can't correlate ED's coordinate format with LL directly, I need an intermediate step.

Awhat I have in mind is this:

  1. Declare a few groups that will be used as "markers" in the TRMT.lua script
  2. Run the mission once, to export a "database" of those waypoints in LL format
  3. Use EMFT to convert those LL points/polygons into a KML file usable in Google Earth / Google Maps.

Would that work for you ?

The feature is in progress: theendsofinvention/EMFT#20

I was able to generate both JSON & KML from the MIZ file.

I will integrate the functionality in the GUI with the next release.

@jkhoel ok, so I kind of did it.

This has been bugging me for so long I decided to go nuclear on its face. I made a lua script to spew the raw values of 6 billions (yes) points in the X plane, and 6 others billions in the Y plane, then computed the polynomial to the tenth degree for both those values.

This is the plot showing the final result:

(there are actually four lines, with an deviation of 0.014%)

Here are the generic conversion methods:

def convert_lat(LO):
    poly = [1.7871157276496346e-63, -3.7017105376966803e-56, 3.2739211586271487e-49, -1.61035664804101e-42,
            4.8132831946662597e-36, -8.9716034302632608e-30, 1.0303954202826318e-23, -6.9242087443114205e-18,
            2.5109873548809445e-12, -1.7404291057902361e-07, 34.279300215537305]
    return sum(x * LO**pwr for x, pwr in zip(poly, reversed(range(len(poly)))))


def convert_long(LO):
    poly = [7.7823586472318142e-68, -1.4889802851577457e-60, 9.7709735498211447e-54, -4.0889355382250073e-48,
            -2.1984858913186359e-40, -1.4836779870704244e-34, 1.1548134826958055e-26, 4.6020819684197637e-21,
            -7.0744191595680773e-13, -1.4089631590656565e-07, 45.129497060854682]
    return sum(x * LO**pwr for x, pwr in zip(poly, reversed(range(len(poly)))))

So, lo and behold, I'm calling it a day and will work with that.

Remark: since the LO 0, 0 is in Crimea, I did not bother with testing negative values, but the algorithm should hold.

@132ndNeck what exactly did you have in mind with this ?

Should also be seen in conjunction with merging documentation for standard training mission (Range orders + Spins + Mission brief+ ingame mission brief)

bump, can this be closed?

The ranges are there, but what about documentation and guidelines?