construcción discursiva de la hegemonía
1.3 Gramsci y el desarrollo de la hegemonía
1.3.1 El desarrollo del concepto de hegemonía dentro del análisis del poder político
The algorithms used for the processing of data in this study are written in the Python programming language. A key advantage of Python is its use of libraries of tools and functions and calling specific routines from the libraries when needed. This allows the user to improve the efficiency of each program. Python provides usability and
troubleshooting improvements over other programming languages. However it can suffer performance losses when working with large datasets.
The processed bathymetric data is first exported as a text file from CARIS HIPS and SIPS2. In the Python environment, a 2D array is created from the bathymetric information.
This array is generated from the known easting and northing values stored in the original text file. This process of creating a 2D array is similar to the process used to create a raster grid in a GIS environment. Each “cell” in the 2D array contains depth information
determined from the original bathymetric data. When creating a bathymetric surface, it is important to note that the maximum resolution achievable is affected by depth, and sonar frequency, which control the density of depth soundings collected on the lake floor. Terrain analysis can be performed on any resolution bathymetric surface, but cell size and analysis scale will influence the analysis (Wilson et al., 2007; Albani et al., 2004).
2.9.1
Calculation of Measures
The processing code used for this study (Appendix B) is divided into two separate programs. The first program reads the bathymetric surface created in CARIS HIPS and SIPS and creates an interpolated surface to fill in any values missing from the data. The
main structure of the code is a large nested for-loop which calculates the measures for each tile. This loop systematically moves from cell to cell in the interpolated surface and fits an (N xN )window to the cell. The coefficients of the bivariate quadratic equation are solved using an LU decomposition. The values for each of the textural features are then
calculated using the equations and methods described in section 2.5. The final step in the first program is to dump the calculated FFVs into a master array that will provide input to the PCA and cluster analysis.
2.9.2
PCA and Clustering
The second program applies the PCA and clustering procedures to the output of the first program. Using modules from the Python Scikit-Learn library, the data is reduced to a user defined number of principle components. K-means clustering is applied to the data using a user defined number of clusters. After the clusters have been determined, the program assigns a cluster “ID” to each point in the surface. Then the array of points is output as both an image file and raster file for any additional processing needed.
2.9.3
Additional Computational Resources
Initial testing and troubleshooting with the programs was completed using a relatively small sample dataset. This made is easier to test changes and different methodologies for processing and fine tune the efficiency of the algorithms used.As increasingly larger datasets were tested, it became clear that computational limitations would affect either the final resolution of the dataset or the spatial extent of the dataset used. Testing indicated
that using a modern desktop computer3; bathymetric surfaces with file sizes on disk of >
~30-40 MB were time-consuming beyond reasonable limits or de-stabilized the code. As typical file sizes for the final bathymetric surfaces exceed 200MB for a low-resolution surface, and upwards of 1GB for higher resolutions, additional processing methods were developed to alleviate the computational bottlenecks.
These programs utilized the computational resources at the Minnesota Supercomputer Institute, at the University of Minnesota, Twin Cities.
The use of HPC (high-performance computing) resources was pivotal for the processing of large bathymetric surfaces for this study. The programs developed for this study used the Mesabi HPC cluster which contains 24 compute cores, and 64 GB of RAM on each compute node. When utilizing the Mesabi cluster, many more computational cores and larger amounts of RAM than are possible with a typical desktop computer. For this study, jobs were allocated a total of 12 computational cores and approximately 10 GB of RAM. Due to the fundamental structure of the code used, providing additional resources did not provide significant performance increases. Initial testing using the Mesabi Cluster
indicated that the lower-resolution bathymetric surfaces exceeded the default time-limit and required approximately 48 hours to complete the processing and clustering
procedures. Subsequent tests with higher resolution datasets exceeded the Mesabi cluster time limit of 96 hours to complete the processing. The code outlined in Appendix C offers a solution by splitting the original bathymetric surface into four smaller sub-surfaces. The code could also be run in parallel, allowing for each of the sub-surfaces to be calculated on the Mesabi cluster at one time, effectively reducing the processing by a factor of four. There is an obvious computational advantage to this approach as the number of operations required increases exponentially with increasing surface dimensions.