Recon Altitudes and Recon Level

The common meeting place for SEOW veterans and noobs alike, sharing feedback, ideas and experiences.

Moderator: SEOW Developers

Post Reply
II/JG54_Emil
Posts: 272
Joined: Thu 07 May 2009 10:45 am

Recon Altitudes and Recon Level

Post by II/JG54_Emil »

Are recon altitudes having an effect on the recon level in the current SEOW?
22GCT_Gross
Posts: 302
Joined: Fri 13 Apr 2007 1:13 pm
Location: Italy

Post by 22GCT_Gross »

As long as I remember, the recon details are affected by the altitude you set while plotting the mission, while the real in-game altitude does not affect the recon details (as no related info could be parsed from the eventlog).
22GCT_Gross
IV/JG7_4Shades
Posts: 2213
Joined: Mon 08 Jan 2007 11:10 pm
Location: Perth, Western Australia

Post by IV/JG7_4Shades »

Correct Gross. However, with HSFX5.0 a new mod makes wingtip smoke events log altitude as well as position, and the new SEOW will record the altitude for human recon photos and feed that altitude into recon calculations.

Cheers,
4Shades
IV/JG7_4Shades
SEOW Developer

Image
II/JG54_Emil
Posts: 272
Joined: Thu 07 May 2009 10:45 am

Post by II/JG54_Emil »

What it the formula of reconlevel per altitude?
IV/JG7_4Shades
Posts: 2213
Joined: Mon 08 Jan 2007 11:10 pm
Location: Perth, Western Australia

Post by IV/JG7_4Shades »

From DCS basMissionBuilder source code

Code: Select all

2433 	'This function calculates the reconnaissance detection radius for a given altitude.
2434 	Private Function dblReconRadius(ByVal dblAltitude As Double) As Double
2435 	Try
2436 	dblReconRadius = Max(dblMinReconRadius, Min(dblMaxReconRadius, dblReconRadiusScale * dblAltitude))
2437 	Catch ex As Exception
2438 	Call basMess.MessageBox("basMissionBuilder.dblReconRadius: " _
2439 	& Err.Number & " " & Err.Description, vbCritical)
2440 	End Try
2441 	End Function
2442 	
2443 	
2444 	'This function calculates the correction to a object's recon level due to being spotted by
2445 	'an enemy air reconnaissance flight. The correction depends on distance between spotter
2446 	'aircraft and the object, as well as the aircraft altitude and prevailing weather conditions.
2447 	Private Function getReconIncrementFromAir(ByVal dblSeparation As Double, ByVal dblReconAltitude As Double) As Integer
2448 	Dim dblSeparationFactor As Double
2449 	Dim dblAltitudeFactor As Double
2450 	Dim dblVisibilityFactor As Double
2451 	Dim dblCloudHeightFactor As Double
2452 	Dim dblDaylightFactor As Double
2453 	Dim intReconGain As Integer
2454 	Dim intReconEstimate As Integer
2455 	
2456 	Try
2457 	'We will use a multifactorial model for the recon correction.
2458 	'The separation factor declines linearly with horizontal distance, to a minimum of 0.5
2459 	'at the maximum radius for this recon altitude.
2460 	dblSeparationFactor = 1.0 - 0.5 * dblSeparation / dblReconRadius(dblReconAltitude)
2461 	
2462 	'The altitude factor declines exponentially with altitude from 1 at minimum recon altitude, to a
2463 	'minimum of 0.81 at the maximum recon altitude.
2464 	dblAltitudeFactor = Math.Exp(-0.2 * (dblReconAltitude - dblMinReconAltitude) _
2465 	/ (dblMaxReconAltitude - dblMinReconAltitude))
2466 	
2467 	'The visibility factor declines exponentially with visibility from 1 at clear conditions, to a
2468 	'minimum of 0.22 in thunderstorm or rain conditions.
2469 	dblVisibilityFactor = Math.Exp(-CDbl(intVisibility) / 5.0)
2470 	
2471 	'The cloud height factor is reduced where the spotter plane is above the cloud base unless
2472 	'visibility is clear.
2473 	dblCloudHeightFactor = 1.0
2474 	If dblReconAltitude > intCloudBase And intVisibility > 2 Then
2475 	dblCloudHeightFactor = 0.75
2476 	End If
2477 	
2478 	'The daylight factor is a simple step function, only 0.3 in night hours.
2479 	dblDaylightFactor = 1.0
2480 	If isDaylight = False Then
2481 	dblDaylightFactor = 0.3
2482 	End If
2483 	
2484 	'Here is the recon gain calculation.
2485 	intReconGain = CInt(CDbl(intMaximumReconGain) * _
2486 	dblSeparationFactor * _
2487 	dblAltitudeFactor * _
2488 	dblVisibilityFactor * _
2489 	dblCloudHeightFactor * _
2490 	dblDaylightFactor)
2491 	
2492 	getReconIncrementFromAir = Math.Max(0, intReconGain)
2493 	
2494 	Catch ex As Exception
2495 	Call basMess.MessageBox("basMissionBuilder.getReconIncrementFromAir: " _
2496 	& Err.Number & " " & Err.Description, vbCritical)
2497 	End Try
2498 	
2499 	End Function
2500 	
Parameter values are read from the Sector_Recon_Parameters table of the DB, e.g. things like MinReconAltitude, MaxReconGain etc etc.

Cheers,
4Shades
IV/JG7_4Shades
SEOW Developer

Image
102nd-YU-Devill
Posts: 69
Joined: Sat 29 Nov 2008 10:41 am

Post by 102nd-YU-Devill »

Very useful things to know Shades, thx!
22GCT_Gross
Posts: 302
Joined: Fri 13 Apr 2007 1:13 pm
Location: Italy

Post by 22GCT_Gross »

Excellant analisys and coding. My compliments.
22GCT_Gross
PA-Dore
Posts: 469
Joined: Thu 01 Nov 2007 8:58 am
Location: Savoie-France
Contact:

Post by PA-Dore »

Thanks Mike for details. I will now order recon flights only high altitude (for security and reconx0.81/low altitude) and daylight (x3/night) :wink:
II/JG54_Emil
Posts: 272
Joined: Thu 07 May 2009 10:45 am

Post by II/JG54_Emil »

Thanks for the info.
EAF331_Starfire
Posts: 97
Joined: Wed 31 Oct 2007 4:50 am
Location: Denmark
Contact:

Post by EAF331_Starfire »

For the code illiterate of us.
Can anyone tell me the correlation between altitude and recon area?

My idear is to calculate the optimum altitude for a recon pilot.
Waiting for HSFX 6 support ;-)
IV/JG7_4Shades
Posts: 2213
Joined: Mon 08 Jan 2007 11:10 pm
Location: Perth, Western Australia

Post by IV/JG7_4Shades »

From http://seow.cvs.sourceforge.net/viewvc/ ... iew=markup

Code: Select all

2889 	'This function calculates the reconnaissance detection radius for a given altitude.
2890 	Private Function dblReconRadius(ByVal dblAltitude As Double) As Double
2891 	Try
2892 	dblReconRadius = Math.Max(dblMinReconRadius, Min(dblMaxReconRadius, dblReconRadiusScale * dblAltitude))
2893 	Catch ex As Exception
2894 	Call basMess.MessageBox("basMissionBuilder.dblReconRadius: " _
2895 	& Err.Number & " " & Err.Description, vbCritical)
2896 	End Try
2897 	End Function
Note that dblMinReconRadius, dblMaxReconRadius and dblReconRadiusScale are set for each sector in the DB table "Sector_Recon_Parameters".

Cheers,
4S
IV/JG7_4Shades
SEOW Developer

Image
Post Reply