- Full paper
- Open Access
Analytical algorithm of weighted 3D datum transformation using the constraint of orthonormal matrix
- Huaien Zeng^{1, 2}Email author
- Received: 3 March 2015
- Accepted: 4 June 2015
- Published: 30 June 2015
Abstract
Based on the Lagrangian extremum law with the constraint that rotation matrix is an orthonormal matrix, the paper presents a new analytical algorithm of weighted 3D datum transformation. It is a stepwise algorithm. Firstly, the rotation matrix is computed using eigenvalue-eigenvector decomposition. Then, the scale parameter is computed with computed rotation matrix. Lastly, the translation parameters are computed with computed rotation matrix and scale parameter. The paper investigates the stability of the presented algorithm in the cases that the common points are distributed in 3D, 2D, and 1D spaces including the approximate 2D and 1D spaces, and gives the corresponding modified formula of rotation matrix. The comparison of the presented algorithm and classic Procrustes algorithm is investigated, and an improved Procrustes algorithm is presented since that the classic Procrustes algorithm may yield a reflection rather than a rotation in the cases that the common points are distributed in 2D space. A simulative numerical case and a practical case are illustrated.
Keywords
- Weighted 3D datum transformation
- Analytical algorithm
- Lagrangian extremum
- Constraint of orthonormal matrix
- Procrustes algorithm
Background
Three-dimensional datum transformation is a frequently used work in geodesy, engineering surveying, photogrammetry, mapping, geographical information science (GIS), machine vision, etc., e.g., Aktuğ (2009), Akyilmaz (2007), El-Mowafy et al (2009), Ge et al (2013), Han and Van Gelder (2006), Horn (1986), Kashani (2006), Neitzel (2010), Paláncz et al (2013), Soler (1998), Soler and Snay (2004), Soycan and Soycan (2008), Zeng (2014). Usually, in order to compute the transformed coordinate, the transformation parameters in the transformation model (e.g., seven-parameter similarity transformation, see Aktuğ 2012, Leick 2004, Leick and van Gelder 1975,) need to be solved with several control points in advance. So far, a large number of algorithms for recovering the parameters have been presented, which can be divided into two classes. One is the numerical iterative algorithm, and the other one is analytical algorithm. The former needs the initial parameter values, linearization, and iterative computation, e.g., Zeng and Tao (2003), Chen et al. (2004), Zeng and Huang (2008), El-Habiby et al. (2009), Zeng and Yi (2011), etc. In the case that the rotation angle is large, the initial values are difficult even never to be obtained in advance, and consequently, it leads to the failure of solution (see Zeng and Yi 2011). We should note that if global optimization algorithms are used, then no initial values are required (see, e.g., Xu 2003a, Xu 2003b, Xu 2002). In contrast, the latter does not involve the initial parameter values, linearization, and iterative computation, and can give the exact solution quickly. However, because of the complexity of mathematical derivation, only several analytical algorithms have been put forward. Grafarend and Awange (2003) presented the Procrustes algorithm which utilized the singular value decomposition technique. Shen et al. (2006) presented a quaternion-based algorithm which utilized the quaternion property and eigenvalue-eigenvector decomposition. Han (2010) presented a stepwise approach to individually calculate the transformation parameters by the physical interpretation of similarity transformation. Zeng and Yi (2010) presented a new analytical algorithm based on the good properties of Rodrigues matrix and Gibbs vector.
The present study is organized as follows. In the Methods section, a new analytical algorithm to weighted 3D datum transformation is derived in detail, based on the Lagrangian extremum law with the constraint that the rotation matrix is an orthonormal matrix. In the meanwhile, its stability is discussed when the distribution of 3D control points degenerates into 2D (planar) or even 1D (collinear). The presented algorithm and classic Procrustes algorithm are compared, and an improved Procrustes algorithm is presented since that the classic Procrustes algorithm may yield a reflection rather than a rotation in the cases that the common points are distributed in 2D space. In the Results and discussion section, a simulative numerical case and a practical case are given to demonstrate the presented algorithm, classic Procrustes algorithm, and improved Procrustes algorithm. Lastly, conclusions are made in the Conclusions section.
Methods
Presentation of the basic algorithm
Obviously, t is the function form of λ and R.
Obviously, λ is the function form of R.
Stability of the basic algorithm and its modification
Comparison to classic Procrustes algorithm and improvement of the classic Procrustes algorithm
The classic Procrustes algorithm presented by Grafarend and Awange (2003) is a well-known analytical algorithm of 3D datum transformation. It is also based on the Lagrangian extremum law, similarly to the presented algorithm in this paper. But differently, it does not constrain the orthonormal matrix condition. For the Procrustes algorithm, due to utilization of the singular value decomposition technique, the computed rotation matrix always satisfies the constraint condition R ^{T} R = I _{3}; however, in the cases that the common points are distributed in a rigid or approximate plane, this situation that det(R) = − 1 rather than det(R) = + 1 usually happens. This means the computed R is a reflection instead of a rotation. For the presented algorithm in this paper, the constraint condition R ^{T} R = I _{3} is imposed in the computation, and thus, it is always satisfied. And in the cases that the common points are distributed in a rigid or approximate plane, the sign ± in Eq. (36) is properly chosen so that det(R) = + 1 is satisfied.
Results and discussion
Simulative case
Simulative true coordinates of control points in system B
Point number | Set 1 (m) | Set 2 (m) | Set 3 (m) | ||||||
---|---|---|---|---|---|---|---|---|---|
x | y | z | x | y | z | x | y | z | |
1 | 10.000 | 30.000 | 5.000 | 10.000 | 30.000 | 5.000 | 10.000 | 30.000 | 57.000 |
2 | 20.000 | 30.000 | 12.500 | 20.000 | 30.000 | 12.500 | 20.000 | 30.000 | 67.000 |
3 | 30.000 | 30.000 | 15.000 | 30.000 | 30.000 | 15.000 | 30.000 | 30.000 | 77.000 |
4 | 10.000 | 20.000 | 9.500 | 10.000 | 20.000 | 42.000 | |||
5 | 20.000 | 20.000 | 11.000 | 20.000 | 20.000 | 52.000 | |||
6 | 30.000 | 20.000 | 10.000 | 30.000 | 20.000 | 62.000 | |||
7 | 10.000 | 10.000 | 14.500 | 10.000 | 10.000 | 27.000 | |||
8 | 20.000 | 10.000 | 4.500 | 20.000 | 10.000 | 37.000 | |||
9 | 30.000 | 10.000 | 4.000 | 30.000 | 10.000 | 47.000 | |||
Point number | Set 4(m) | Set 5 (m) | Set 6 (m) | ||||||
x | y | z | x | y | z | x | y | z | |
1 | 10.000 | 30.000 | 15.000 | 10.000 | 10.000 | 10.000 | 10.000 | 0.000 | 0.000 |
2 | 20.000 | 30.000 | 15.000 | 20.000 | 20.000 | 20.000 | 20.000 | 0.000 | 0.000 |
3 | 30.000 | 30.000 | 15.000 | 30.000 | 30.000 | 30.000 | 30.000 | 0.000 | 0.000 |
4 | 10.000 | 20.000 | 15.000 | 40.000 | 40.000 | 40.000 | |||
5 | 20.000 | 20.000 | 15.000 | 50.000 | 50.000 | 50.000 | |||
6 | 30.000 | 20.000 | 15.000 | 60.000 | 60.000 | 60.000 | |||
7 | 10.000 | 10.000 | 15.000 | 70.000 | 70.000 | 70.000 | |||
8 | 20.000 | 10.000 | 15.000 | 80.000 | 80.000 | 80.000 | |||
9 | 30.000 | 10.000 | 15.000 | 90.000 | 90.000 | 90.000 |
Simulative theoretical values of transformation parameters
ΔX (m) | ΔY (m) | ΔZ (m) | α | β | γ | λ |
---|---|---|---|---|---|---|
30 | 30 | 10 | 71° | 78° | 73° | 1.000016 |
Simulative true coordinates of control points in system A
Point number | Set 1 (m) | Set 2 (m) | Set 3 (m) | ||||||
---|---|---|---|---|---|---|---|---|---|
X | Y | Z | X | Y | Z | X | Y | Z | |
1 | 52.116 | 7.239 | 14.222 | 52.116 | 7.239 | 14.222 | 94.294 | 37.450 | 17.742 |
2 | 58.807 | 9.608 | 24.512 | 58.807 | 9.608 | 24.512 | 103.013 | 41.272 | 28.201 |
3 | 61.443 | 9.072 | 34.463 | 61.443 | 9.072 | 34.463 | 111.732 | 45.093 | 38.659 |
4 | 49.949 | 17.746 | 16.493 | 76.310 | 36.628 | 18.693 | |||
5 | 51.773 | 16.629 | 26.376 | 85.029 | 40.450 | 29.151 | |||
6 | 51.570 | 14.060 | 36.090 | 93.748 | 44.271 | 39.610 | |||
7 | 48.187 | 28.543 | 18.797 | 58.325 | 35.806 | 19.643 | |||
8 | 40.683 | 20.745 | 27.902 | 67.044 | 39.627 | 30.102 | |||
9 | 40.886 | 18.466 | 37.650 | 75.763 | 43.449 | 40.560 | |||
Point number | Set 4(m) | Set 5 (m) | Set 6 (m) | ||||||
X | Y | Z | X | Y | Z | X | Y | Z | |
1 | 60.227 | 13.048 | 14.899 | 44.537 | 25.929 | 18.493 | 30.608 | 28.012 | 19.782 |
2 | 60.835 | 11.060 | 24.681 | 59.073 | 21.858 | 26.985 | 31.216 | 26.023 | 29.563 |
3 | 61.443 | 9.072 | 34.463 | 73.610 | 17.787 | 35.478 | 31.824 | 24.035 | 39.345 |
4 | 54.410 | 20.941 | 16.865 | 88.146 | 13.716 | 43.971 | |||
5 | 55.017 | 18.953 | 26.647 | 102.683 | 9.645 | 52.463 | |||
6 | 55.625 | 16.965 | 36.429 | 117.219 | 5.573 | 60.956 | |||
7 | 48.592 | 28.834 | 18.831 | 131.756 | 1.502 | 69.449 | |||
8 | 49.200 | 26.846 | 28.613 | 146.292 | −2.569 | 77.941 | |||
9 | 49.808 | 24.857 | 38.394 | 160.829 | −6.640 | 86.434 |
Calculated transformation parameters and mean error
Parameters | Set 1 | Set 2 | Set 3 | ||||||
---|---|---|---|---|---|---|---|---|---|
PA | CPA | IPA | PA | CPA | IPA | PA | CPA | IPA | |
ΔX (m) | 30.000215 | 30.000215 | 30.000215 | 29.997125 | 64.907810 | 29.997125 | 29.999564 | 29.884451 | 29.999564 |
ΔY (m) | 30.000014 | 30.000014 | 30.000014 | 29.999418 | −17.354508 | 29.999418 | 30.000156 | 31.848392 | 30.000156 |
ΔZ (m) | 9.999992 | 9.999992 | 9.999992 | 10.000804 | −1.797635 | 10.000804 | 9.999562 | 9.420190 | 9.999562 |
α (°) | 70.998025 | 70.998025 | 70.998025 | 70.994443 | −70.994443 | 70.994443 | 70.999494 | 60.478813 | 70.999494 |
β (°) | 77.999873 | 77.999873 | 77.999873 | 77.996704 | 77.996704 | 77.996704 | 77.999588 | 43.508921 | 77.999588 |
γ (°) | 73.001648 | 73.001648 | 73.001648 | 73.000253 | 73.000253 | 73.000253 | 73.000571 | −89.744632 | 73.000571 |
λ | 1.000012 | 1.000012 | 1.000012 | 1.000049 | 1.000049 | 1.000049 | 1.000025 | 1.000025 | 1.000025 |
ME (m) | 0.000315 | 0.000315 | 0.000315 | 0.000197 | 0.000197 | 0.000197 | 0.000313 | 0.000313 | 0.000313 |
Parameters | Set 4 | Set 5 | Set 6 | ||||||
PA | CPA | IPA | PA | CPA | IPA | PA | CPA | IPA | |
ΔX (m) | 29.999778 | 29.999778 | 29.999778 | 30.000278 | 30.000278 | 30.000278 | 30.000000 | 30.000000 | 30.000000 |
ΔY (m) | 30.000191 | 30.000191 | 30.000191 | 30.000389 | 30.000389 | 30.000389 | 30.000333 | 30.000333 | 30.000333 |
ΔZ (m) | 9.999647 | 9.999647 | 9.999647 | 10.000083 | 10.000083 | 10.000083 | 10.000333 | 10.000333 | 10.000333 |
α (°) | 71.000802 | 71.000802 | 71.000802 | −45.000000 | −35.145218 | −54.854782 | unsolved | −61.858215 | −61.858215 |
β (°) | 78.000742 | 78.000742 | 78.000742 | 16.444350 | −24.651859 | −24.651859 | 77.998588 | 77.998588 | 77.998588 |
γ (°) | 72.999769 | 72.999769 | 72.999769 | 15.645706 | 6.418995 | 6.418995 | 72.998563 | 72.998563 | 72.998563 |
λ | 1.000028 | 1.000028 | 1.000028 | 1.000016 | 1.000016 | 1.000016 | 1.000008 | 1.000008 | 1.000008 |
ME (m) | 0.000294 | 0.000294 | 0.000294 | 0.000296 | 0.000296 | 0.000296 | 0.000407 | 0.000407 | 0.000407 |
Number of solvable transformation parameters
Space | PA | CPA | IPA | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Translation | Angle | Scale | Total | Translation | Angle | Scale | Total | Translation | Angle | Scale | Total | |
3D | 3 | 3 | 1 | 7 | 3 | 3 | 1 | 7 | 3 | 3 | 1 | 7 |
2D | 3 | 3 | 1 | 7 | 0–3 | 0–3 | 1 | 1–7 | 3 | 3 | 1 | 7 |
1D | 3 | 0–2 | 1 | 4–6 | 3 | 0–2 | 1 | 4–6 | 3 | 0–2 | 1 | 4–6 |
Actual case
Coordinates of control points in systems B and A
Station name | System B (local system) (m) | System A (WGS-84) (m) | ||||
---|---|---|---|---|---|---|
x | y | z | X | Y | Z | |
Solitude | 4,157,222.543 | 664,789.307 | 4,774,952.099 | 4,157,870.237 | 664,818.678 | 4,775,416.524 |
Buoch Zeil | 4,149,043.336 | 688,836.443 | 4,778,632.188 | 4,149,691.049 | 688,865.785 | 4,779,096.588 |
Hohenneuffen | 4,172,803.511 | 690,340.078 | 4,758,129.701 | 4,173,451.354 | 690,369.375 | 4,758,594.075 |
Kuehlenberg | 4,177,148.376 | 642,997.635 | 4,760,764.800 | 4,177,796.064 | 643,026.700 | 4,761,228.899 |
Ex Mergelaec | 4,137,012.190 | 671,808.029 | 4,791,128.215 | 4,137,659.549 | 671,837.337 | 4,791,592.531 |
Ex Hof Asperg | 4,146,292.729 | 666,952.887 | 4,783,859.856 | 4,146,940.228 | 666,982.151 | 4,784,324.099 |
Ex Kaisersbach | 4,138,759.902 | 702,670.738 | 4,785,552.196 | 4,139,407.506 | 702,700.227 | 4,786,016.645 |
Calculated transformation parameters (identity weight matrix)
PA | CPA | |||||
---|---|---|---|---|---|---|
Rotation matrix | ||||||
R | 1.0000000000 | 0.0000048146 | −0.0000043328 | 1.0000000000 | 0.0000048146 | −0.0000043328 |
−0.0000048146 | 1.0000000000 | −0.0000048408 | −0.0000048146 | 1.0000000000 | −0.0000048408 | |
0.0000043327 | 0.0000048408 | 1.0000000000 | 0.0000043327 | 0.0000048408 | 1.0000000000 | |
Rotation angles (″) | ||||||
α | −0.998496121 | −0.998496121 | ||||
β | 0.893693325 | 0.893693325 | ||||
γ | 0.993086229 | 0.993086229 | ||||
Translation (m) | ||||||
ΔX | 641.8805 | 641.8805 | ||||
ΔY | 68.6551 | 68.6551 | ||||
ΔZ | 416.3982 | 416.3982 | ||||
Scale | ||||||
λ | 1.000005583 | 1.000005583 | ||||
ME (m) | 0.0773 | 0.0773 |
Point-wise weight matrix
Values | ||||||
---|---|---|---|---|---|---|
2.170137 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 2.097755 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 2.208968 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 2.201671 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 2.182928 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 2.268808 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 2.643404 |
Calculated transformation parameters (point-wise weight matrix)
PA | CPA | |||||
---|---|---|---|---|---|---|
Rotation matrix | ||||||
R | 1.0000000000 | 0.0000047797 | −0.0000043444 | 1.0000000000 | 0.0000047797 | −0.0000043444 |
−0.0000047797 | 1.0000000000 | −0.0000048370 | −0.0000047797 | 1.0000000000 | −0.0000048370 | |
0.0000043443 | 0.0000048371 | 1.0000000000 | 0.0000043443 | 0.0000048371 | 1.0000000000 | |
Rotation angles (″) | ||||||
α | −0.997716185 | −0.997716186 | ||||
β | 0.896085615 | 0.896085615 | ||||
γ | 0.985885069 | 0.985885070 | ||||
Translation (m) | ||||||
ΔX | 641.8395 | 641.8395 | ||||
ΔY | 68.4729 | 68.4729 | ||||
ΔZ | 416.2156 | 416.2156 | ||||
Scale | ||||||
λ | 1.000005611 | 1.000005611 | ||||
Mean error (m) | 0.1140 | 0.1140 |
It is seen from Tables 7 and 9 that the results of PA and CPA are identical if the bias caused by decimal rounding is ignored. Hence, the PA is comparable with CPA.
Conclusions
The numerical case study shows that the presented new algorithm and improved Procrustes algorithm are both stable and reliable for the cases that the control points are distributed in 3D, and 2D including approximate 2D space, and can recover at most two angles as well as all translation and scale parameters for the cases that the control points are distributed in 1D space. The classic Procrustes algorithm also can compute all translation and scale parameters for all the cases that the control points are distributed in 3D, 2D, and 1D spaces; however, it may yield a reflection rather than a rotation in the cases that the common points are distributed in 2D space. The numerical case study also shows the presented algorithm in this paper, and improved Procrustes algorithm is both stable and reliable when the rotation angles are big. And the presented algorithm in this paper is comparable with the classic Procrustes algorithm when the point-wise weight matrix is involved.
Declarations
Acknowledgments
The study is supported by the Open Foundation of Hubei Key Laboratory of Construction and Management in Hydropower Engineering, China Three Gorges University (Grant No. 2014KSD13), the National Natural Science Foundation of China (Grant No. 41104009), the Open Research Fund Program of the Key Laboratory of Geospace Environment and Geodesy, Ministry of Education, China (Grant No. 11-01-04), and the 2015 Open Foundation of the Key Laboratory of Precise Engineering and Industry Surveying, National Administration of Surveying, Mapping, and Geoinformation of China. The author is grateful for the support and good working atmosphere provided by his research team in China Three Gorges University. Last but not the least, the author’s special thanks are given to Dr. Koji Matsumoto and two anonymous reviewers for their valuable comments and suggestions, which enhance the quality of this manuscript.
Authors’ Affiliations
References
- Aktuğ B (2009) Inverse and compound datum/frame transformations. J Surv Eng 135(2):46–55View ArticleGoogle Scholar
- Aktuğ B (2012) Weakly multicollinear datum transformations. J Surv Eng 138(4):184–192View ArticleGoogle Scholar
- Akyilmaz O (2007) Total least squares solution of coordinate transformation. Surv Rev 39(303):68–80View ArticleGoogle Scholar
- Chen Y, Shen YZ, Liu DJ (2004) A simplified model of three dimensional-datum transformation adapted to big rotation angle. Geomat Info Sci Wuhan Uni 29(12):1101–1105Google Scholar
- El-Habiby MM, Gao Y, Sideris MG (2009) Comparison and analysis of non-linear least squares methods for 3-D coordinates transformation. Surv Rev 41(311):26–43View ArticleGoogle Scholar
- El-Mowafy A, Fashir H, Al-Marzooqi Y (2009) Improved coordinate transformation in Dubai using a new interpolation approach of coordinate differences. Surv Rev 41(311):71–85View ArticleGoogle Scholar
- Ge Y, Yuan Y, Jia N (2013) More efficient methods among commonly used robust estimation methods for GPS coordinate transformation. Surv Rev 45(330):229–234View ArticleGoogle Scholar
- Grafarend EW, Awange JL (2003) Nonlinear analysis of the three-dimensional datum transformation [conformal group C7(3)]. J Geod 77:66–76View ArticleGoogle Scholar
- Han JY, Van Gelder HWB (2006) Step-wise parameter estimations in a time-variant similarity transformation. J Surv Eng 132(4):141–148View ArticleGoogle Scholar
- Han JY (2010) Noniterative approach for solving the indirect problems of linear reference frame transformations. J Surv Eng 136(4):150–156View ArticleGoogle Scholar
- Horn BKP (1986) Robot vision. MIT Press, Cambridge, Massachusetts and McGraw-Hill, New YorkGoogle Scholar
- Kashani I (2006) Application of generalized approach to datum transformation between local classical and satellite-based geodetic networks. Surv Rev 38(299):412–422View ArticleGoogle Scholar
- Leick A (2004) GPS satellite surveying, 3d/Ed. Wiley, HobokenGoogle Scholar
- Leick A, van Gelder BHW (1975) On similarity transformations and geodetic network distortions based on Doppler satellite observations. Rep. No. 235. Dept. of Geodetic Science, Ohio State Univ, Columbus, OhioGoogle Scholar
- Neitzel F (2010) Generalization of total least-squares on example of weighted 2D similarity transformation. J Geod 84(12):751–762. doi:10.1007/s00190-010-0408-0 View ArticleGoogle Scholar
- Paláncz B, Awange JL, Völgyesi L (2013) Pareto optimality solution of the Gauss-Helmert model. Acta Geod Geophys 48:293–304View ArticleGoogle Scholar
- Shen YZ, Chen Y, Zheng DH (2006) A quaternion-based geodetic datum transformation algorithm. J Geod 80:233–239View ArticleGoogle Scholar
- Soler T (1998) A compendium of transformation formulas useful in GPS work. J Geodyn 72(7–8):482–490View ArticleGoogle Scholar
- Soler T, Snay RA (2004) Transforming positions and velocities between the International Terrestrial Reference Frame of 2000 and North American Datum of 1983. J Surv Eng 130(2):49–55View ArticleGoogle Scholar
- Soycan M, Soycan A (2008) Transformation of 3D GPS Cartesian coordinates to ED50 using polynomial fitting by robust re-weighting technique. Surv Rev 40(308):142–155View ArticleGoogle Scholar
- Xu PL (2002) A hybrid global optimization method: the one-dimensional case. J Comput Appl Math 147:301–314View ArticleGoogle Scholar
- Xu PL (2003a) A hybrid global optimization method: the multi-dimensional case. J Comput Appl Math 155:423–446View ArticleGoogle Scholar
- Xu PL (2003b) Numerical solution for bounding feasible point sets. J Comput Appl Math 156:201–219View ArticleGoogle Scholar
- Zeng HE (2014) Planar coordinate transformation and its parameter estimation in the complex number field. Acta Geod Geophys 49(1):79–94View ArticleGoogle Scholar
- Zeng HE, Huang SX (2008) A kind of direct search method adopted to solve 3D coordinate transformation parameters. Geomat Info Sci Wuhan Uni 33(11):1118–1121Google Scholar
- Zeng HE, Yi QL (2010) A new analytical solution of nonlinear geodetic datum transformation. In: Proceedings of the 18th International Conference on GeoinformaticsGoogle Scholar
- Zeng HE, Yi QL (2011) Quaternion-based iterative solution of three-dimensional coordinate transformation problem. J of Computers 6(7):1361–1368View ArticleGoogle Scholar
- Zeng WX, Tao BZ (2003) Non-linear adjustment model of three-dimensional coordinate transformation. Geomat Info Sci Wuhan Uni 28(5):566–568Google Scholar
Copyright
This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/4.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly credited.