Abstract
Sparse arrays can fix array aperture with a reduced number of elements to maintain resolution while reducing cost. However, grating lobe suppression, high peak side-lobe level reduction (PSLL), and constraints on the location of the array elements in the practical deployment of arrays are challenging problems. Based on simulated annealing, the element locations of a sparse planar array in smart ocean applications with minimum spacing and geographic constraints are optimized in this paper by minimizing the sum of PSLL. The robustness of the deployment-optimized spare planar array with mis-calibration is further considered. Numerical simulations show the effectiveness of the proposed solution.
1. Introduction
Sensor and antenna arrays play an important role in fields such as radar and sonar due to their higher processing gain and angular resolution; moreover, they are often employed in smart ocean applications for collecting information, positioning and communication. Recently, large-aperture arrays have been used widely for long-range acoustic communication in deep water [1], continuous monitoring of fish populations [2], as well as in detection, localization and classification of mechanized ocean vessels [3,4], etc. However, large-aperture arrays always require many elements with higher cost, and the deployment, impact on the ecological environment, energy supply, and maintenance of a large number of elements in the ocean are challenging problems. Therefore, sparse arrays with fewer elements are increasingly attracting interest in many applications such as target localization, ocean acoustic remote sensing [5], and passive underwater imaging [6]. In particular, sparse arrays are expected to be a potential scheme for seafloor observatory networks in oceanic engineering, radar and sonar systems with distributed arrays, etc. Furthermore, sparse arrays and optimization can also be used in the node deployment of large-scale underwater acoustic sensor networks [7,8,9] and the optimal experimental design [10,11].
A sparse array can fix array aperture with a smaller number of elements to maintain angular resolution while reducing cost. However, sparse arrays face challenges such as grating lobe suppression, high peak side-lobe level (PSLL) reduction, and even some constraints on the location of elements in the practical deployment of the array. The optimization of a sparse array is, thus, assumed to deploy its limited elements for grating lobe and peak side-lobe suppression, which is a nonlinear problem with multi-parameters, i.e., the location of every element in the sparse array. Many approaches have been proposed to solve the nonlinear optimization problem, such as particle swarm optimization (PSO) [12,13], genetic algorithms (GAs) [14,15,16], simulated annealing (SA) [17], and Bayesian compressive sampling (BCS) [18]. Certainly, some other optimization methods, such as adaptive step size random search [19], orthogonal parallel MCMC [20], and Markov chain Monte Carlo maximum likelihood [21] could also be expected to be a potential scheme for the optimization of sparse arrays. However, much research in past years has often assumed that in optimization there are no constraints on the location of array elements, which is often not the case. In practical applications, due to the minimum spacing of array elements, some optimized locations may not suitable. Therefore, a constraint on the minimum spacing between adjacent array elements needs to be imposed in the optimization [22,23]. Furthermore, in complex geographical environments on the seafloor, there are some areas in which the array elements cannot be deployed due to obstacles, e.g., ridges, trenches and boulders. Thus, a special geographic constraint must be considered for the practical applications. A method of designing sparse linear arrays (SLAs) under geographic constraints was presented in Ref. [24], but it did not consider the constraints for a sparse planar array (SPA). Generally, the size and shape of obstacles mathematically described by the geographic constraints are not fixed or even arbitrary, thus the optimization of element locations depends on the corresponding geographic constraints, and the specific adjustment for each individual obstacle is required. However, the optimization of sparse planar arrays with the minimum spacing constraints in [25,26,27,28,29] does not have the capacity to make such adaptive adjustment. In particular, sparse planar arrays are widely used for DOA estimation, have great potential for target detection and 3-D sonar imaging [30], and are more likely to face challenges due to obstacles because of their large size.
Distributed arrays are now used widely in radar and sonar systems for better performance in target detection and tracking. To achieve high accuracy in DOA estimation, many methods have been proposed, such as the ESPRIT-based algorithm [31], the 2D DOA estimation algorithm [32], and the SePDAF-based tracking method [33]. In fact, distributed arrays can be treated as sparse arrays, which will suffer cyclic ambiguity in their angle estimates, according to the spatial Nyquist sampling theorem. Thus, the optimization of sparse arrays has potential applications in the deployment of distributed array radar and sonar systems.
This paper presents the optimization of a sparse planar array in smart ocean applications with minimum spacing and geographic constraints, where the cost function is defined as the sum of PSLL for different beam shifting directions, and simulated annealing is assumed for optimization with many parameters and constraints. In particular, these two types of constraints in optimization are independently implemented in the direction of the y-axis and x-axis, respectively. Thus, the possible mutual coupling effects could be effectively avoided. Furthermore, the optimization of sparse planar arrays focuses on the deployment of array elements, which means that the location of the elements is the critical factor for a deployment-optimized sparse planar array, and the array’s performance may be sensitive to mis-calibration in practical applications. Thus, with robust adaptive beamforming used for verification, it is shown that an effective DOA estimation can be performed with a deployment-optimized sparse planar array.
2. Problem Formulation
2.1. Sparse Planar Arrays
Consider a sparse planar array with elements in a given area of . The array element locations are denoted by . The element at serves as the reference element. Without loss of generality, we let . The phase difference of arrival between the reference element and the element is Ref. [34]:
where is the signal wavelength, and and are the elevation and azimuth angles, respectively. If an array in the 3-D space is considered, we have [34]:
where denotes the element location on the z-axis.
Every Sonar or Radar in a distributed array system can be treated as a subarray of a sparse array, where all element locations of every subarray can be clustered and described by . , and are the distance between the reference element and the element of the nth subarray in the x-, y-, and z-axes, respectively, and are generally known. Thus, only need to be optimized in the deployment of the distributed array system.
2.2. Cost Function
To improve the overall performance of a sparse planar array in different beam shifting directions but with acceptable computational complexity, the sum of PSLL sampled at some scanning angles is generally taken for optimization [24,27,28,29]. The steering vector is described as:
Then:
where denotes the beampattern when the peak of the main-lobe is at . The scanning angles and are uniformly sampled in and , respectively, i.e., , . The sum of PSLL is defined as:
where the region of and for which is valid excluding the main beam; thus, the optimization of sparse planar array can be performed by minimizing the sum of PSLL below:
where are the estimates of element locations of the sparse planar array, and .
2.3. Constraints
In practical applications, a sparse array is often chosen for high angular resolution with a smaller number of elements, where the minimum spacing between two elements is generally larger than . In fact, there may be no alternative in many scenarios, e.g., mutual coupling [13], element size larger than , etc. The constraint can be mathematically written as:
where is the minimum spacing between two elements. For convenience of optimization implementation, the minimum spacing constraint shown in Equation (7) is rewritten as:
which is the Chebyshev distance [27,28,29] between two elements. It is easy to prove that the minimum spacing constraint in Equation (7) is true when the requirement in Equation (8) is met, then the adjustment of the element locations in the optimization with the minimum spacing constraint can be done in only one direction (x- or y-axis), which would improve the diversity of element distribution and computational efficiency.
There may be hills, rivers, boulder, oceanic ridges and trenches, etc. in the given area, which are obstacles for array deployment; thus, geographic constraints must be considered for the optimization of a large-sized sparse planar array. In this paper, geographic obstacles are approximated in shape by their bounding rectangles, and mathematically written as:
where is the number of obstacles in the given area of . The obstacle is described mathematically by . and are its ranges along the x- and y-axes, respectively, and and denote union and intersection, respectively, in set theory. The detailed mathematical description of the obstacles with other more complex shapes is shown in Ref. [35].
3. Constrained Optimization via Simulated Annealing
3.1. Implementation of Constraints in Optimization
The minimum spacing and geographic constraints in optimization would be independently implemented in the direction of the y-axis and x-axis, respectively.
Suppose the adjustment of element locations with the minimum spacing constraint given in Equation (8) is done in the direction of the y-axis. At the iteration in optimization, the element locations in the y-axis are expressed as:
where denotes the nominal location in the y-direction of the nth elements and ,. In optimization, and are fixed, thus , , where operator means ‘identically equal’. uniformly distributed random numbers in the interval are generated and then sorted in the ascending order as the initialized values . Thus, .
At the iteration in optimization, is always updated in the interval , i.e.,:
is reserved for elements and then the minimum spacing for every two adjacent element is imposed in the direction of the y-axis as in Equation (10). Therefore, is certainly in the interval . Meanwhile:
and any two elements are separated by at least .
Equations (10)–(13) make could be always deployed in . But the optimization is based on , which ensure the minimum spacing constraint is always satisfied but the implementation of optimization is simple and flexible.
At the iteration in optimization with the geographic constraint, similarly, the element locations in the x-direction are first expressed as:
where denotes the nominal locations in the x-direction of the element and , and are fixed in optimization, thus , . The initialized values , are random numbers uniformly distributed in the interval , Thus, .
At the iteration in optimization, the implementation of the geographic constraint is shown in Algorithm 1, where is always updated in the interval .
| Algorithm 1. Implementation of Geographic Constraint |
| 1 for to do |
| 2 for to do |
| 3 if and then |
| 4 |
| 5 if then |
| 6 |
| 7 end if |
| 8 end if |
| 9 end for |
| 10 end for |
The geographic constraint is independently implemented in the direction of the x-axis. Thus, no matter how the elements move in the direction of the x-axis, the implementation of the geographic constraint in optimization does not conflict with that of the minimum spacing constraint. The elements cannot be deployed in , which is the mathematical description of the obstacle. With the if-then mode in Table. 1, the element could be moved from the area of the obstacle.
3.2. Optimization via Simulated Annealing
Simulated annealing [17,36] is a probabilistic technique often used for approximating the global optimum of a given function depending on many parameters, e.g., array element locations in this paper. The optimization of a sparse planar array with minimum spacing and geographic constraints via simulated annealing is summarized in Algorithm 2.
where returns a uniformly distributed random number [36] in the interval .
| Algorithm 2. Optimization via Simulated Annealing |
| Initialization: , , , |
| 1 , , compute as in Equation (5) with and |
| 2 for to do |
| 3 for to do |
| 4 |
| 5 |
| 6 , , compute as in Equation (5) with and |
| 7 |
| 8 if then |
| 9 , , , , |
| 10 else |
| 11 |
| 12 if then |
| 13 , , , , |
| 14 end if |
| 15 end if |
| 16 end for |
| 17 , , , , |
| 18 |
| 19 end for |
| 20 , |
4. Simulation Results
Assume that the SPA will be deployed in a geographic area of , where and . The total number of elements . The signal wavelength is 3 and the minimum spacing constraint . The total number of uniformly sampled elevation and azimuth scanning angles are both 7, i.e., , the initial temperature is 100, and the iteration number in optimization is 1800. Three obstacles are considered, i.e., .
Two sparse planar arrays with random and optimized deployment are shown in Figure 1a. The elements of both sparse planar arrays are not located in areas corresponding to geographic constraints, and the minimum spacing between any two adjacent elements is greater than . The beampattern of the optimized sparse planar array when the peak of the main-lobe is at is given in Figure 1b. Figure 1c shows the beampatterns in , and planes whose PSLLs are −12.9 dB, −9.69 dB and −11.76 dB, respectively. It is shown the optimization of sparse planar arrays with minimum spacing and geographic constraints is successfully implemented in Figure 1a–c. The good convergences of the fitness value ( in Equation (5)) versus the number of iterations through 10 trials are shown in Figure 1d.
Figure 1.
(a) The 21-element sparse planar arrays with random and optimized deployment that satisfy the minimum spacing and geographic constraints. (b) The beampattern of the optimized sparse planar array when the peak of the main-lobe is at . (c) The beampatterns in , , and planes. (d) The convergences of the fitness value versus the number of iterations through 10 trials.
Figure 2a,b illustrate the beampatterns of the optimized sparse planar array (OSPA), respectively by the proposed solution and PSO [12,13,24], random sparse planar array (RSPA) without optimization, and uniform planar array (UPA) in and planes. The UPA has 275 elements and is also deployed in the same area. It is shown that their main-lobe beam widths are almost at the same level, which means that the spare planar array can have a larger array aperture with a smaller number of elements for high angular resolution. The PSLLs of beampatterns versus different beam shifting directions for the UPA, the RSPA, and the OSPA optimized by the proposed solution and PSO in and planes are illustrated in Figure 2c,d. In Figure 2, the side-lobe level of the OSPA is higher than that of the UPA but significantly lower than that of the RSPA. Generally, the low side-lobe level is very important for interference suppression in target localization.
Figure 2.
The beampatterns of the RSPA, the UPA and the OSPA by the proposed solution and PSO in (a) the plane (the main-lobe is at ) and (b) the plane (the main-lobe is at ). The PSLLs of beampatterns versus different beam shifting directions in the (c) , and (d) planes.
5. Robustness of a Deployment-Optimized SPA
The optimization of a sparse planar array with minimum spacing and geographic constraints yields a distribution of elements optimized for high angular resolution and low side-lobe level, which means that the performance of the optimized sparse planar array in practical applications may be sensitive to mismatching, e.g., mis-calibration in hydrophone arrays or distributed underwater acoustic sensor networks, in which case the array deployment would have extremely strict accuracy requirements for the location of elements. Thus, the robustness of the deployment-optimized sparse planar array against mismatching is further considered in this paper.
Assume that the observation received by the sparse planar array in the presence of additive white Gaussian noise (AWGN) can be expressed by:
where is the steering matrix, and and correspond to the signals and noise, respectively.
The standard Capon beamformer (SCB) and robust Capon beamformer (RCB) are always taken together for performance comparison when the mismatching occurs. Generally, the RCB belongs to the class of diagonal loading techniques [37]. The SCB has the optimal weight , and the weight vector of RCB is generally given by:
where is the covariance matrix estimate of and , is the number of snapshots. in Equation (16) is the diagonal loading value and can be often effectively determined as follows [38]:
where means the standard deviation and means the diagonal elements of a matrix. In this paper, we let .
The performance comparison is given in Figure 3a,b, where standard Capon beamforming (SCB) without mis-calibration, SCB with mis-calibration, and robust Capon beamforming (RCB) with mis-calibration are presented. The mis-calibration in simulations is assumed to have a Gaussian distribution with a standard deviation of Δd/2. The elements are illustrated in Figure 3c. It is shown the OSPA with miscalibration still has good performance by taking the robust adaptive beamforming. Figure 3d shows the beampatterns of RCB with mis-calibration through 10 trials.
Figure 3.
Comparison of the beampatterns in the (a) and (b) plane of the SCB without mis-calibration, the SCB and the RCB with mis-calibration. (c) The elements’ locations with and without mis-calibration. (d) The beampatterns of RCB with mis-calibration through 10 trials.
6. Conclusions
In this paper, the optimization of SPAs in smart ocean applications with minimum spacing and geographic constraints has been presented, where the cost function is defined as the sum of PSLL for different beam shifting directions and simulated annealing has been used for the optimization. The implementation of these constraints in optimization is also given. Furthermore, the robustness of the deployment-optimized SPA against mis-calibration of the array in practical applications is also verified. Simulations show that the optimized SPA is effective for the DOA estimation.
Author Contributions
Conceptualization, S.H., F.-X.G., X.Y. and G.C.; Data curation, S.H.; Investigation, S.H.; Methodology, S.H., F.-X.G., X.Y. and G.C.; Software, S.H.; Validation, F.-X.G.; Writing—original draft, S.H.; Writing—review & editing, F.-X.G. and L.M.
Funding
This work was supported in part by the National Natural Science Foundation of China under Grants 61571048 and 61431004, and in part by the Key Laboratory of Acoustic Environment, Institute of Acoustics, Chinese Academy of Sciences and Acoustic Science and Technology Laboratory, Harbin Engineering University.
Conflicts of Interest
The authors declare no conflicts of interest.
References
- Song, H.; Cho, S.; Kang, T.; Hodgkiss, W.; Preston, J. Long-range acoustic communication in deep water using a towed array. J. Acoust. Soc. Am. 2011, 129, 71–75. [Google Scholar] [CrossRef] [PubMed]
- Makris, N.C.; Ratilal, P.; Symonds, D.T.; Jagannathan, S.; Lee, S.; Nero, R.W. Fish population and behavior revealed by instantaneous continental shelf-scale imaging. Science 2006, 311, 660–663. [Google Scholar] [CrossRef]
- Huang, W.; Wang, D.; Garcia, H.; Godø, O.R.; Ratilal, P. Continental shelf-scale passive acoustic detection and characterization of diesel-electric ships using a coherent hydrophone array. Remote Sens. 2017, 9, 772. [Google Scholar] [CrossRef]
- Zhu, C.; Garcia, H.; Kaplan, A.; Schinault, M.; Handegard, N.; Godø, O.; Huang, W.; Ratilal, P. Detection, localization and classification of multiple mechanized ocean vessels over continental-shelf scale regions with passive ocean acoustic waveguide remote sensing. Remote Sens. 2018, 10, 1699. [Google Scholar] [CrossRef]
- Wang, D.; Ratilal, P. Angular resolution enhancement provided by nonuniformly-spaced linear hydrophone arrays in ocean acoustic waveguide remote sensing. Remote Sens. 2017, 9, 1036. [Google Scholar] [CrossRef]
- Trucco, A.; Martelli, S.; Crocco, M. Passive underwater imaging through optimized planar arrays of hydrophones. In Proceedings of the 2014 Oceans-St. John’s Conference, St. John’s, NL, Canada, 14–19 September 2014. [Google Scholar]
- Han, G.; Qian, A.; Zhang, C.; Wang, Y.; Rodrigues, J.J. Localization algorithms in large-scale underwater acoustic sensor networks: A quantitative comparison. Int. J. Distrib. Sens. Netw. 2014, 10, 379382. [Google Scholar] [CrossRef]
- Han, G.; Jiang, J.; Shu, L.; Xu, Y.; Wang, F. Localization algorithms of underwater wireless sensor networks: A survey. Sensors 2012, 12, 2026–2061. [Google Scholar] [CrossRef]
- Han, G.; Li, S.; Zhu, C.; Jiang, J.; Zhang, W. Probabilistic neighborhood-based data collection algorithms for 3D underwater acoustic sensor networks. Sensors 2017, 17, 316. [Google Scholar] [CrossRef]
- Busby, D. Hierarchical adaptive experimental design for Gaussian process emulators. Reliab. Eng. Syst. Saf. 2009, 94, 1183–1193. [Google Scholar] [CrossRef]
- Martino, L.; Vicent, J.; Camps-Valls, G. Automatic emulator and optimized look-up table generation for radiative transfer models. In Proceedings of the 2017 IEEE International Geoscience and Remote Sensing Symposium (IGARSS), Fort Worth, TX, USA, 23–28 July 2017. [Google Scholar]
- Khodier, M.M.; Christodoulou, C.G. Linear array geometry synthesis with minimum sidelobe level and null control using particle swarm optimization. IEEE Trans. Antennas Propag. 2005, 53, 2674–2679. [Google Scholar] [CrossRef]
- Bhattacharya, R.; Bhattacharyya, T.K.; Garg, R. Position mutated hierarchical particle swarm optimization and its application in synthesis of unequally spaced antenna arrays. IEEE Trans. Antennas Propag. 2012, 60, 3174–3181. [Google Scholar] [CrossRef]
- Haupt, R.L. Thinned arrays using genetic algorithms. IEEE Trans. Antennas Propag. 1994, 42, 993–999. [Google Scholar] [CrossRef]
- Yan, K.K.; Lu, Y. Sidelobe reduction in array-pattern synthesis using genetic algorithm. IEEE Trans. Antennas Propag. 1997, 45, 1117–1122. [Google Scholar]
- Cen, L.; Ser, W.; Yu, Z.L.; Rahardja, S. An improved genetic algorithm for aperiodic array synthesis. In Proceedings of the 2008 IEEE International Conference on Acoustics, Speech and Signal Processing, Las Vegas, NV, USA, 31 March–4 April 2008; pp. 2465–2468. [Google Scholar]
- Trucco, A.; Murino, V. Stochastic optimization of linear sparse arrays. IEEE J. Ocean. Eng. 1999, 24, 291–299. [Google Scholar] [CrossRef]
- Lin, J.C.; Ma, X.C.; Yan, S.F.; Jiang, L. Pattern synthesis of sparse linear array by off-grid Bayesian compressive sampling. Electron. Lett. 2015, 51, 2141–2143. [Google Scholar] [CrossRef]
- Schumer, M.A.; Steiglitz, K. Adaptive step size random search. IEEE Trans. Autom. Control 1968, 13, 270–276. [Google Scholar] [CrossRef]
- Martino, L.; Elvira, V.; Luengo, D.; Corander, J.; Louzada, F. Orthogonal parallel MCMC methods for sampling and optimization. Digit. Signal Process. 2016, 58, 64–84. [Google Scholar] [CrossRef]
- Geyer, C.J. Markov Chain Monte Carlo Maximum Likelihood; Interface Foundation of North America: Fairfax Station, VA, USA, 1991. [Google Scholar]
- Hawes, M.B.; Liu, W. Location optimization of robust sparse antenna arrays with physical size constraint. IEEE Antennas Wirel. Propag. Lett. 2012, 11, 1303–1306. [Google Scholar] [CrossRef]
- Hawes, M.B.; Liu, W. Compressive sensing-based approach to the design of linear robust sparse antenna arrays with physical size constraint. IET Microw. Antennas Propag. 2014, 8, 736–746. [Google Scholar] [CrossRef]
- Yu, X.; Cui, G.; Yang, S.; Kong, L.; Yi, W. Coherent unambiguous transmit for sparse linear array with geography constraint. IET Radar Sonar Navig. 2017, 11, 386–393. [Google Scholar] [CrossRef]
- Yan, C.; Yang, P.; Xing, Z.; Huang, S.Y. Synthesis of planar sparse arrays with minimum spacing constraint. IEEE Antennas Wirel. Propag. Lett. 2018, 17, 1095–1098. [Google Scholar] [CrossRef]
- Pinchera, D.; Migliore, M.D.; Panariello, G. Synthesis of large sparse arrays using IDEA (inflating-deflating exploration algorithm). IEEE Trans. Antennas Propag. 2018, 66, 4658–4668. [Google Scholar] [CrossRef]
- Chen, K.S.; Yun, X.H.; He, Z.S. Synthesis of sparse planar arrays using modified real genetic algorithm. IEEE Trans. Antennas Propag. 2007, 55, 1067–1073. [Google Scholar] [CrossRef]
- Liu, H.; Zhao, H.; Li, W.; Liu, B. Synthesis of sparse planar arrays using matrix mapping and differential evolution. IEEE Antennas Wirel. Propag. Lett. 2016, 15, 1905–1908. [Google Scholar] [CrossRef]
- Dai, D.; Yao, M.; Ma, H.; Jin, W.; Zhang, F. An asymmetric mapping method for the synthesis of sparse planar arrays. IEEE Antennas Wirel. Propag. Lett. 2018, 17, 70–73. [Google Scholar] [CrossRef]
- Impagliazzo, J.M.; Kay, S.M.; Chiang, A.M.; Broadstone, S.R. Sparse array technology for 3-D sonar imaging systems. J. Acoust. Soc. Am. 1999, 106, 2296–2297. [Google Scholar] [CrossRef]
- Wong, K.T.; Zoltowski, M.D. Direction-finding with sparse rectangular dual-size spatial invariance array. IEEE Trans. Aerosp. Electron. Syst. 1998, 34, 1320–1336. [Google Scholar] [CrossRef]
- Cheng, Z.F.; Zhao, Y.B.; Li, H.; Shui, P.L. Two-dimensional DOA estimation algorithm with co-prime array via sparse representation. Electron. Lett. 2015, 51, 2084–2086. [Google Scholar] [CrossRef]
- Long, T.; Zhang, H.; Zeng, T.; Chen, X.; Liu, Q.; Zheng, L. Target tracking using SePDAF under ambiguous angles for distributed array radar. Sensors 2016, 16, 1456. [Google Scholar] [CrossRef] [PubMed]
- Mailloux, R.J. Phased Array Antenna Handbook; Artech House: Norwood, MA, USA, 2017; pp. 12–17. [Google Scholar]
- Salomon, K.B. An efficient point-in-polygon algorithm. Comput. Geosci. 1978, 4, 173–178. [Google Scholar] [CrossRef]
- Kirkpatrick, S.; Gellatt, C.D., Jr.; Vecchi, M.P. Optimization by simulated annealing. Science 1983, 220, 671–680. [Google Scholar] [CrossRef] [PubMed]
- Li, J.; Stoica, P. Robust Adaptive Beamforming; John Wiley & Sons: Hoboken, NJ, USA, 2005. [Google Scholar]
- Ma, N.; Goh, J.T. Efficient method to determine diagonal loading value. In Proceedings of the 2003 IEEE International Conference on Acoustics, Speech, and Signal Processing, Hong Kong, China, 6–10 April 2003. [Google Scholar]
© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).