Scaling is the process of taking a signal such as a voltage or current output from a sensor and applying calculations to present this signal in a more usable form in terms of engineering units, such as PSI, °F or %RH. There are three common techniques used in the data acquisition world including linear scaling, mapped scaling and formula scaling.
All three methods have their place and time for use and will be described at length in this article.
Scaling Techniques
There are three techniques for scaling that we are going to cover here in this article: linear, mapping and formula. These three techniques overlap a little bit as we will explain, but they are the primary methods used in the world of data acquisition. Just to give a quick overview of these three methods and what they are best utilized for, we’ve put together a table below.
Linear 
Linear scaling is considered to be the most common method of scaling. It works best with sensors having a linear voltage or current output signal in which the minimum and maximum outputs represent specific values along the sensors range. 
Mapped 
Mapping is considered to be the second most common method of scaling as it is used with a wide variety of lowcost resistive thermometers such as Pt100/1000, thermocouples and the like. The output measured from these sensors corresponds to a specific value, but this cannot be simplified into a linear function. 
Formula 
Formulabased scaling is considered to be one of the rarest methods of scaling, however it tends to be one of the most powerful. The rarity of this method is mainly due to the complexity of hardware required to make on the fly calculations at the speeds needed for data acquisition. We commonly see formulabased scaling when two outputs needs to be worked into one composite output (eg. differential pressure) or when the measured output relates to another parameter (eg. tank depth for a nonlinear tank). 
In certain instances where formulabased scaling is not available, mapping can sometimes be used to predefine a table based on the formula needed, and vice versa.
It is also worth noting that when working with a sensor that has an analog output, the units specified for that sensor are not set in stone. For example, if your sensor has a 4...20mA output for a range of 40...100°C, it would be just as easy to scale the output into Fahrenheit by saying that the unit has a range of 40...212°F. We’ll touch more on this in the next section.
Linear Scaling
The technique of linear scaling should remind you a little bit of your days back in basic algebra. It uses the old slopeintercept form ‘y = mx + b’ where

y is your output (also known as engineering units value),

x is your input (whether it be voltages, milliamps, etc.),

m is your slope (also known as scale factor), and

b is your yintercept (also known as offset).
As previously stated, linear scaling works best with linear voltage or current outputs in which the minimum and maximum outputs represent specific values along the sensors range.
If you’re a bit rusty, have no fear, we’ll give you a couple of examples to freshen things up.
Example 1
Let’s consider the Acculevel with a 0...100ftWC range and 0...10V DC output. These specifications tell us two things:

An output of 0V represents a measurement of 0ftWC and

An output of 10V represents a measurement of 100ftWC.
It’s best to start with your scale factor, or m in the equation. The factor m can be solved by using the slope formula ‘m = (y_{2}y_{1}) / (x_{2}x_{1})’ and choosing two points along the linear scale. After the scale factor has been determined, we simply plug the value m back into the slopeintercept formula and use one of our points to calculate our offset.

We will use the two points (0, 0) and (10, 100) to calculate the scale factor or m.
m = (y_{2}y_{1}) / (x_{2}x_{1}) = (100  0) / (10  0) = 100 / 10
Therefore m = 10

Now we will use the slopeintercept formula and the point (0, 0) to calculate the offset or b.
y = mx + b, where y = 0, x = 0, m = 10, and b is unknown.
0 = 10(0) + b = 0 + b
Therefore b = 0

It’s always a good idea to verify that your scale factor and offset are right by plugging our second point into our completed equation, which in this case is (10, 100).
y = mx + b, where y = 100, x = 10, m = 10, and b = 0.
100 = 10(10) + 0 = 100
Given that this arithmetical operation is valid, we have verified that our scale factor and offset are correct.
Example 2
Considering that the 0...10V example is fairly simple, let’s move on to something more challenging like a 4...20mA output. We will still use the Acculevel with a 0...100ftWC range, but this time we’ll use a 4...20mA output. These specifications again tell us two things:

An output of 4mA represents a measurement of 0ftWC and

An output of 20mA represents a measurement of 100ftWC.
We will go about this example in the same manner we did the last one by first finding the scale factor and then plugging in a few numbers to calculate the offset.

We will use the two points (4, 0) and (20, 100) to calculate the scale factor or m.
m = (y_{2}y_{1}) / (x_{2}x_{1}) = (100  0) / (20  4) = 100 / 16
Therefore m = 6.25

Now we will use the slopeintercept formula and the point (4, 0) to calculate the offset or b.
y = mx + b, where y = 0, x = 4, m = 6.25, and b is unknown.
0 = 6.25(4) + b = 25 + b
Therefore b = 25

It’s always a good idea to verify that your scale factor and offset are right by plugging our second point into our completed equation, which in this case is (20, 100).
y = mx + b, where y = 100, x = 20, m = 6.25, and b = 25.
100 = 6.25(20) + (25) = 100
Given that this arithmetical operation is valid, we have verified that our scale factor and offset are correct.
Mapped Scaling
The technique of mapped scaling often builtin and preprogrammed for inputs like thermocouples, Pt100/1000’s, and other resistive temperature sensors. For example, when you configure your data acquisition system to measure a type K thermocouple, the system already knows what resistance corresponds to what temperature. This example does not apply only to type K thermocouples, but any type of commonly used resistive temperature sensor.
However, there are some instances in which we would need to create our own mapping table.

One of these instances would be when we are working with a data acquisition system that is not preconfigured for use with resistive temperature sensors. This is not a very common situation that we run into, but it is worth mentioning.

The other instance would be when we have a nonlinear function and formulabased scaling is not available or is a piecewise function. A good example of this would be when we are using a level sensor to calculate tank volume in a nonlinear tank.
Typically when we want to know what the volume of a fluid in a tank is we measure the depth or level of the tank. By knowing this, we can calculate the volume of the fluid. If the tank had a flat bottom and was the same diameter along its height then this calculation would be simple, and we could use linear scaling like above.
However, typically these tanks are rounded and the level of the fluid does not directly correlate to the volume of fluid. In this situation we must use mapped scaling and a little bit of math to attain our desired result.
For our example we will use a horizontal cylinder tank with a diameter of 5 ft. and a length of 10 ft. There are a number of complicated trigonometric formulas used to determine the filled volume of a tank like this that we’re going to skip over as they are too complex for the scope of this article. Instead, we will do the calculations and show you the value mapping table.
Also, for this example we will be using the Acculevel again, but this time a 0...10V DC output and 0...5ftWC range.
Output Signal 
Calculated Depth 
Calculated Volume 
0 V DC 
0 ftWC 
0 gallons 
2 V DC 
1 ftWC 
209 gallons 
4 V DC 
2 ftWC 
549 gallons 
6 V DC 
3 ftWC 
920 gallons 
8 V DC 
4 ftWC 
1,260 gallons 
10 V DC 
5 ftWC 
1,469 gallons 
If this is the mapping table programmed into your data acquisition system then the volume will be calculated rather than simply measuring the depth. Typically the more points in your table the more accurate the calculations will turn out to be. To demonstrate this concept, let’s use an 1V output signal as an example.

An output of 1V would tell us that there is a 0.5 ft. depth in the tank. This calculates out to be approximately 76 gallons.

1V falls between 0V and 2V on our table, so the data acquisition system will set up a linear scale between those two points and will say that a 1V output is 104.5 gallons, which is nearly 30 gallons off!
Formula Scaling
This technique has the potential to be one of the most powerful scaling methods, however it is often a resource hog and most data acquisition systems storing data at high rates cannot keep up with this process. For data acquisition systems that cannot perform formula scaling there are two alternatives:

Storing raw values and applying the required formulas to the data after the data has been saved from data acquisition system. This can typically be done in a piece of software such as Microsoft Excel.

Using a programmable signal calculator like the 2289 from PR Electronics. This type of device can be configured to process multiple inputs via a userdefined formula and provide a linear output for another data acquisition system.
There are numerous potential uses for formula scaling. We will cover two possible scenarios for this technique: vertical cylinder tank volume and differential pressure.
Example 1
For a vertical cylinder tank, the fill volume can be calculated by the formula ‘V = π r^{2} f ‘ where

V is the volume filled,

r is the radius of the tank, and

f is the fill height.
Let’s say that our tank has a diameter of 5 ft. and a height of 10 ft. Again, let’s use the Acculevel for our example with a 0...10ftWC range and 0...5V DC output. The Acculevel is giving us our fill height or f. From this fill height we can directly calculate the fill volume or V. We will be using some of the same methods for linear scaling to get our f and applying the calculations on top of that.

We will first calculate the linear scaling for the fill height or f. I’m going to skip a few steps since we covered this in the first section.
y = f = 2x, where x is the voltage output of the sensor.

Now we can replace the f in the vertical cylinder tank formula with 2x.
V = π r^{2} f = π (2.5)^{2} (2x) = π 12.5x
Example 2
The second scenario that we are going to use to explain the technique of formula scaling is differential pressure. There are obviously a number of differential pressure sensors out there that give a linear output, but from experience I can tell you that there is are a lot of uses for this method of calculating differential pressure.
In this example we will use two of the Valueline transmitters with a 0...100 PSI range and 0...10V DC output. One will be placed inside a pressurized vessel submerged below water and the other will be placed outside of this vessel. The differential pressure will determine the amount of force that is being exerted on the walls of the vessel.
The calculations here are very simple. Simply subtract one from the other.
P_{differential} = P_{external}  P_{internal}
Conclusion
There three most commonly used techniques for scaling sensor outputs are linear scaling, mapped scaling and formula scaling. As you can see, there are many instances in which more than one of these techniques can work and the best choice usually depends on the hardware that you’re working with.
Linear scaling is the easiest to work with, however sensors with linear outputs tend to be more expensive as additional hardware is required to linearize the raw output from the transducer.
Mapped scaling is used more often than we tend to even notice. Any time a resistive temperature sensor is giving you a temperature reading, mapped scaling is at work somewhere along the line.
Formula scaling is the very powerful, but requires hardware intensive processes that can be troublesome when working with high sampling rates.