Thursday, June 20, 2024

Module 6 - Working Geometries



Module 6 consisted of turning river data into a neat TXT file. The mission was simple—grab the coordinates and IDs for vertices in a shapefile. First, I set up my workspace, ready for action. With ArcPy as my trusty tool, I created a search cursor to fetch the OID, geometry (SHAPE@), and NAME fields. It felt like being a digital detective, diving into the shapefile to uncover hidden data gems.

With my search cursor ready, I opened the TXT file in write mode, eager to fill it with vertex data. Each feature got its own vertex ID counter, ensuring no vertex was left behind. As I looped through the features and their vertices, I felt like an explorer mapping out new territory. Extracting X and Y coordinates from each vertex was like finding coordinates on a treasure map. I wrote down the details OID, vertex ID, X coordinate, Y coordinate, and river name while also printing them to the console to keep tabs on my progress.

Finally, after capturing all the vertex data, I closed the TXT file and did a quick verification dance. The file looked great, filled with well-organized data ready for use. This exercise showed me that even technical tasks can be fun and rewarding. It was a great mix of learning and coding, proving that GIS programming can be productive and enjoyable.



Wednesday, June 12, 2024

Module 5 - Exploring & Manipulating Data

 This week's assignment focused on manipulating spatial data using ArcGIS Pro. The tasks involved creating a new file geodatabase, copying feature classes into this geodatabase, and using search cursors to extract data. One key challenge was handling the ExecuteError when creating the geodatabase, which was resolved by ensuring no other instances of ArcGIS Pro were accessing it and adding a check to delete the existing geodatabase if it already existed. Another challenge was correctly populating a dictionary with city names and populations, which required careful use of search cursors and print statements for debugging. 

The process highlighted the importance of error handling, proper cursor management, and the use of print statements for tracking progress. These techniques ensured smooth execution of the script and accurate results. By completing these tasks, we gained practical experience in working with geodatabases and manipulating spatial data using Python and ArcPy, essential skills for GIS programming.




Wednesday, June 5, 2024

Module 4 - Geoprocessing




In Module 4, I was reacclimated into the ArcGIS geoprocessing framework, exploring its significance and utility in spatial data analysis. Geoprocessing involves a series of actions that manipulate geographic data to produce desired results. Within ArcGIS, geoprocessing enables spatial analysis, modeling, and task automation using various tools. These tools are categorized into five types, System Tools, Built-in Tools, Custom Tools, Model Tools, and Script Tools. During the lab assignment, I had hands-on experience with different geoprocessing tools, which proved to be immensely valuable. I utilized ModelBuilder to create a step-by-step process where the model aimed to clip soil data to a basin extent, filter unsuitable farming areas, and generate a final output displaying suitable farming zones. Additionally,  I created a Python script to work with hospital data. First, I added XY coordinates to a shapefile called "hospitals" from my student drive. Then, I made a 1,000-meter buffer around each hospital. Finally, I combined all the buffers into one feature using the Dissolve tool. This script helps organize and analyze hospital data more effectively.





Friday, May 31, 2024

Module 3 - Debugging and Error Handling

 Script 1

For Part 1 of the assignment, the script had two errors that needed fixing to ensure it could run smoothly. After identifying and correcting these errors, the script successfully printed out the names of all fields on the parks.shp attribute table. I made sure to examine the attribute table in ArcGIS Pro beforehand to understand the expected output. 


Script 2

Moving on to Part 2. This script contained several errors and exceptions that needed addressing for it to run properly. Before running the script, I ensured that the required shapefiles were added to the ArcGIS Project TravisCountyAustinTX.aprx. After identifying and fixing the errors, the script successfully printed out the names of all layers in the project


Script 3
 Part 3 of the assignment had a script that intentionally contained an error that prevented part of it from running. Instead of fixing the error, I modified the script by adding try-except statements to catch any exceptions and print relevant error messages. The script had two parts: Part A, which encountered the error and printed an error statement stating the problem, and Part B, which ran successfully and printed out the name, data source, and spatial reference of each layer. 




Tuesday, May 21, 2024

Module 2- Python Fundamentals


In this week's module, we delved into Python programming basics. We got hands-on experience with string variables and practiced creating loops and conditional statements. Along the way, I encountered errors that required me to backtrack and revisit the material to pinpoint the root cause. Despite the challenges, I was able to get through each process. 

Thursday, May 16, 2024

Module 1


The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
Namespaces are one honking great idea -- let's do more of those!
There should be one-- and preferably only one --obvious way to do it.
Now is better than never.
Although that way may not be obvious at first unless you're Dutch.
If the implementation is hard to explain, it's a bad idea.
Although never is often better than *right* now.
If the implementation is easy to explain, it may be a good idea.


Tim Peters created a clever outline of key principles for writing Python code, emphasizing simplicity, clarity, and practicality. It helps to encourage programmers to prioritize readability and simplified solutions, avoiding overly complex approaches.


I began the process with 01E Environments Flowcharts pdf.  I familiarized myself with different Python environments, including IDLE and ArcGIS Notebooks. I followed the instructions to interact with the Python interpreter using IDLE, running simple Python commands and scripts. Then, I opened ArcGIS Notebooks within ArcGIS Pro, and relearned how to create and execute Python code within the GIS environment. There was a learning curve with this section as I have not touched Python within ArcGIS Pro.

Then I jumped to Algorithmic Thinking with Flowcharting to create a flow chart for "degrees = radians * 180 / pi" using Untitled Diagram - draw.io (diagrams.net). After completing that, I accessed The Zen of Python within ArcGIS Pro.

I ran into several challenges in understanding some of the concepts, but was able to go back and reread instructions to help clarify my questions.

Sunday, February 18, 2024

Bivariate Choropleth Mapping




Bivariate choropleth mapping offers a dynamic approach to visualizing the relationship between two variables across geographical regions. Unlike traditional choropleth maps, which depict only one variable, bivariate maps use two color ramps to simultaneously represent two variables, revealing spatial patterns and correlations in a visually intuitive manner. By overlaying data sets, bivariate maps enable users to identify regions with similar trends, disparities, or inverse relationships, empowering researchers, policymakers, and data enthusiasts to gain deeper insights into complex phenomena.

 These maps find applications across diverse fields, including public health, environmental science, urban planning, and social economics. From illustrating the impact of pollution on respiratory illness rates to highlighting disparities in access to transportation infrastructure and socioeconomic status, bivariate choropleth maps facilitate informed decision-making by providing a comprehensive view of spatial data relationships. By following best practices in map design, users can effectively communicate their findings and engage audiences in meaningful discussions, unlocking valuable insights and driving positive changes. 

Saturday, February 10, 2024

Module 5 Analytical Data


Assessing the impact of air pollution on public health in the United States involves analyzing key variables such as particulate matter (PM) concentrations and self-reported health status. PM, comprising tiny solid particles or liquid droplets suspended in the air, serves as an indicator of air quality and has been linked to respiratory and cardiovascular diseases. Meanwhile, individuals' perceptions of their health status, categorized as poor or fair health, provide insights into overall well-being and highlight disparities within communities. A better way to model this data would be to hone in on health issues involving respiratory and cardiovascular diseases, as these are most strongly associated with air pollution exposure. By focusing on these specific health outcomes, the resulting mapping outcomes would likely be more accurate, providing valuable insights for policymakers and public health officials aiming to address the adverse effects of air pollution on human health.

Wednesday, January 31, 2024

Module 4 - Color Concepts & Choropleth Mapping

 



For the legend design, I employed ColorBrewer to select a diverging scheme with six data classes. The use of a diverging color scheme emphasizes both low and high extremes in population change, enabling viewers to easily identify areas experiencing significant shifts. The color choices in the legend were carefully selected to provide a clear visual representation of positive and negative changes, enhancing the map's interpretability. The legend's simplicity ensures that users can quickly grasp the magnitude and direction of population changes in the selected state. This design choice aims to facilitate effective communication of complex spatial information while maintaining a visually appealing and user-friendly map presentation.





Thursday, January 25, 2024

Module 3 - Terrain Visualization










In creating the land cover map with terrain visualization for Yellowstone Park, I employed a strategic approach to design. Initially, I thoroughly examined the attributes of the land cover layer to gain a comprehensive understanding of the dataset. Custom symbology was then crafted, manually selecting colors and consolidating similar land cover types into similar categories, enhancing clarity through grouped symbols and edited labels. A choice between traditional and multidirectional hillshade from the DEM was made, with the selected layer positioned beneath the land cover layer to provide supplementary topographic context. Transparency settings for the land cover layer were adjusted to allow the hillshade's influence, and iterative changes were made to symbology based on the combined impact of hillshade and transparency. The map layout design focused on visual hierarchy, ensuring a balanced and clear representation with essential map elements like title, legend (for land cover types only), scale bar, north arrow, and cartographer/source information. 





 

Thursday, January 18, 2024

Module 2 - Coordinate Systems

 


Choosing the NAD 1983 Stateplane Maryland FIPS 1900 (Meters) coordinate system for the State of Maryland map is about precision and local alignment. NAD 1983 is widely used in North America, and by focusing on Maryland's Stateplane system (FIPS 1900), the map becomes tailored to the state's unique geography. This ensures accurate and precise location representation, meeting local standards.

Adhering to the Federal Information Processing Standards (FIPS) code 1900 adds consistency and regulatory compliance. By using the FIPS code for Maryland, the coordinate system aligns with local standards, promoting seamless integration of spatial data with other datasets. 

Saturday, January 13, 2024

Module 1 - Communicating GIS

 




In designing the map, I prioritized visual contrast by selecting colors for different elements, ensuring essential features stand out. Legibility was achieved through clear, readable fonts and strategic label placement. The figure-ground organization was maintained by creating a clear distinction between foreground and background, guiding the viewer's focus. Hierarchical organization structured map elements based on importance, aiding comprehension. Lastly, balance was achieved through thoughtful distribution of visual elements, preventing any part of the map from appearing cluttered or neglected. 



In creating the map design to optimize legibility, visual contrast, and hierarchy, attention was devoted to the various text elements representing general information, water features, city names, park names, notable topographic features such as Russian Hill, and different area types. For general information, the Arial font type was chosen with a moderate size and strategic placement to provide essential context without overwhelming the map. Water feature labels utilized the Arial font, colored in blue with a white halo for visual contrast, and employed curved text to distinguish water bodies. The San Francisco city name was created using serif font Book Antiqua and was given a larger size and a light gray halo to enhance prominence and legibility. Park names, using the sans-serif Arial font, featured a white halo for clarity against diverse map features. Topographic features like Russian Hill adopted an italicized font with a white halo, striking a balance between visibility and integration. Each area type was characterized by a distinct font style, size, color, and effects, ensuring clear differentiation and contributing to a well-organized visual hierarchy. This comprehensive approach to text elements ensures an effective, legible, and visually appealing map design.



In addressing the challenge of effectively labeling multiple features in the map, a strategic approach was taken to balance numerous labels while maintaining legibility and communicative integrity. Several key label options and strategies were employed. Mexico City, as the capital, was assigned a unique symbol, ensuring it stands out prominently. Other cities share a common symbol for simplicity, while state capitals share a distinct symbology, clearly differentiating them. Distinct font types and styles were chosen for cities, rivers, and states to avoid confusion. Bold and clear fonts were selected for cities, ensuring they were easily distinguishable. Italicized fonts were used for rivers, providing a visual contrast, while states were labeled with regular fonts. Leveraging automatic labeling for cities and states helped streamline the process, avoiding manual placement complexities and allowing for efficient handling of numerous labels while maintaining readability. Prioritization was crucial to managing conflicts among labels. Mexico City, being a focal point, was labeled with the highest priority. State capitals emphasize population centers of importance. Rivers were labeled with a slightly lower priority but maintained visibility. Recognizing the challenge of labeling all features dynamically, a selective approach was taken. Weights and overlapping settings were adjusted using the Labelling toolbar to control label placement. City labels were allowed to overlap rivers but not other cities, ensuring a balanced visual hierarchy.