Sensing soil properties and relationship among them

I already made hardware for sensing the soil properties this include soil moisture, pH, temperature and light intensity.
Now using above sensors value I want to make a mathematical equation (model) that can automatically determine the other property of soil that include
1> Type of soil structure
2> soil texture eg. Available water holding capacity
3> Nutrients value like N,P,K,Ca,S,Mg
4> Rate of osmosis in a soil
. etc

Please suggest me way to make equation for soil properties. What more thing I can add on my project so that I will get good result?

There may not be any relation between the measured quantities and whatever it is you want to predict.

Before you can make a mathematical model, you have to prove that there is a correlation between the observations.

Testing my understanding here.....

You plan to measure a few things and predict a whole bunch more?

The best you could do is to get a relationship among the things you measure and predict one of them from the others.

But how does that translate to predicting variables you haven't even included in the measurements?

I think you should be asking this in a soil mechanics or soil nutrition or soil something anyway, forum.

(What do you even mean by "soil structure" anyhow?")

Being able to determine soil texture and structure by measuring pH and temperature would be great. How do you figure these are related? I can imagine you might be able to get close to texture by measuring soil matric potential but I cant see how you could get structure with the possible exception of a columnar structure which is fairly common in sodic soils.

Consider machine learning, which seems well suited for such tasks.

https://www.tensorflow.org/versions/master/tutorials/mnist/beginners/index.html

There'll be a teaching group of data, where you know the sensor values, and you manually researched and inserted the other properties to predict. You feed it a lot of such data, and the algorithm will then learn how it is related.

You'll have a test group of data, where you also manually researched the values, but the algorithm doesn't know them, and it's used to make the "machine learning equation" more accurate. There are many phases of learning where it is more accurate the more time you give it.

At the end, you'll have what's called the tensor, which takes input values, and predicts what you seek, according to the model which has been built.

The link above has a tutorial which is a great start, and explains it all again and better.

edit: when I look at the project in detail, though, I think you're going to need more diverse data. For example, instead of just looking at ph/temperature/moisture, you could also try raising the moisture, and register how it affects ph/temperature, ect... But I don't think that'll be enough still. You could look at the density of soil, take a cup and see how much it weighs. Then heat it, to remove the water, and look at the weight again. Or use a kind of spectrometry, or pictures, anything that it takes to distinguish enough. Maybe, have it react with compounds, and see what happens, stuff like that. You need as many such information as possible about a piece of soil, and then you feed all that to the algorithm. It's not perfect, but it's something.

(also, I think it's a great project)

Could you help me with this Soil Property Identification? thank you.