General question

I work on the plane where I have a two-dimensional shape $V$ that is cut in a collection of parts $\{V_i\}$ that do not overlap

$ V_i ~~\text{s.t.}~~ \bigcup_i \overline{V}_i = \overline{V} ~~\text{and}~~ \bigcap_i V_i = \{\emptyset\} $

I know the value of the integral of a scalar field $q(\pmb{x})$ over each part $V_i$

$ \int_{V_i} q(\pmb{x}) \, \pmb{dx} ~~ \text{known for all \(i\)} $

and I would like to get an estimation of the field $q(\pmb{x})$ for any point $\pmb{x}$ of space.

What methods can do that?

My particular case

Here is an example of the shape $V$ cut into non-overlapping (triangular) subshapes $\{V_i\}$:
enter image description here

where the colors in the plot corresponds to the value of a packing factor $P(V_i)$ calculated from a characteristic function $\chi$ as $ P(V_i) := \frac{\int_{V_i} \chi(\pmb{x})}{\int_{V_i} 1} $

I would like to find a function $p$ such that $ P(V_i) = \int_{V_i} p(\pmb{x}) ~~ \forall i $
Of course, being in a general 2D case, there is no such thing as a primitive function… How can I estimate function $p$?


2 Answers 2


There are infinite functions that have the same integral over a given domain, so you would need to make assumptions on the type of functions that you want to allow.

The easiest approach that comes to my mind is assuming a constant function in each cell, then

$$p_i \equiv p(x) = \frac{P(V_i)}{V_i} \quad \forall x \in V_i\, .$$

Then you can use this information to obtain the values for $p(x)$ in other regions of interest for you. For example:

  1. You can average the values from neighboring cells to the nodes to have a piece-wise linear approximation of $p(x)$.

  2. You could compute the Voronoi dual of your triangulation and use an interpolation where $p_i$ is assigned to each centroid.

  3. Do a non-local interpolation with the values.

You could also use another assumption for the behavior of $p(x)$ and enforce some properties using an optimization approach, but I will first try the approach suggested above.

  • $\begingroup$ Many thanks for your answer @nicoguaro ! Could you develop a bit more (i.e. give some examples) what you mean by "non-local interpolation"? It seems to be a rather broad family of methods, and looking this up, I find mostly research on image denoising… $\endgroup$ Jul 8, 2019 at 15:25
  • 1
    $\begingroup$ Also, I really like the idea of approach 2, but I wonder if I understood you correctly as it seems to me that it won't preserve the $\int_{V_i} p(\pmb{x})$ integrals? If I set $p_i$ values at each summit then any point $\pmb{x}$ between those summits will have a $p(\pmb{x})$ value higher than $\min(p_i)$ and lower than $\max(p_i)$, right? So in some of the triangular cells, the average integral of the $p(\pmb{x})$ will necessarily be lower than its $p_i$ although the latter is supposed to be an average, wouldn't it? Unless you meant something different? $\endgroup$ Jul 8, 2019 at 15:36
  • $\begingroup$ @GaelLorieul, regarding your first comment … it is a broad suggestion. You can use a Lagrange interpolation, but it would not be advisable. You could also use some splines of some sort (I think). In any case, you should keep in mind that it would work fine for the convex hull of the centres of the triangles, but you would need to use some kind of extrapolation for the external cases. $\endgroup$
    – nicoguaro
    Jul 8, 2019 at 16:15
  • 1
    $\begingroup$ Regarding your second comment … I think that you are right. Although, there might be a particular interpolation that satisfy that property, but I am not aware of it in an explicit scheme. $\endgroup$
    – nicoguaro
    Jul 8, 2019 at 16:18

I think there's a couple of questions here:

  1. How can we estimate $q$ for any point inside the support and

  2. how can we estimate $q$ for any point outside the support.
    For 1, I'd try taking some inspiration from the Radon transformation, in particular, something like Algebraic reconstruction

Discretize the support into a whole bunch of points $x_i$; we'll try to recover $q(x_i)$. Use the values of the integrals to get linear constraints for $\sum_j a_{ij} q(x_j) = \int_{V_i} q$. This will be under-determined, so add in a smoothness penalty to bound $\frac{q(x_i)-q(x_j)}{x_i-x_j}$ for neighboring $x_i$, $x_j$, and whatever other bounds you thing might be fun. Plug it all into your favorite solver and see what comes out.

For 2., that's going to be a lot harder, but maybe once you have a solution for 1. you can try kriging.

  • 1
    $\begingroup$ Thanks for your answer @JCK ! I read it a little while back, but I have a bit of trouble understanding what you mean… So I gave it another go this morning. To start, when you mention a "support", you are refering to the support of what? The support of $q$, that is $V$, or the support of restrictions of $q$, that could be each individual $V_i$ or unions of a few $V_i$? When you are applying a Radon transform, are you performing it on the whole shape $V$ or on each (or few) of its components $V_{i}$ ? $\endgroup$ Jul 22, 2019 at 14:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.