Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
8b52111ba5
3 changed files with 24 additions and 13 deletions
|
@ -18,7 +18,7 @@ apply plugin: 'com.android.application'
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 26
|
compileSdkVersion 26
|
||||||
buildToolsVersion "26.0.1"
|
buildToolsVersion "26.0.2"
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
development {
|
development {
|
||||||
|
|
|
@ -344,8 +344,8 @@ public class GPXUtilities {
|
||||||
double totalSpeedSum = 0;
|
double totalSpeedSum = 0;
|
||||||
points = 0;
|
points = 0;
|
||||||
|
|
||||||
double channelThresMin = 5; // Minimum oscillation amplitude considered as noise for Up/Down analysis
|
double channelThresMin = 10; // Minimum oscillation amplitude considered as relevant or as above noise for accumulated Ascent/Descent analysis
|
||||||
double channelThres = channelThresMin; // Actual oscillation amplitude considered as noise, try depedency on current hdop/getAccuracy
|
double channelThres = channelThresMin; // Actual oscillation amplitude considered as above noise (accomodates depedency on current VDOP/getAccuracy if desired)
|
||||||
double channelBase;
|
double channelBase;
|
||||||
double channelTop;
|
double channelTop;
|
||||||
double channelBottom;
|
double channelBottom;
|
||||||
|
@ -424,8 +424,11 @@ public class GPXUtilities {
|
||||||
hasSpeedInTrack = true;
|
hasSpeedInTrack = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Trend channel approach for elevation gain/loss, Hardy 2015-09-22
|
// Trend channel analysis for elevation gain/loss, Hardy 2015-09-22:
|
||||||
// Self-adjusting turnarund threshold added for testing 2015-09-25: Current rule is now: "All up/down trends of amplitude <X are ignored to smooth the noise, where X is the maximum observed DOP value of any point which contributed to the current trend (but at least 5 m as the minimum noise threshold)".
|
// - Detect consecutive trend channels: Only net elevation changes per each trend channel (i.e. between turnarounds) are used to accumulate the Ascent/Descent values.
|
||||||
|
// - Trend turnaround detection: Ignore oscillations of amplitude < channelThresMin, this sests the relevance threshold, and masks what is considered as noise
|
||||||
|
// - REMOVED for now: To supress marginal measurements, relax from channelThresMin to channelThres based on the maximum VDOP of any point which contributed to the current trend. Good assumption is VDOP=2*HSOP (accounts for invisibility of lower hemisphere satellites).
|
||||||
|
// - TODO: Perform the channel evaluation with Low Pass Filter (LPF) smoothed ele data instead of with the raw ele data
|
||||||
if (!Double.isNaN(point.ele)) {
|
if (!Double.isNaN(point.ele)) {
|
||||||
// Init channel
|
// Init channel
|
||||||
if (channelBase == 99999) {
|
if (channelBase == 99999) {
|
||||||
|
@ -437,14 +440,14 @@ public class GPXUtilities {
|
||||||
// Channel maintenance
|
// Channel maintenance
|
||||||
if (point.ele > channelTop) {
|
if (point.ele > channelTop) {
|
||||||
channelTop = point.ele;
|
channelTop = point.ele;
|
||||||
if (!Double.isNaN(point.hdop)) {
|
//if (!Double.isNaN(point.hdop)) {
|
||||||
channelThres = Math.max(channelThres, 2.0 * point.hdop); //Use empirical 2*getAccuracy(vertical), this better serves very flat tracks or high dop tracks
|
// channelThres = Math.max(channelThres, 2.0 * point.hdop); //Use empirical 2*getAccuracy(vertical), this better serves very flat tracks or high dop tracks
|
||||||
}
|
//}
|
||||||
} else if (point.ele < channelBottom) {
|
} else if (point.ele < channelBottom) {
|
||||||
channelBottom = point.ele;
|
channelBottom = point.ele;
|
||||||
if (!Double.isNaN(point.hdop)) {
|
//if (!Double.isNaN(point.hdop)) {
|
||||||
channelThres = Math.max(channelThres, 2.0 * point.hdop);
|
// channelThres = Math.max(channelThres, 2.0 * point.hdop);
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
// Turnaround (breakout) detection
|
// Turnaround (breakout) detection
|
||||||
if ((point.ele <= (channelTop - channelThres)) && (climb == true)) {
|
if ((point.ele <= (channelTop - channelThres)) && (climb == true)) {
|
||||||
|
|
|
@ -2,7 +2,7 @@ apply plugin: 'com.android.application'
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 26
|
compileSdkVersion 26
|
||||||
buildToolsVersion "26.0.1"
|
buildToolsVersion "26.0.2"
|
||||||
|
|
||||||
dexOptions {
|
dexOptions {
|
||||||
jumboMode true
|
jumboMode true
|
||||||
|
@ -38,28 +38,36 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
flavorDimensions "abi"
|
||||||
|
|
||||||
productFlavors {
|
productFlavors {
|
||||||
x86 {
|
x86 {
|
||||||
|
dimension "abi"
|
||||||
ndk {
|
ndk {
|
||||||
abiFilter "x86"
|
abiFilter "x86"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mips {
|
mips {
|
||||||
|
dimension "abi"
|
||||||
ndk {
|
ndk {
|
||||||
abiFilter "mips"
|
abiFilter "mips"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
armv7 {
|
armv7 {
|
||||||
|
dimension "abi"
|
||||||
ndk {
|
ndk {
|
||||||
abiFilter "armeabi-v7a"
|
abiFilter "armeabi-v7a"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
armv5 {
|
armv5 {
|
||||||
|
dimension "abi"
|
||||||
ndk {
|
ndk {
|
||||||
abiFilter "armeabi"
|
abiFilter "armeabi"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fat
|
fat {
|
||||||
|
dimension "abi"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
|
|
Loading…
Reference in a new issue