Hi @benoist,
If I good understand, you want to estimate the cross section during the orbit determination process ?
If the answer of the previous question is yes, there is no solar radiation pressure model in Orekit able to estimate the cross section. You have to create it 
An important point is that, in Orekit, parameters that can be estimated during an orbit determination process must be defined as ParameteDriver
. So the goal is to create a custom radiation model where the cross section is a ParameterDriver instead of a simple double
value.
To create your custom model you can take example of the IsotropicRadiationClassicalConvention
class and create a new CustomIsotropicRadiation
class. However, instead of defining absorptionParameterDriver
and reflectionParameterDriver
as ParameterDriver
you can define them as double
values (if you do not want to estimate them). In this new implementation, crossSection
is now a ParameterDriver
.
/** Driver for absorption coefficient. */
private final double absorptionParameterDriver;
/** Driver for specular reflection coefficient. */
private final double reflectionParameterDriver;
/** Cross section (m²). */
private final ParameterDriver crossSection;
Now, you have to initialize the crossSection driver in the model’s constructor.
public CustomIsotropicRadiation(final double crossSection, final double ca, final double cs) {
try {
crossSection = new ParameterDriver(name, referenceValue, scale, minValue, maxValue);
} catch (OrekitException oe) {
// this should never occur as valueChanged above never throws an exception
throw new OrekitInternalError(oe);
}
this.absorptionParameterDriver = ca;
this.reflectionParameterDriver = cs;
}
Here, you have to define name
, referenceValue
, scale
, minValue
and maxValue
parameters.
Don’t forget to update the getRadiationParametersDrivers()
method.
Finally, during the computation of the radiation pressure acceleration, the estimated parameters are store in the double[] parameters
argument. Since you have just one estimated parameter for this model, the cross section is given by parameters[0]
. In the case you have two estimated model parameters, they are given by parameters[0]
and parameters[1]
, the 0 and 1 is defined by the order you use in the getRadiationParametersDrivers()
method. So at the end, the solar radiation acceleration is computed like this:
public Vector3D radiationPressureAcceleration(final AbsoluteDate date, final Frame frame, final Vector3D position,
final Rotation rotation, final double mass, final Vector3D flux,
final double[] parameters) {
final double ca = absorptionParameterDriver;
final double cs = reflectionParameterDriver;
final double kP = parameters[0] * (1 + 4 * (1.0 - ca - cs) / 9.0);
return new Vector3D(kP / mass, flux);
}
I let you implement the “RealFieldElements
” version of the method 
I hope my explanations are clear. ParameterDriver
concept is something difficult to understand in Orekit.
I hope this will help you,
Bryan