Hey, Ralph. The best way to go about this is to CC the combustion chambers and the piston crowns, figure-in headgasket thickness, and all that racer stuff that uses exotic tools, burettes/pipettes, and such.
Then there's the best-guess estimate system. Warning: Math coming...
Using:
Vc as the compressed chamber volume
Vs as the 'stroked' volume
Vt as the Total Volume
CR as the Compression Ratio
Then:
Vt = Vs + Vc
CR = Vt / Vc
Since your issue is to change compression ratio by shaving the piston, we want to isolate and solve for a change to Vc, since Vs will remain the same, and CR will change
CR = (Vs + Vc) / Vc
CR = (Vs / Vc) + (Vc / Vc)
CR = (Vs / Vc) + 1
Now, isolate Vc:
CR - 1 = Vs / Vc
Vc * (CR - 1) = Vs
Vc = Vs / (CR - 1)
Knowing the Stroked Volume and the initial (advertised) Compression Ratio, we can 'reverse-engineer' the configuration and derive the Compressed Chamber Volume. For example, suppose this is an 80mm piston on a 74mm stroke, and the advertised Compression Ratio is 10.5:1 (which is simply 10.5). Then (computing in CC's):
Vs = π/4 * 80 * 80 * 74 / 1000
Vs = 371.965 cc
Vc = 371.965 / (10.5 - 1)
Vc = 371.965 / 9.5
Vc = 39.154cc
Now, do the same 'solve for Vc' using CR = 9.5
Vc = 371.965 / (9.5 - 1)
Vc = 371.965 / 8.5
Vc = 43.761cc
Find the difference:
43.761 - 39.154 = 4.607cc
So, in this example, you would want to shave off 4.607cc worth of aluminum from the piston. If working with a true spherical dome, you calculate the 'chord of cut' to remove that amount. Or, you could carefully file/grind off the top, save the filings, and precisely weigh the filings (knowing the specific gravity or density of the alloy) until the proper amount has been removed. Or, you could use the Archimedes principle to measure the before and after volume of the piston.
If you want to also throw variances in head and base gasket thicknesses into this mix, you can, but it involves more math.
This should give folks a better appreciation of why good race engine builders are hard to find...