JMG30 / flight_planner

QGIS plugin for planning photogrammetric flights. Output: projection center layer (with attribute table containing parameters of Exterior Orientation) and size of images at average height of the terrain. With flight assessment tools you can get: real coverage of photos, logical sum of overlapping photos, GSD map.
GNU General Public License v2.0
39 stars 13 forks source link

GSD and flight height AGL #12

Open olivier72 opened 2 years ago

olivier72 commented 2 years ago

Hi! The attributes table of the projection_centers layer contains the ground altitude ASL. I was thinking, given the sensor properties, the GSD value would help calculating the optimal flight height and add it to the ground altitude. I have to use the field calculator to add 25-30m or some. Did I missed something? Thanks! Olivier Capture

JMG30 commented 2 years ago

Hi Olivier, attribute table contains Alt. ASL (Altitude Above Sea Level [meters]) of projection centers, so I don't understand why you had to add 25-30m.

If you want to know the formula for these values is as follow:

H = GSD / sensor_size * focal_length

Then H is added to average hight of terrain (Ht average), that depends on the altitude type you chose. For:

Ht average = (Hmax + Hmin)/2

Hmax/Hmin is the maximum and minimum terrain height within Area of Interest. You can gain these values by clicking "Get from DTM" button after you selected DTM and AoI layers or just type them in by yourself,

Ht average = H max - (Hmax - Hmin)/3

Hmax/Hmin is the maximum and minimum terrain height for each strip of flight - you have to point DTM layer. You can't type them or manipulate in other way - plugin gets them itself.

Ht average = (Hmax + Hmin)/2

Hmax/Hmin is the maximum and minimum terrain height for each photo - you have to point DTM layer. You can't type them or manipulate in other way - plugin gets them itself.

Finally, H is added to Ht average, so Alt. ASL = H + Ht average. Hope this explanation helps you.

PS. I plan to add an option for the user to choose between GSD and Alt. AGL (Altitude Above Ground Level) and by the way change the calculation method for the "Terrain Following" mode, but I do not know exactly when.

Eandelin commented 2 years ago

Possibly geoid offset?

Regards,

Eric Andelin, CP, GISP. Mobile 813.502.9813

On Sun, Apr 24, 2022, 4:02 PM JMG30 @.***> wrote:

Hi Olivier, attribute table contains Alt. ASL (Altitude Above Sea Level [meters]) of projection centers, so I don't understand why you had to add 25-30m.

If you want to know the formula for these values is as follow:

H = GSD / sensor_size * focal_length

Then H is added to average hight of terrain (Ht average), that depends on the altitude type you chose. For:

  • One alitutde

Ht average = (Hmax + Hmin)/2

Hmax/Hmin is the maximum and minimum terrain height within Area of Interest. You can gain these values by clicking "Get from DTM" button after you selected DTM and AoI layers or just type them in by yourself,

  • Altitude for each strip

Ht average = H max - (Hmax - Hmin)/3

Hmax/Hmin is the maximum and minimum terrain height for each strip of flight - you have to point DTM layer. You can't type them or manipulate in other way - plugin gets them itself.

  • Following terrain

Ht average = (Hmax + Hmin)/2

Hmax/Hmin is the maximum and minimum terrain height for each photo - you have to point DTM layer. You can't type them or manipulate in other way

  • plugin gets them itself.

Finally, H is added to Ht average, so Alt. ASL = H + Ht average. Hope this explanation helps you.

PS. I plan to add an option for the user to choose between GSD and Alt. AGL (Altitude Above Ground Level) and by the way change the calculation method for the "Terrain Following" mode, but I do not know exactly when.

— Reply to this email directly, view it on GitHub https://github.com/JMG30/flight_planner/issues/12#issuecomment-1107908727, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKB4LAPOOEIA76OTQMJSM7TVGWSGZANCNFSM5UGL2GAQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

olivier72 commented 2 years ago

Hi !

Thanks for your reply. I think my question wasn’t very clear 😉.

I just show you how I solved my problem and if you have any insight about it.

My SCR is EPSG::3857 . X and Y have been transformed into WGS84 EPSG::4326. Elevation is ok.

With my camera parameters I need to fly below 40m to get a GSD < 1 cm/px, this what my Excel spreadsheet gives and DJI Pilot too, so is your plugin :

H = 1/(10.26 * 0.00241) = 40.44 m

However I get this :

And what I need is relative flight height to the Home Point at min Alt. ASL:

What I basically did is to set the pixel size to 100 to get H closed to zero, the Alt. ASL column contains more or less the ground altitude for each camera :

Now I subtracted the Alt. ASL with the min Alt. and added my desired constant flight height above terrain (say 30m) :

Hdv is relative flight height from the home point, so 30 m at HP and 62 m at the top of the area:

Then I used cvs2djipilot python script https://github.com/IPGP/csv2djipilot/

And the flight plan is fine.

Dots are your projections centers (batches of 99 , DJI constraint),

And on Pilot :

Tough but working !

Regards,

Olivier

De : JMG30 @.> Envoyé : dimanche, 24 avril 2022 22:03 À : JMG30/flight_planner @.> Cc : olivier72 @.>; Author @.> Objet : Re: [JMG30/flight_planner] GSD and flight height AGL (Issue #12)

Hi Olivier, attribute table contains Alt. ASL (Altitude Above Sea Level [meters]) of projection centers, so I don't understand why you had to add 25-30m.

If you want to know the formula for these values is as follow:

H = GSD / sensor_size * focal_length

Then H is added to average hight of terrain (Ht average), that depends on the altitude type you chose. For:

Ht average = (Hmax + Hmin)/2

Hmax/Hmin is the maximum and minimum terrain height within Area of Interest. You can gain these values by clicking "Get from DTM" button after you selected DTM and AoI layers or just type them in by yourself,

Ht average = H max - (Hmax - Hmin)/3

Hmax/Hmin is the maximum and minimum terrain height for each strip of flight - you have to point DTM layer. You can't type them or manipulate in other way - plugin gets them itself.

Ht average = (Hmax + Hmin)/2

Hmax/Hmin is the maximum and minimum terrain height for each photo - you have to point DTM layer. You can't type them or manipulate in other way - plugin gets them itself.

Finally, H is added to Ht average, so Alt. ASL = H + Ht average. Hope this explanation helps you.

PS. I plan to add an option for the user to choose between GSD and Alt. AGL (Altitude Above Ground Level) and by the way change the calculation method for the "Terrain Following" mode, but I do not know exactly when.

— Reply to this email directly, view it on GitHub https://github.com/JMG30/flight_planner/issues/12#issuecomment-1107908727 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ABEP4RKIPSXWQ7GTNEJFRPLVGWSGZANCNFSM5UGL2GAQ . You are receiving this because you authored the thread. https://github.com/notifications/beacon/ABEP4RN4JWUE5PDAT6IBAXDVGWSGZA5CNFSM5UGL2GA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOIIEVQ5Y.gif Message ID: @. @.> >

JMG30 commented 2 years ago

@Eandelin I don't think so

@olivier72 You attached some pictures, but I can't see them.

I would like to understand what you want to ask for (you mentioned "question" at the beginning, but I don't see any question with question mark).

You want to receive height of center points at some height Above Ground Level (to obtain GSD < 1cm/pixel) and then substract from these values the height of Home Point (the point where you start flight?), am I right?

You can do it like you descibed, but in my opinion there is simpler way. You can set whatever GSD value you want and then just use "Sample Raster Values" tool to get the ground heights at centers projection. Then just add your flight height H and substract Home Point's height.

If you wanted to ask if I'll implement something like this in my plugin I can say yes. I'm going to add choosing between GSD/Altitude Above Ground (like your 30m) as well as waypoints as I mentioned in previous post. When it comes to a part with "cvs2djipilot python script" I don't know yet.