3.01 Image crop, SUI bugfix, txelev replaced

This commit is contained in:
alex
2017-02-16 23:40:53 +00:00
parent 22ec06ddb1
commit dded0219cf
5 changed files with 86 additions and 35 deletions

View File

@@ -304,7 +304,7 @@ void PlotPropPath(struct site source, struct site destination,
xmtr_alt, dest_alt, xmtr_alt2, dest_alt2,
cos_rcvr_angle, cos_test_angle = 0.0, test_alt,
elevation = 0.0, distance = 0.0, four_thirds_earth,
field_strength = 0.0, rxp, dBm, txelev, dkm, diffloss;
field_strength = 0.0, rxp, dBm, dkm, diffloss;
struct site temp;
ReadPath(source, destination);
@@ -323,7 +323,6 @@ void PlotPropPath(struct site source, struct site destination,
/* Copy ending points without clutter */
elev[2] = path.elevation[0] * METERS_PER_FOOT;
txelev = elev[2] + (source.alt * METERS_PER_FOOT);
elev[path.length + 1] =
path.elevation[path.length - 1] * METERS_PER_FOOT;
@@ -446,6 +445,8 @@ void PlotPropPath(struct site source, struct site destination,
dkm = (elev[1] * elev[0]) / 1000; // km
switch (propmodel) {
case 1:
// Longley Rice ITM
@@ -462,16 +463,15 @@ void PlotPropPath(struct site source, struct site destination,
case 3:
//HATA 1, 2 & 3
loss =
HATApathLoss(LR.frq_mhz, txelev,
path.elevation[y] +
(destination.alt *
METERS_PER_FOOT), dkm, pmenv);
HATApathLoss(LR.frq_mhz, source.alt * METERS_PER_FOOT,
(path.elevation[y] * METERS_PER_FOOT) + (destination.alt * METERS_PER_FOOT), dkm, pmenv);
break;
case 4:
// ECC33
loss =
ECC33pathLoss(LR.frq_mhz, txelev,
path.elevation[y] +
ECC33pathLoss(LR.frq_mhz, source.alt * METERS_PER_FOOT,
(path.elevation[y] *
METERS_PER_FOOT) +
(destination.alt *
METERS_PER_FOOT), dkm,
pmenv);
@@ -479,16 +479,18 @@ void PlotPropPath(struct site source, struct site destination,
case 5:
// SUI
loss =
SUIpathLoss(LR.frq_mhz, txelev,
path.elevation[y] +
SUIpathLoss(LR.frq_mhz, source.alt * METERS_PER_FOOT,
(path.elevation[y] *
METERS_PER_FOOT) +
(destination.alt *
METERS_PER_FOOT), dkm, pmenv);
break;
case 6:
// COST231-Hata
loss =
COST231pathLoss(LR.frq_mhz, txelev,
path.elevation[y] +
COST231pathLoss(LR.frq_mhz, source.alt * METERS_PER_FOOT,
(path.elevation[y] *
METERS_PER_FOOT) +
(destination.alt *
METERS_PER_FOOT), dkm,
pmenv);
@@ -512,8 +514,9 @@ void PlotPropPath(struct site source, struct site destination,
case 9:
// Ericsson
loss =
EricssonpathLoss(LR.frq_mhz, txelev,
path.elevation[y] +
EricssonpathLoss(LR.frq_mhz, source.alt * METERS_PER_FOOT,
(path.elevation[y] *
METERS_PER_FOOT) +
(destination.alt *
METERS_PER_FOOT), dkm,
pmenv);
@@ -521,7 +524,7 @@ void PlotPropPath(struct site source, struct site destination,
case 10:
// Plane earth
loss = PlaneEarthLoss(dkm, txelev, path.elevation[y] + (destination.alt * METERS_PER_FOOT));
loss = PlaneEarthLoss(dkm, source.alt * METERS_PER_FOOT, (path.elevation[y] * METERS_PER_FOOT) + (destination.alt * METERS_PER_FOOT));
break;
default:
@@ -537,6 +540,7 @@ void PlotPropPath(struct site source, struct site destination,
}
if (knifeedge == 1) {
diffloss =
ked(LR.frq_mhz,
@@ -677,6 +681,11 @@ void PlotPropPath(struct site source, struct site destination,
}
}
if(path.lat[y]>cropLat)
cropLat=path.lat[y];
if(path.lon[y]>cropLon)
cropLon=path.lon[y];
}
void PlotLOSMap(struct site source, double altitude, char *plo_filename,

View File

@@ -9,9 +9,9 @@ double SUIpathLoss(float f, float TxH, float RxH, float d, int mode)
TxH = Transmitter height (m)
RxH = Receiver height (m)
d = distance (km)
mode 1 = Hilly + trees
mode 2 = Flat + trees OR hilly + light foliage
mode 3 = Flat + light foliage
mode A1 = Hilly + trees
mode B2 = Flat + trees OR hilly + light foliage
mode C3 = Flat + light foliage
http://www.cl.cam.ac.uk/research/dtg/lce-pub/public/vsa23/VTC05_Empirical.pdf
*/
d = d * 1000; // km to m
@@ -45,5 +45,5 @@ double SUIpathLoss(float f, float TxH, float RxH, float d, int mode)
double Xf = 6 * log10(f / 2000);
double Xh = XhCF * log10(RxH / 2000);
return A + (10 * y) * (log10(d / d0)) + Xf + Xh + s;
return A + (10 * y * log10(d / d0)) + Xf + Xh + s;
}