Is there a way to update data and invoke adjustment solution from a command line script or external s/w ? Maybe a library we could use in background ?

The Class `ProjectDatabase`

in package `com.derletztekick.geodesy.openadjustment.sql`

provides an additional `main`

-method, see below. To use this method via command line, you have to manipulate JAG3D's HSQL-database by your application. If you need a special/individual implementation, please get in contact with Transfer Centre Applied Geodesy.

kind regards

Micha

public static void main(String args[]) { System.setProperty("com.github.fommil.netlib.BLAS", "com.github.fommil.netlib.F2jBLAS"); System.setProperty("com.github.fommil.netlib.LAPACK", "com.github.fommil.netlib.F2jLAPACK"); System.setProperty("com.github.fommil.netlib.ARPACK", "com.github.fommil.netlib.F2jARPACK"); if (args.length > 0) { DataBase db = new HSQLDB(args[0]); ProjectDatabase dataBase = new ProjectDatabase(db); NetworkAdjustment adjustment = dataBase.getNetworkAdjustment(); int state = adjustment.estimateModel(); if (state != NetworkAdjustment.ERROR_FREE_ESTIMATION) { System.err.println("ERROR IN ADJUSTMENT!!!"); System.exit(state); } else { state = dataBase.saveResults(); if (state != ProjectDatabase.ERROR_FREE) { System.err.println("STORAGE ERROR!!!"); System.exit(state); } System.out.println("ADJUSTMENT DONE..."); } } }]]>

I've tested JAG3D with success for a simple LSQ adjustment based on 4 known stations and respective distances. I would like to do same solution for plenty of new stations' coordinates and updated distances.

Is there a way to update data and invoke adjustment solution from a command line script or external s/w ? Maybe a library we could use in background ?

Thanks in advance

Francis

I would like to read these books but they are not in free access in internet.

The concept of the B-method is given in the postulate of Baarda's A testing procedure for use in geodetic networks. Šidák correction can be found at e.g. Wikipedia.

Then it computes a global test.

This test tells us if there is/are outlier(s) in the observation(s) but it doesn't tell us where. Therefore Jag3D computes individual tests for each observations.

If the value of the individual test is near from 0, it means the observation is not an outlier and if the value of the test is big, it means the observation is an outlier. Right?

JAG3D estimates the unknwon parameters by least-squares adjustment. A so-called overall model test, the global test, is preformed to check the stochastic model as well as the functional model. If the global test fails, it is not possible to identify the reason of the rejection. An outliers is nothing else than a wrong functional model, but the reason for the rejection can also be a too optimistic stochastic model, i.e. if your distance measurement can be carried out with an uncertainty of e.g. `2 cm`

but you select `2 µm`

, the global test (as well as a lot of individual tests) will rejected.

The individual test adds an additional parameter `∇`

to each observation (one at a time) and checks the model conformity or benefit of `∇`

w.r.t. related uncertainties `Q∇∇`

, e.g.

If `Tprio`

exceeds a specific threshold, `∇`

is significant. In case of a reliable stochastic model, `∇`

can be interpreted as an outlier.

Does the expression Tprio~Fm,∞ means that the test follows a Fischer-distribution?

Yes, it follows the Fisher distribution `F(f1,f2)`

with parameters `f1=m`

and `f2=∞`

. Due to `f2=∞`

, it is equivalent to χ2-test.

Why does Jag3D compute an individual test a-priori and an individual test a-posteriori?

Remember my distance example (`2 cm`

vs. `2 µm`

): `Tprio`

based on *your* stochastic model. If you select an inadequate stochastic model, this test will fail many times and you run in a type I error. `Tpost`

based on the estimated variance of the unit weight and are - in some cases - more suitable than `Tprio`

but with less power.

And if we already know where the outliers are thanks to individual tests, why do we use B-method or Sidak correction?

What will you do, if the global test fails but no individual test identifies an outlier? Šidák correction and B-method are concepts to minimizes this *confusion*: The global test should be rejected, if at least one individual test was rejected and vice versa.

What do you mean with "They manipulate the probability value in a specific way"

Take a look at the Šidák correction

here `αG`

and `α'`

represents the probability value of the global test and the individual test, respectively, an `r`

is the number of hypothesis. For B-method an online calculator is available:

Here `α`

is adapted in a way, that both test statistics have the same non-centrality parameter `λ`

.

regards

Micha

They *manipulate* the probability value in a specific way. Please take a look to e.g.:

- Aydin, Demirel (2004), Computation of Baarda’s lower bound of the non-centrality parameter

- Šidák (1967), Rectangular Confidence Regions for the Means of Multivariate Normal Distributions.

Hello Micha, thank you for the reply.

I would like to read these books but they are not in free access in internet.

I'm really sorry to disturb you but I read a lot of paper about the least squares method and Fischer-distribution, Student-t-distribution, chi-squared distribution? test of hypothesis but I'm completely lost.

Here is the thing as I understood it.

Jag3D computes the compensation with the least squares method. Then it computes a global test.

This test tells us if there is/are outlier(s) in the observation(s) but it doesn't tell us where. Therefore Jag3D computes individual tests for each observations.

If the value of the individual test is near from 0, it means the observation is not an outlier and if the value of the test is big, it means the observation is an outlier. Right?

Is it the right order of computation?

Does the expression Tprio~Fm,∞ means that the test follows a Fischer-distribution?

Why does Jag3D compute an individual test a-priori and an individual test a-posteriori?

And if we already know where the outliers are thanks to individual tests, why do we use B-method or Sidak correction?

What do you mean with "They manipulate the probability value in a specific way"

I read so many papers but it sounds like chinese and I'm close to give up but I don't want it.

So, once again sorry for disturbing you.

Best regards, Etienne

]]>If the global test respects the hypothesis 0, it means there are no errors in the model or in the observations, right?

No. It is a stochastic test, so remember a type one error as well as type two error.

It always respects the alternative hypothesis.

No. If the residuals are normally distributed and the stochastic model as well as the functional model are valid, the null-hypothesis will (or should) not rejected.

And what is m in the individual tests?

The rang of the matrix `Q∇∇`

.

Is it always m=1?

No, take a look to the table.

I also don't understand what the Baarda's test and the correction of Sidak do

They *manipulate* the probability value in a specific way. Please take a look to e.g.:

- Aydin, Demirel (2004), Computation of Baarda’s lower bound of the non-centrality parameter

- Šidák (1967), Rectangular Confidence Regions for the Means of Multivariate Normal Distributions.

/Micha

]]>