From 89fb06313999f5bf4729e5dc238c3bf0f195e8fe Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Tue, 27 Feb 2024 15:44:58 +0100 Subject: [PATCH 01/19] add Fault Density Map tutorial --- tutorial/Fault_Density.jl | 74 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 tutorial/Fault_Density.jl diff --git a/tutorial/Fault_Density.jl b/tutorial/Fault_Density.jl new file mode 100644 index 00000000..31c02196 --- /dev/null +++ b/tutorial/Fault_Density.jl @@ -0,0 +1,74 @@ +using GeophysicalModelGenerator, Shapefile, Plots, Rasters + +# Data from "Active Faults of Eurasia Database AFEAD v2022" DOI:10.13140/RG.2.2.25509.58084 +File = "AFEAD_v2022/AFEAD_v2022/AFEAD_v2022.shp" + +table = Shapefile.Table(File) +geoms = Shapefile.shapes(table) +CONF = table.CONF + +function selectshapes(table) + geoms = empty(Shapefile.shapes(table)) + for row in table + if row.CONF != "D" + push!(geoms, Shapefile.shape(row)) + end + end + return geoms +end + +ind = findall((table.CONF .== "A") .| (table.CONF .== "B")) +#fau = table.geometry[ind] + +faults = Shapefile.Handle(File).shapes +faultsR = rasterize(last,faults; res=(0.12,0.12), missingval=0, fill=1, atol = 0.4, shape=:line) + +# plotting +p = plot(faultsR; color=:red) +plot!(p, faultsR; fillalpha=0, linewidth=0.6) + +lon = faultsR.dims[1] +lat = faultsR.dims[2] + +indlat = findall((lat .> 35) .& (lat .< 60)) +Lat = lat[indlat] +indlon = findall((lon .> -10) .& (lon .< 35)) +Lon = lon[indlon] + +data = faultsR.data[indlon,indlat] + +# plotting +p = plot(data; color=:red) +plot!(p, data; fillalpha=0, linewidth=0.6) + +# create density map +stepsize = 4 + +lonstep = Lon[1:stepsize:end] +latstep = Lat[1:stepsize:end] + +countmap = zeros(length(latstep),length(lonstep)) + +for i = 1:length(lonstep)-1 + for j = 1:length(latstep)-1 + + indi = findall((Lon .>= lonstep[i]) .& (Lon .< lonstep[i+1])) + indj = findall((Lat .>= latstep[j]) .& (Lat .< latstep[j+1])) + dataint = data[indi,indj] + count = sum(dataint) + countmap[j,i] = count + + end +end + +maxcount = maximum(countmap) +countmap = countmap ./ maxcount + +heatmap(lonstep.val,latstep.val,countmap) + +# save as GeoData +Lon3D,Lat3D, Dens3D = LonLatDepthGrid(lonstep,latstep,0); +Dens3D[:,:,1] = countmap' +Data_Faults = GeoData(Lon3D,Lat3D,Dens3D,(Faults=Dens3D,)) +Write_Paraview(Data_Faults, "Faults_Spherical") + From 8039a8369e5716f5ff0214e24ed56d43bf6d107a Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Wed, 28 Feb 2024 12:06:16 +0100 Subject: [PATCH 02/19] finished Fault Density Map example --- tutorial/Fault_Density.jl | 62 ++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 33 deletions(-) diff --git a/tutorial/Fault_Density.jl b/tutorial/Fault_Density.jl index 31c02196..80f0f229 100644 --- a/tutorial/Fault_Density.jl +++ b/tutorial/Fault_Density.jl @@ -1,70 +1,64 @@ -using GeophysicalModelGenerator, Shapefile, Plots, Rasters +using GeophysicalModelGenerator, Shapefile, Plots, Rasters, GeoDatasets, Interpolations # Data from "Active Faults of Eurasia Database AFEAD v2022" DOI:10.13140/RG.2.2.25509.58084 File = "AFEAD_v2022/AFEAD_v2022/AFEAD_v2022.shp" +# load data from shapefiles table = Shapefile.Table(File) geoms = Shapefile.shapes(table) CONF = table.CONF -function selectshapes(table) - geoms = empty(Shapefile.shapes(table)) - for row in table - if row.CONF != "D" - push!(geoms, Shapefile.shape(row)) - end - end - return geoms -end - -ind = findall((table.CONF .== "A") .| (table.CONF .== "B")) -#fau = table.geometry[ind] +# select data and rasterize it +ind = findall((table.CONF .== "A") .| (table.CONF .== "B") .| (table.CONF .== "C")) +faults = Shapefile.Handle(File).shapes[ind] +faults = rasterize(last,faults; res=(0.12,0.12), missingval=0, fill=1, atol = 0.4, shape=:line) -faults = Shapefile.Handle(File).shapes -faultsR = rasterize(last,faults; res=(0.12,0.12), missingval=0, fill=1, atol = 0.4, shape=:line) +# get lon lat dimensions from data rasterized data +lon = faults.dims[1] +lat = faults.dims[2] -# plotting -p = plot(faultsR; color=:red) -plot!(p, faultsR; fillalpha=0, linewidth=0.6) +# download coastlines +lonC,latC,dataC = GeoDatasets.landseamask(;resolution='l',grid=10); +# interpolate to fault grid +itp = LinearInterpolation((lonC, latC), dataC) +coastlines = itp[lon.val,lat.val] +coastlines = map(y -> y > 1 ? 1 : y, coastlines) -lon = faultsR.dims[1] -lat = faultsR.dims[2] +# plot the fault data +p = heatmap(lon.val,lat.val,coastlines',legend=false,colormap=cgrad(:gray1,rev=true),alpha=0.4); +p = plot!(faults; color=:red,legend = false,title="Fault Map World",ylabel="Lat",xlabel="Lon") +# restrict lon lat area indlat = findall((lat .> 35) .& (lat .< 60)) Lat = lat[indlat] indlon = findall((lon .> -10) .& (lon .< 35)) Lon = lon[indlon] +data = faults.data[indlon,indlat] -data = faultsR.data[indlon,indlat] - -# plotting -p = plot(data; color=:red) -plot!(p, data; fillalpha=0, linewidth=0.6) +ind_lon = findall( (lonC .> 0) .& (lonC .< 30 ) ); +ind_lat = findall( (latC .> 35) .& (latC .< 50 ) ); # create density map -stepsize = 4 - +stepsize = 2 lonstep = Lon[1:stepsize:end] latstep = Lat[1:stepsize:end] - countmap = zeros(length(latstep),length(lonstep)) - for i = 1:length(lonstep)-1 for j = 1:length(latstep)-1 - indi = findall((Lon .>= lonstep[i]) .& (Lon .< lonstep[i+1])) indj = findall((Lat .>= latstep[j]) .& (Lat .< latstep[j+1])) dataint = data[indi,indj] count = sum(dataint) countmap[j,i] = count - end end - maxcount = maximum(countmap) countmap = countmap ./ maxcount -heatmap(lonstep.val,latstep.val,countmap) +coastlinesEurope = itp[lonstep.val,latstep.val] +coastlinesEurope = map(y -> y > 1 ? 1 : y, coastlinesEurope) +p2 = heatmap(lonstep.val,latstep.val,coastlinesEurope',colormap=cgrad(:gray1,rev=true),alpha=1.0); +p2 = heatmap!(lonstep.val,latstep.val,countmap,colormap=cgrad(:batlowW,rev=true),alpha = 0.7,legend=true,title="Fault Density Map Europe") # save as GeoData Lon3D,Lat3D, Dens3D = LonLatDepthGrid(lonstep,latstep,0); @@ -72,3 +66,5 @@ Dens3D[:,:,1] = countmap' Data_Faults = GeoData(Lon3D,Lat3D,Dens3D,(Faults=Dens3D,)) Write_Paraview(Data_Faults, "Faults_Spherical") + + From 692f1a53bdb0fb85f2b3d826cab95c789b8aa331 Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 10:20:38 +0100 Subject: [PATCH 03/19] Introduced CountMap function --- src/utils.jl | 72 ++++++++++++++++++++++++++++++++++++++- test/test_utils.jl | 9 ++++- tutorial/Fault_Density.jl | 45 +++++++++--------------- 3 files changed, 95 insertions(+), 31 deletions(-) diff --git a/src/utils.jl b/src/utils.jl index 31ad6ff9..64c0f5d8 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -1,7 +1,7 @@ # few utils that are useful export meshgrid, CrossSection, CrossSectionVolume, CrossSectionSurface, CrossSectionPoints, ExtractSubvolume, SubtractHorizontalMean -export ParseColumns_CSV_File, AboveSurface, BelowSurface, VoteMap +export ParseColumns_CSV_File, AboveSurface, BelowSurface, VoteMap, CountMap export InterpolateDataOnSurface, InterpolateDataFields2D, InterpolateDataFields export RotateTranslateScale export DrapeOnTopo, LithostaticPressure! @@ -1754,6 +1754,76 @@ function VoteMap(DataSets::GeoData, criteria::String; dims=(50,50,50)) VoteMap([DataSets], [criteria]; dims=dims) end +""" +CountMap(DataSet::GeoData,field::String,stepslon::Int64,stepslat::Int64) + +Counts the ones in a 2D GeoData field that is specified by "field" in a control area which is defined by steplon and steplat. +steplon is the number of control areas in lon direction and steplat the number of control areas in lat direction +The counts per control area are normalized by the highest count + + + julia> Data_Faults = GeoData(Lon3D,Lat3D,Faults,(Faults=Faults,)) + GeoData + size : (375, 208, 1) + lon ϵ [ -9.932408319802885 : 34.93985125012068] + lat ϵ [ 35.086096468211394 : 59.919210145128545] + depth ϵ [ 0.0 : 1.0] + fields : (:Faults,) + + julia> steplon = 125 + julia> steplat = 70 + julia> countmap = CountMap(Data_Faults,"Faults",steplon,steplat) + + GeoData + size : (124, 69, 1) + lon ϵ [ -9.751471789279 : 34.75891471959677] + lat ϵ [ 35.26604656731949 : 59.73926004602028] + depth ϵ [ 0.0 : 1.0] + fields : (:CountMap,) + +""" +function CountMap(DataSet::GeoData,field::String,stepslon::Int64,stepslat::Int64) + + lon = unique(DataSet.lon.val) + lat = unique(DataSet.lat.val) + + # create new lon/lat arrays which hold the boundaries of the control areas + lonstep = LinRange(lon[1],lon[end],stepslon) + latstep = LinRange(lat[1],lat[end],stepslat) + countmap = zeros(length(lonstep)-1,length(latstep)-1) + + expr = Meta.parse(field) + if !haskey(DataSet.fields,expr[1]) + error("The GeoData set does not have the field: $(expr[1])") + end + + # count the ones in every control area + for i = 1:length(lonstep)-1 + for j = 1:length(latstep)-1 + indi = findall((lon .>= lonstep[i]) .& (lon .<= lonstep[i+1])) + indj = findall((lat .>= latstep[j]) .& (lat .<= latstep[j+1])) + dataint = DataSet.fields[expr[1]][indi,indj,1] + count = sum(dataint) + countmap[i,j] = count + end + end + + # normalize count in every control area + maxcount = maximum(countmap) + countmap = countmap ./ maxcount + + # create new GeoData + dlon = abs(lonstep[2]-lonstep[1]) + dlat = abs(latstep[2]-latstep[1]) + loncen = lonstep[1]+dlon/2:dlon:lonstep[end]-dlon/2 + latcen = latstep[1]+dlat/2:dlat:latstep[end]-dlat/2 + Lon3D,Lat3D, Data = LonLatDepthGrid(loncen,latcen,0); + Data[:,:,1] .= countmap + DatasetCountmap = GeoData(Lon3D,Lat3D,Data,(CountMap=Data,)) + + return DatasetCountmap +end + """ Data_R = RotateTranslateScale(Data::Union{ParaviewData, CartData}; Rotate=0, Translate=(0,0,0), Scale=(1.0,1.0,1.0), Xc=(0.0,0.0)) diff --git a/test/test_utils.jl b/test/test_utils.jl index 573fe49d..4c70b9e5 100644 --- a/test/test_utils.jl +++ b/test/test_utils.jl @@ -7,7 +7,8 @@ using GeophysicalModelGenerator Lon,Lat,Depth = LonLatDepthGrid(10:20,30:40,-50km); Data1 = Depth*2; # some data Vx1,Vy1,Vz1 = Data1*3,Data1*4,Data1*5 -Data_set2D = GeoData(Lon,Lat,Depth,(Depthdata=Data1,LonData1=Lon, Velocity=(Vx1,Vy1,Vz1))) +CM = zeros(size(Data1)); CM[1:5,1:5] .= 1.0 +Data_set2D = GeoData(Lon,Lat,Depth,(Depthdata=Data1,LonData1=Lon, Velocity=(Vx1,Vy1,Vz1),Count=CM)) @test_throws ErrorException CrossSection(Data_set2D, Depth_level=-10) # Create 3D volume with some fake data @@ -196,6 +197,12 @@ Data_VoteMap = VoteMap([Data_set3D_reverse, Data_set3D], ["Depthdata<-560","LonD @test Data_VoteMap.fields[:VoteMap][9 ,9,1]==1 @test Data_VoteMap.fields[:VoteMap][9 ,9,2]==0 +# Test CountMap +Data_CountMap = CountMap(Data_set2D,"Count",5,5) +@test Data_CountMap.fields.CountMap[1,1] == 1.0 +@test Data_CountMap.fields.CountMap[2,2] == 0.4444444444444444 +@test Data_CountMap.fields.CountMap[4,4] == 0.0 + # Test rotation routines X,Y,Z = LonLatDepthGrid(10:20,30:40,-50:-10); Data_C = ParaviewData(X,Y,Z,(Depth=Z,)) diff --git a/tutorial/Fault_Density.jl b/tutorial/Fault_Density.jl index 80f0f229..135e42ab 100644 --- a/tutorial/Fault_Density.jl +++ b/tutorial/Fault_Density.jl @@ -25,46 +25,33 @@ coastlines = itp[lon.val,lat.val] coastlines = map(y -> y > 1 ? 1 : y, coastlines) # plot the fault data -p = heatmap(lon.val,lat.val,coastlines',legend=false,colormap=cgrad(:gray1,rev=true),alpha=0.4); -p = plot!(faults; color=:red,legend = false,title="Fault Map World",ylabel="Lat",xlabel="Lon") +heatmap(lon.val,lat.val,coastlines',legend=false,colormap=cgrad(:gray1,rev=true),alpha=0.4); +plot!(faults; color=:red,legend = false,title="Fault Map World",ylabel="Lat",xlabel="Lon") -# restrict lon lat area +# restrict area indlat = findall((lat .> 35) .& (lat .< 60)) Lat = lat[indlat] indlon = findall((lon .> -10) .& (lon .< 35)) Lon = lon[indlon] data = faults.data[indlon,indlat] -ind_lon = findall( (lonC .> 0) .& (lonC .< 30 ) ); -ind_lat = findall( (latC .> 35) .& (latC .< 50 ) ); +# create GeoData from restricted data +Lon3D,Lat3D, Faults = LonLatDepthGrid(Lon,Lat,0); +Faults[:,:,1] = data +Data_Faults = GeoData(Lon3D,Lat3D,Faults,(Faults=Faults,)) -# create density map -stepsize = 2 -lonstep = Lon[1:stepsize:end] -latstep = Lat[1:stepsize:end] -countmap = zeros(length(latstep),length(lonstep)) -for i = 1:length(lonstep)-1 - for j = 1:length(latstep)-1 - indi = findall((Lon .>= lonstep[i]) .& (Lon .< lonstep[i+1])) - indj = findall((Lat .>= latstep[j]) .& (Lat .< latstep[j+1])) - dataint = data[indi,indj] - count = sum(dataint) - countmap[j,i] = count - end -end -maxcount = maximum(countmap) -countmap = countmap ./ maxcount +steplon = Int(length(Lon)/3) +steplat = Int(length(Lon)/3) +countmap = CountMap(Data_Faults,"Faults",steplon,steplat) -coastlinesEurope = itp[lonstep.val,latstep.val] +lon = unique(countmap.lon.val) +lat = unique(countmap.lat.val) +coastlinesEurope = itp[lon,lat] coastlinesEurope = map(y -> y > 1 ? 1 : y, coastlinesEurope) -p2 = heatmap(lonstep.val,latstep.val,coastlinesEurope',colormap=cgrad(:gray1,rev=true),alpha=1.0); -p2 = heatmap!(lonstep.val,latstep.val,countmap,colormap=cgrad(:batlowW,rev=true),alpha = 0.7,legend=true,title="Fault Density Map Europe") +heatmap(lon,lat,coastlinesEurope',colormap=cgrad(:gray1,rev=true),alpha=1.0); +heatmap!(lon,lat,countmap.fields.CountMap[:,:,1]',colormap=cgrad(:batlowW,rev=true),alpha = 0.8,legend=true,title="Fault Density Map Europe",ylabel="Lat",xlabel="Lon") -# save as GeoData -Lon3D,Lat3D, Dens3D = LonLatDepthGrid(lonstep,latstep,0); -Dens3D[:,:,1] = countmap' -Data_Faults = GeoData(Lon3D,Lat3D,Dens3D,(Faults=Dens3D,)) -Write_Paraview(Data_Faults, "Faults_Spherical") +Write_Paraview(countmap, "Faults") From 09412b518b430452c0323793500b12b53bd1f325 Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 11:05:00 +0100 Subject: [PATCH 04/19] created markdown file for the Fault Density tutorial --- docs/src/assets/img/FaultDensity.svg | 1082 +++++++ docs/src/assets/img/WorldMap.svg | 3944 ++++++++++++++++++++++++++ docs/src/man/tutorial_Fault_Map.md | 100 + tutorial/Fault_Density.jl | 10 +- 4 files changed, 5132 insertions(+), 4 deletions(-) create mode 100644 docs/src/assets/img/FaultDensity.svg create mode 100644 docs/src/assets/img/WorldMap.svg create mode 100644 docs/src/man/tutorial_Fault_Map.md diff --git a/docs/src/assets/img/FaultDensity.svg b/docs/src/assets/img/FaultDensity.svg new file mode 100644 index 00000000..e8dd706f --- /dev/null +++ b/docs/src/assets/img/FaultDensity.svg @@ -0,0 +1,1082 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/assets/img/WorldMap.svg b/docs/src/assets/img/WorldMap.svg new file mode 100644 index 00000000..64a34c82 --- /dev/null +++ b/docs/src/assets/img/WorldMap.svg @@ -0,0 +1,3944 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/man/tutorial_Fault_Map.md b/docs/src/man/tutorial_Fault_Map.md new file mode 100644 index 00000000..7a047a4a --- /dev/null +++ b/docs/src/man/tutorial_Fault_Map.md @@ -0,0 +1,100 @@ +# Fault Density Map + +## Aim +In this tutorial Fault Data is loaded as Shapefiles, which is then transformed to raster data. With the help of that a fault density map of Europe is created with the CountMap function + +## Load Data + +Load packages +````julia +using GeophysicalModelGenerator, Shapefile, Plots, Rasters, GeoDatasets, Interpolations +```` + +Data from "Active Faults of Eurasia Database AFEAD v2022" DOI:10.13140/RG.2.2.25509.58084 + +````julia +File = "AFEAD_v2022/AFEAD_v2022/AFEAD_v2022.shp" +```` + +Load data using Shapefile + +````julia +table = Shapefile.Table(File) +geoms = Shapefile.shapes(table) +CONF = table.CONF +```` + +Raster the shapefile data + +````julia +ind = findall((table.CONF .== "A") .| (table.CONF .== "B") .| (table.CONF .== "C")) +faults = Shapefile.Handle(File).shapes[ind] +faults = rasterize(last,faults; res=(0.12,0.12), missingval=0, fill=1, atol = 0.4, shape=:line) +lon = faults.dims[1] +lat = faults.dims[2] +```` + +download coastlines with GeoDatasets + +````julia +lonC,latC,dataC = GeoDatasets.landseamask(;resolution='l',grid=10); +```` + +interpolate to fault grid + +````julia +itp = linear_interpolation((lonC, latC), dataC) +coastlines = itp[lon.val,lat.val] +coastlines = map(y -> y > 1 ? 1 : y, coastlines) +```` + +plot the fault data + +````julia +heatmap(lon.val,lat.val,coastlines',legend=false,colormap=cgrad(:gray1,rev=true),alpha=0.4); +plot!(faults; color=:red,legend = false,title="Fault Map World",ylabel="Lat",xlabel="Lon") +```` +![tutorial_Fault_Map](../assets/img/WorldMap.svg) + +restrict area to Europe + +````julia +indlat = findall((lat .> 35) .& (lat .< 60)) +Lat = lat[indlat] +indlon = findall((lon .> -10) .& (lon .< 35)) +Lon = lon[indlon] +data = faults.data[indlon,indlat] +```` + +Create GeoData from restricted data + +````julia +Lon3D,Lat3D, Faults = LonLatDepthGrid(Lon,Lat,0); +Faults[:,:,1] = data +Data_Faults = GeoData(Lon3D,Lat3D,Faults,(Faults=Faults,)) +```` +#### Create Density Map +Create a density map of the faults data. This is done with the CountMap function. This function takes a 2D GeoData struct + +````julia +steplon = 125 +steplat = 70 +countmap = CountMap(Data_Faults,"Faults",steplon,steplat) +```` + +Plot the density map with coastlines + +````julia +lon = unique(countmap.lon.val) +lat = unique(countmap.lat.val) +coastlinesEurope = itp[lon,lat] +coastlinesEurope = map(y -> y > 1 ? 1 : y, coastlinesEurope) +heatmap(lon,lat,coastlinesEurope',colormap=cgrad(:gray1,rev=true),alpha=1.0); +heatmap!(lon,lat,countmap.fields.CountMap[:,:,1]',colormap=cgrad(:batlowW,rev=true),alpha = 0.8,legend=true,title="Fault Density Map Europe",ylabel="Lat",xlabel="Lon") +```` +![tutorial_Fault_Map](../assets/img/FaultDensity.svg) + +--- + +*This page was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).* + diff --git a/tutorial/Fault_Density.jl b/tutorial/Fault_Density.jl index 135e42ab..aeb3735a 100644 --- a/tutorial/Fault_Density.jl +++ b/tutorial/Fault_Density.jl @@ -3,7 +3,7 @@ using GeophysicalModelGenerator, Shapefile, Plots, Rasters, GeoDatasets, Interpo # Data from "Active Faults of Eurasia Database AFEAD v2022" DOI:10.13140/RG.2.2.25509.58084 File = "AFEAD_v2022/AFEAD_v2022/AFEAD_v2022.shp" -# load data from shapefiles +# load data from with the Shapefile package table = Shapefile.Table(File) geoms = Shapefile.shapes(table) CONF = table.CONF @@ -19,8 +19,9 @@ lat = faults.dims[2] # download coastlines lonC,latC,dataC = GeoDatasets.landseamask(;resolution='l',grid=10); + # interpolate to fault grid -itp = LinearInterpolation((lonC, latC), dataC) +itp = linear_interpolation((lonC, latC), dataC) coastlines = itp[lon.val,lat.val] coastlines = map(y -> y > 1 ? 1 : y, coastlines) @@ -28,7 +29,7 @@ coastlines = map(y -> y > 1 ? 1 : y, coastlines) heatmap(lon.val,lat.val,coastlines',legend=false,colormap=cgrad(:gray1,rev=true),alpha=0.4); plot!(faults; color=:red,legend = false,title="Fault Map World",ylabel="Lat",xlabel="Lon") -# restrict area +# restrict area to Europe indlat = findall((lat .> 35) .& (lat .< 60)) Lat = lat[indlat] indlon = findall((lon .> -10) .& (lon .< 35)) @@ -40,10 +41,12 @@ Lon3D,Lat3D, Faults = LonLatDepthGrid(Lon,Lat,0); Faults[:,:,1] = data Data_Faults = GeoData(Lon3D,Lat3D,Faults,(Faults=Faults,)) +# Create a density map of the faults data steplon = Int(length(Lon)/3) steplat = Int(length(Lon)/3) countmap = CountMap(Data_Faults,"Faults",steplon,steplat) +# plot the density map with coastlines lon = unique(countmap.lon.val) lat = unique(countmap.lat.val) coastlinesEurope = itp[lon,lat] @@ -51,7 +54,6 @@ coastlinesEurope = map(y -> y > 1 ? 1 : y, coastlinesEurope) heatmap(lon,lat,coastlinesEurope',colormap=cgrad(:gray1,rev=true),alpha=1.0); heatmap!(lon,lat,countmap.fields.CountMap[:,:,1]',colormap=cgrad(:batlowW,rev=true),alpha = 0.8,legend=true,title="Fault Density Map Europe",ylabel="Lat",xlabel="Lon") -Write_Paraview(countmap, "Faults") From d97241c09dbc1fe0074ac6cfc67b10df581fc523 Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 11:22:55 +0100 Subject: [PATCH 05/19] add tutorial to make.jl --- docs/make.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/make.jl b/docs/make.jl index bd96f315..1e649bb1 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -73,6 +73,7 @@ makedocs(; "ISC earthquake data" => "man/tutorial_ISC_data.md", "Plot GPS vectors" => "man/tutorial_GPS.md", "Read UTM data" => "man/tutorial_UTM.md", + "Fault Density Map" => "man/Tutorial_Fault_Map.md", "VoteMaps" => "man/Tutorial_Votemaps.md", "Kilometer-scale volcano" => "man/tutorial_local_Flegrei.md", "Generating LaMEM model" => "man/LaPalma_example.md", From 2ca11e0e8b9b0f1114005b5a546c061dc2ac3ed4 Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 11:33:51 +0100 Subject: [PATCH 06/19] typos --- docs/src/man/tutorial_Fault_Map.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/src/man/tutorial_Fault_Map.md b/docs/src/man/tutorial_Fault_Map.md index 7a047a4a..8e58b1b7 100644 --- a/docs/src/man/tutorial_Fault_Map.md +++ b/docs/src/man/tutorial_Fault_Map.md @@ -34,13 +34,13 @@ lon = faults.dims[1] lat = faults.dims[2] ```` -download coastlines with GeoDatasets +Download coastlines with GeoDatasets ````julia lonC,latC,dataC = GeoDatasets.landseamask(;resolution='l',grid=10); ```` -interpolate to fault grid +Interpolate to fault grid ````julia itp = linear_interpolation((lonC, latC), dataC) @@ -48,7 +48,7 @@ coastlines = itp[lon.val,lat.val] coastlines = map(y -> y > 1 ? 1 : y, coastlines) ```` -plot the fault data +Plot the fault data ````julia heatmap(lon.val,lat.val,coastlines',legend=false,colormap=cgrad(:gray1,rev=true),alpha=0.4); @@ -56,7 +56,7 @@ plot!(faults; color=:red,legend = false,title="Fault Map World",ylabel="Lat",xla ```` ![tutorial_Fault_Map](../assets/img/WorldMap.svg) -restrict area to Europe +Restrict area to Europe ````julia indlat = findall((lat .> 35) .& (lat .< 60)) @@ -74,7 +74,7 @@ Faults[:,:,1] = data Data_Faults = GeoData(Lon3D,Lat3D,Faults,(Faults=Faults,)) ```` #### Create Density Map -Create a density map of the faults data. This is done with the CountMap function. This function takes a 2D GeoData struct +Create a density map of the fault data. This is done with the CountMap function. This function takes a specified field of a 2D GeoData struct and counts the entries in all control areas which are defined by steplon (number of control areas in lon direction) and steplat (number of control areas in lat direction). The field should only consist of 0.0 and 1.0 and the steplength. The final result is normalized by the highest count. ````julia steplon = 125 From f5eb63a10f39bf6d216e760d98e6fe01eab144fa Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 12:00:45 +0100 Subject: [PATCH 07/19] add to make.jl --- docs/make.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/make.jl b/docs/make.jl index 828e253e..e34a0ad2 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -93,6 +93,7 @@ makedocs(; "9 - ISC earthquake data" => "man/tutorial_ISC_data.md", "10 - Plot GPS vectors" => "man/tutorial_GPS.md", "11 - Read UTM data" => "man/tutorial_UTM.md", + "12 - Fault Density Map" => "man/tutorial_Fault_Map.md", "12 - VoteMaps" => "man/Tutorial_Votemaps.md", "13 - Campi Flegrei" => "man/tutorial_local_Flegrei.md", "14 - Cartesian Volcano Model" => "man/LaPalma_example.md", From f6b21bf26446bfd496e91115d6c01cfa5180ac30 Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 12:17:47 +0100 Subject: [PATCH 08/19] change Fault_Density.jl --- docs/src/man/tutorial_Fault_Map.md | 13 +++++++-- tutorials/Fault_Density.jl | 46 ++++++++++++++++++------------ 2 files changed, 38 insertions(+), 21 deletions(-) diff --git a/docs/src/man/tutorial_Fault_Map.md b/docs/src/man/tutorial_Fault_Map.md index 8e58b1b7..3bf28d30 100644 --- a/docs/src/man/tutorial_Fault_Map.md +++ b/docs/src/man/tutorial_Fault_Map.md @@ -1,11 +1,15 @@ # Fault Density Map ## Aim -In this tutorial Fault Data is loaded as Shapefiles, which is then transformed to raster data. With the help of that a fault density map of Europe is created with the CountMap function + +````julia +#In this tutorial Fault Data is loaded as Shapefiles, which is then transformed to raster data. With the help of that a fault density map of Europe is created with the CountMap function +```` ## Load Data Load packages + ````julia using GeophysicalModelGenerator, Shapefile, Plots, Rasters, GeoDatasets, Interpolations ```` @@ -37,7 +41,7 @@ lat = faults.dims[2] Download coastlines with GeoDatasets ````julia -lonC,latC,dataC = GeoDatasets.landseamask(;resolution='l',grid=10); +lonC,latC,dataC = GeoDatasets.landseamask(;resolution='l',grid=10) ```` Interpolate to fault grid @@ -54,6 +58,7 @@ Plot the fault data heatmap(lon.val,lat.val,coastlines',legend=false,colormap=cgrad(:gray1,rev=true),alpha=0.4); plot!(faults; color=:red,legend = false,title="Fault Map World",ylabel="Lat",xlabel="Lon") ```` + ![tutorial_Fault_Map](../assets/img/WorldMap.svg) Restrict area to Europe @@ -73,7 +78,8 @@ Lon3D,Lat3D, Faults = LonLatDepthGrid(Lon,Lat,0); Faults[:,:,1] = data Data_Faults = GeoData(Lon3D,Lat3D,Faults,(Faults=Faults,)) ```` -#### Create Density Map + +#### Create Density Map Create a density map of the fault data. This is done with the CountMap function. This function takes a specified field of a 2D GeoData struct and counts the entries in all control areas which are defined by steplon (number of control areas in lon direction) and steplat (number of control areas in lat direction). The field should only consist of 0.0 and 1.0 and the steplength. The final result is normalized by the highest count. ````julia @@ -92,6 +98,7 @@ coastlinesEurope = map(y -> y > 1 ? 1 : y, coastlinesEurope) heatmap(lon,lat,coastlinesEurope',colormap=cgrad(:gray1,rev=true),alpha=1.0); heatmap!(lon,lat,countmap.fields.CountMap[:,:,1]',colormap=cgrad(:batlowW,rev=true),alpha = 0.8,legend=true,title="Fault Density Map Europe",ylabel="Lat",xlabel="Lon") ```` + ![tutorial_Fault_Map](../assets/img/FaultDensity.svg) --- diff --git a/tutorials/Fault_Density.jl b/tutorials/Fault_Density.jl index aeb3735a..4676ea81 100644 --- a/tutorials/Fault_Density.jl +++ b/tutorials/Fault_Density.jl @@ -1,59 +1,69 @@ +# # Fault Density Map + +# ## Aim +#In this tutorial Fault Data is loaded as Shapefiles, which is then transformed to raster data. With the help of that a fault density map of Europe is created with the CountMap function + +# ## Load Data + +# Load packages + using GeophysicalModelGenerator, Shapefile, Plots, Rasters, GeoDatasets, Interpolations + # Data from "Active Faults of Eurasia Database AFEAD v2022" DOI:10.13140/RG.2.2.25509.58084 File = "AFEAD_v2022/AFEAD_v2022/AFEAD_v2022.shp" -# load data from with the Shapefile package + +# Load data using Shapefile + table = Shapefile.Table(File) geoms = Shapefile.shapes(table) CONF = table.CONF -# select data and rasterize it +# Raster the shapefile data ind = findall((table.CONF .== "A") .| (table.CONF .== "B") .| (table.CONF .== "C")) faults = Shapefile.Handle(File).shapes[ind] faults = rasterize(last,faults; res=(0.12,0.12), missingval=0, fill=1, atol = 0.4, shape=:line) - -# get lon lat dimensions from data rasterized data lon = faults.dims[1] lat = faults.dims[2] -# download coastlines -lonC,latC,dataC = GeoDatasets.landseamask(;resolution='l',grid=10); -# interpolate to fault grid +# Download coastlines with GeoDatasets +lonC,latC,dataC = GeoDatasets.landseamask(;resolution='l',grid=10) + +# Interpolate to fault grid itp = linear_interpolation((lonC, latC), dataC) coastlines = itp[lon.val,lat.val] coastlines = map(y -> y > 1 ? 1 : y, coastlines) -# plot the fault data +# Plot the fault data heatmap(lon.val,lat.val,coastlines',legend=false,colormap=cgrad(:gray1,rev=true),alpha=0.4); plot!(faults; color=:red,legend = false,title="Fault Map World",ylabel="Lat",xlabel="Lon") +# ![tutorial_Fault_Map](../assets/img/WorldMap.svg) -# restrict area to Europe +# Restrict area to Europe indlat = findall((lat .> 35) .& (lat .< 60)) Lat = lat[indlat] indlon = findall((lon .> -10) .& (lon .< 35)) Lon = lon[indlon] data = faults.data[indlon,indlat] -# create GeoData from restricted data +# Create GeoData from restricted data Lon3D,Lat3D, Faults = LonLatDepthGrid(Lon,Lat,0); Faults[:,:,1] = data Data_Faults = GeoData(Lon3D,Lat3D,Faults,(Faults=Faults,)) -# Create a density map of the faults data -steplon = Int(length(Lon)/3) -steplat = Int(length(Lon)/3) +# #### Create Density Map +# Create a density map of the fault data. This is done with the CountMap function. This function takes a specified field of a 2D GeoData struct and counts the entries in all control areas which are defined by steplon (number of control areas in lon direction) and steplat (number of control areas in lat direction). The field should only consist of 0.0 and 1.0 and the steplength. The final result is normalized by the highest count. +steplon = 125 +steplat = 70 countmap = CountMap(Data_Faults,"Faults",steplon,steplat) -# plot the density map with coastlines +# Plot the density map with coastlines lon = unique(countmap.lon.val) lat = unique(countmap.lat.val) coastlinesEurope = itp[lon,lat] coastlinesEurope = map(y -> y > 1 ? 1 : y, coastlinesEurope) heatmap(lon,lat,coastlinesEurope',colormap=cgrad(:gray1,rev=true),alpha=1.0); heatmap!(lon,lat,countmap.fields.CountMap[:,:,1]',colormap=cgrad(:batlowW,rev=true),alpha = 0.8,legend=true,title="Fault Density Map Europe",ylabel="Lat",xlabel="Lon") - - - - +# ![tutorial_Fault_Map](../assets/img/FaultDensity.svg) From 2e5b5bda65151e19761c5fa9f5fd648b98e183fe Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 13:01:44 +0100 Subject: [PATCH 09/19] bugfix --- src/utils.jl | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/utils.jl b/src/utils.jl index 46ba071e..02c6ce1f 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -1800,16 +1800,20 @@ function CountMap(DataSet::GeoData,field::String,stepslon::Int64,stepslat::Int64 # create new lon/lat arrays which hold the boundaries of the control areas lonstep = LinRange(lon[1],lon[end],stepslon) latstep = LinRange(lat[1],lat[end],stepslat) - countmap = zeros(length(lonstep)-1,length(latstep)-1) + dlon = abs(lonstep[2]-lonstep[1]) + dlat = abs(latstep[2]-latstep[1]) + loncen = lonstep[1]+dlon/2:dlon:lonstep[end]-dlon/2 + latcen = latstep[1]+dlat/2:dlat:latstep[end]-dlat/2 + countmap = zeros(length(loncen),length(latcen)) - expr = Meta.parse(field) + expr = Meta.parse(field) if !haskey(DataSet.fields,expr[1]) error("The GeoData set does not have the field: $(expr[1])") end # count the ones in every control area - for i = 1:length(lonstep)-1 - for j = 1:length(latstep)-1 + for i in eachindex(loncen) + for j in eachindex(latcen) indi = findall((lon .>= lonstep[i]) .& (lon .<= lonstep[i+1])) indj = findall((lat .>= latstep[j]) .& (lat .<= latstep[j+1])) dataint = DataSet.fields[expr[1]][indi,indj,1] @@ -1823,12 +1827,12 @@ function CountMap(DataSet::GeoData,field::String,stepslon::Int64,stepslat::Int64 countmap = countmap ./ maxcount # create new GeoData - dlon = abs(lonstep[2]-lonstep[1]) - dlat = abs(latstep[2]-latstep[1]) - loncen = lonstep[1]+dlon/2:dlon:lonstep[end]-dlon/2 - latcen = latstep[1]+dlat/2:dlat:latstep[end]-dlat/2 Lon3D,Lat3D, Data = LonLatDepthGrid(loncen,latcen,0); - Data[:,:,1] .= countmap + print(size(lonstep),"\n") + print(size(latstep),"\n") + print(size(countmap),"\n") + print(size(Data[:,:,1]),"\n") + Data[:,:,1] .= countmap DatasetCountmap = GeoData(Lon3D,Lat3D,Data,(CountMap=Data,)) return DatasetCountmap From a17e84e0650c5af72013358809c5139c5c759b54 Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 13:08:48 +0100 Subject: [PATCH 10/19] Fault_Density.jl changed --- tutorials/Fault_Density.jl | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/tutorials/Fault_Density.jl b/tutorials/Fault_Density.jl index 4676ea81..46b9d4a3 100644 --- a/tutorials/Fault_Density.jl +++ b/tutorials/Fault_Density.jl @@ -9,11 +9,9 @@ using GeophysicalModelGenerator, Shapefile, Plots, Rasters, GeoDatasets, Interpolations - # Data from "Active Faults of Eurasia Database AFEAD v2022" DOI:10.13140/RG.2.2.25509.58084 File = "AFEAD_v2022/AFEAD_v2022/AFEAD_v2022.shp" - # Load data using Shapefile table = Shapefile.Table(File) @@ -27,7 +25,6 @@ faults = rasterize(last,faults; res=(0.12,0.12), missingval=0, fill=1, atol = 0 lon = faults.dims[1] lat = faults.dims[2] - # Download coastlines with GeoDatasets lonC,latC,dataC = GeoDatasets.landseamask(;resolution='l',grid=10) @@ -55,8 +52,8 @@ Data_Faults = GeoData(Lon3D,Lat3D,Faults,(Faults=Faults,)) # #### Create Density Map # Create a density map of the fault data. This is done with the CountMap function. This function takes a specified field of a 2D GeoData struct and counts the entries in all control areas which are defined by steplon (number of control areas in lon direction) and steplat (number of control areas in lat direction). The field should only consist of 0.0 and 1.0 and the steplength. The final result is normalized by the highest count. -steplon = 125 -steplat = 70 +steplon = 188 +steplat = 104 countmap = CountMap(Data_Faults,"Faults",steplon,steplat) # Plot the density map with coastlines From 85c3f861d93129d083bb6ca1c3ddad7e8c2f83fa Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 13:18:13 +0100 Subject: [PATCH 11/19] add to tools.md --- docs/src/man/tools.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/src/man/tools.md b/docs/src/man/tools.md index 7b5d2361..197cea53 100644 --- a/docs/src/man/tools.md +++ b/docs/src/man/tools.md @@ -19,4 +19,5 @@ GeophysicalModelGenerator.Convert2CartData GeophysicalModelGenerator.ProjectCartData GeophysicalModelGenerator.DrapeOnTopo GeophysicalModelGenerator.LithostaticPressure! +GeophysicalModelGenerator.CountMap ``` From 0867641540bed5ea9f42b53e67e7eeb22941805f Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 13:34:42 +0100 Subject: [PATCH 12/19] add to doc --- docs/make.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/make.jl b/docs/make.jl index e34a0ad2..654dd71d 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -93,11 +93,11 @@ makedocs(; "9 - ISC earthquake data" => "man/tutorial_ISC_data.md", "10 - Plot GPS vectors" => "man/tutorial_GPS.md", "11 - Read UTM data" => "man/tutorial_UTM.md", - "12 - Fault Density Map" => "man/tutorial_Fault_Map.md", "12 - VoteMaps" => "man/Tutorial_Votemaps.md", "13 - Campi Flegrei" => "man/tutorial_local_Flegrei.md", "14 - Cartesian Volcano Model" => "man/LaPalma_example.md", - "15 - Create movies" => "man/tutorial_time_Seismicity.md" + "15 - Create movies" => "man/tutorial_time_Seismicity.md", + "16 - Fault Density Map" => "man/tutorial_Fault_Map.md", ], "User Guide" => Any[ "Installation" => "man/installation.md", From ee3951b52e45ff4a8d8c2cb0a05677cdabca612a Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 13:40:01 +0100 Subject: [PATCH 13/19] remove print statements --- src/utils.jl | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/utils.jl b/src/utils.jl index 559c4ccc..9f26ee31 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -1833,10 +1833,6 @@ function CountMap(DataSet::GeoData,field::String,stepslon::Int64,stepslat::Int64 # create new GeoData Lon3D,Lat3D, Data = LonLatDepthGrid(loncen,latcen,0); - print(size(lonstep),"\n") - print(size(latstep),"\n") - print(size(countmap),"\n") - print(size(Data[:,:,1]),"\n") Data[:,:,1] .= countmap DatasetCountmap = GeoData(Lon3D,Lat3D,Data,(CountMap=Data,)) From c6b30ea79cbee2c0e1472321b693e52dc8a1e7a9 Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 14:32:50 +0100 Subject: [PATCH 14/19] correct formating --- src/utils.jl | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/src/utils.jl b/src/utils.jl index 9f26ee31..6807af1b 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -1770,31 +1770,33 @@ function VoteMap(DataSets::GeoData, criteria::String; dims=(50,50,50)) end """ -CountMap(DataSet::GeoData,field::String,stepslon::Int64,stepslat::Int64) + DatasetCountMap = CountMap(DataSet::GeoData,field::String,stepslon::Int64,stepslat::Int64) Counts the ones in a 2D GeoData field that is specified by "field" in a control area which is defined by steplon and steplat. steplon is the number of control areas in lon direction and steplat the number of control areas in lat direction The counts per control area are normalized by the highest count - julia> Data_Faults = GeoData(Lon3D,Lat3D,Faults,(Faults=Faults,)) - GeoData - size : (375, 208, 1) - lon ϵ [ -9.932408319802885 : 34.93985125012068] - lat ϵ [ 35.086096468211394 : 59.919210145128545] - depth ϵ [ 0.0 : 1.0] - fields : (:Faults,) +```julia +julia> Data_Faults = GeoData(Lon3D,Lat3D,Faults,(Faults=Faults,)) +GeoData + size : (375, 208, 1) + lon ϵ [ -9.932408319802885 : 34.93985125012068] + lat ϵ [ 35.086096468211394 : 59.919210145128545] + depth ϵ [ 0.0 : 1.0] + fields : (:Faults,) - julia> steplon = 125 - julia> steplat = 70 - julia> countmap = CountMap(Data_Faults,"Faults",steplon,steplat) +julia> steplon = 125 +julia> steplat = 70 +julia> countmap = CountMap(Data_Faults,"Faults",steplon,steplat) - GeoData - size : (124, 69, 1) - lon ϵ [ -9.751471789279 : 34.75891471959677] - lat ϵ [ 35.26604656731949 : 59.73926004602028] - depth ϵ [ 0.0 : 1.0] - fields : (:CountMap,) +GeoData + size : (124, 69, 1) + lon ϵ [ -9.751471789279 : 34.75891471959677] + lat ϵ [ 35.26604656731949 : 59.73926004602028] + depth ϵ [ 0.0 : 1.0] + fields : (:CountMap,) +```julia """ function CountMap(DataSet::GeoData,field::String,stepslon::Int64,stepslat::Int64) @@ -1834,9 +1836,9 @@ function CountMap(DataSet::GeoData,field::String,stepslon::Int64,stepslat::Int64 # create new GeoData Lon3D,Lat3D, Data = LonLatDepthGrid(loncen,latcen,0); Data[:,:,1] .= countmap - DatasetCountmap = GeoData(Lon3D,Lat3D,Data,(CountMap=Data,)) + DatasetCountMap = GeoData(Lon3D,Lat3D,Data,(CountMap=Data,)) - return DatasetCountmap + return DatasetCountMap end """ From fe88d4815205f7a3c67f4a4b2f64513ea85106fc Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 14:37:43 +0100 Subject: [PATCH 15/19] move CountMap to event_counts.jl --- src/event_counts.jl | 71 ++++++++++++++++++++++++++++++++++++++++++++ src/utils.jl | 72 --------------------------------------------- 2 files changed, 71 insertions(+), 72 deletions(-) diff --git a/src/event_counts.jl b/src/event_counts.jl index d75a5297..771ca9ea 100644 --- a/src/event_counts.jl +++ b/src/event_counts.jl @@ -114,3 +114,74 @@ function PointData2NearestGrid(pt_x,pt_y,pt_z, X,Y,Z; radius_factor=1) return count end +""" + DatasetCountMap = CountMap(DataSet::GeoData,field::String,stepslon::Int64,stepslat::Int64) + +Counts the ones in a 2D GeoData field that is specified by "field" in a control area which is defined by steplon and steplat. +steplon is the number of control areas in lon direction and steplat the number of control areas in lat direction +The counts per control area are normalized by the highest count + + +```julia +julia> Data_Faults = GeoData(Lon3D,Lat3D,Faults,(Faults=Faults,)) +GeoData + size : (375, 208, 1) + lon ϵ [ -9.932408319802885 : 34.93985125012068] + lat ϵ [ 35.086096468211394 : 59.919210145128545] + depth ϵ [ 0.0 : 1.0] + fields : (:Faults,) + +julia> steplon = 125 +julia> steplat = 70 +julia> countmap = CountMap(Data_Faults,"Faults",steplon,steplat) + +GeoData + size : (124, 69, 1) + lon ϵ [ -9.751471789279 : 34.75891471959677] + lat ϵ [ 35.26604656731949 : 59.73926004602028] + depth ϵ [ 0.0 : 1.0] + fields : (:CountMap,) +```julia + +""" +function CountMap(DataSet::GeoData,field::String,stepslon::Int64,stepslat::Int64) + + lon = unique(DataSet.lon.val) + lat = unique(DataSet.lat.val) + + # create new lon/lat arrays which hold the boundaries of the control areas + lonstep = LinRange(lon[1],lon[end],stepslon) + latstep = LinRange(lat[1],lat[end],stepslat) + dlon = abs(lonstep[2]-lonstep[1]) + dlat = abs(latstep[2]-latstep[1]) + loncen = lonstep[1]+dlon/2:dlon:lonstep[end]-dlon/2 + latcen = latstep[1]+dlat/2:dlat:latstep[end]-dlat/2 + countmap = zeros(length(loncen),length(latcen)) + + expr = Meta.parse(field) + if !haskey(DataSet.fields,expr[1]) + error("The GeoData set does not have the field: $(expr[1])") + end + + # count the ones in every control area + for i in eachindex(loncen) + for j in eachindex(latcen) + indi = findall((lon .>= lonstep[i]) .& (lon .<= lonstep[i+1])) + indj = findall((lat .>= latstep[j]) .& (lat .<= latstep[j+1])) + dataint = DataSet.fields[expr[1]][indi,indj,1] + count = sum(dataint) + countmap[i,j] = count + end + end + + # normalize count in every control area + maxcount = maximum(countmap) + countmap = countmap ./ maxcount + + # create new GeoData + Lon3D,Lat3D, Data = LonLatDepthGrid(loncen,latcen,0); + Data[:,:,1] .= countmap + DatasetCountMap = GeoData(Lon3D,Lat3D,Data,(CountMap=Data,)) + + return DatasetCountMap +end diff --git a/src/utils.jl b/src/utils.jl index 6807af1b..5561c1a5 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -1769,78 +1769,6 @@ function VoteMap(DataSets::GeoData, criteria::String; dims=(50,50,50)) VoteMap([DataSets], [criteria]; dims=dims) end -""" - DatasetCountMap = CountMap(DataSet::GeoData,field::String,stepslon::Int64,stepslat::Int64) - -Counts the ones in a 2D GeoData field that is specified by "field" in a control area which is defined by steplon and steplat. -steplon is the number of control areas in lon direction and steplat the number of control areas in lat direction -The counts per control area are normalized by the highest count - - -```julia -julia> Data_Faults = GeoData(Lon3D,Lat3D,Faults,(Faults=Faults,)) -GeoData - size : (375, 208, 1) - lon ϵ [ -9.932408319802885 : 34.93985125012068] - lat ϵ [ 35.086096468211394 : 59.919210145128545] - depth ϵ [ 0.0 : 1.0] - fields : (:Faults,) - -julia> steplon = 125 -julia> steplat = 70 -julia> countmap = CountMap(Data_Faults,"Faults",steplon,steplat) - -GeoData - size : (124, 69, 1) - lon ϵ [ -9.751471789279 : 34.75891471959677] - lat ϵ [ 35.26604656731949 : 59.73926004602028] - depth ϵ [ 0.0 : 1.0] - fields : (:CountMap,) -```julia - -""" -function CountMap(DataSet::GeoData,field::String,stepslon::Int64,stepslat::Int64) - - lon = unique(DataSet.lon.val) - lat = unique(DataSet.lat.val) - - # create new lon/lat arrays which hold the boundaries of the control areas - lonstep = LinRange(lon[1],lon[end],stepslon) - latstep = LinRange(lat[1],lat[end],stepslat) - dlon = abs(lonstep[2]-lonstep[1]) - dlat = abs(latstep[2]-latstep[1]) - loncen = lonstep[1]+dlon/2:dlon:lonstep[end]-dlon/2 - latcen = latstep[1]+dlat/2:dlat:latstep[end]-dlat/2 - countmap = zeros(length(loncen),length(latcen)) - - expr = Meta.parse(field) - if !haskey(DataSet.fields,expr[1]) - error("The GeoData set does not have the field: $(expr[1])") - end - - # count the ones in every control area - for i in eachindex(loncen) - for j in eachindex(latcen) - indi = findall((lon .>= lonstep[i]) .& (lon .<= lonstep[i+1])) - indj = findall((lat .>= latstep[j]) .& (lat .<= latstep[j+1])) - dataint = DataSet.fields[expr[1]][indi,indj,1] - count = sum(dataint) - countmap[i,j] = count - end - end - - # normalize count in every control area - maxcount = maximum(countmap) - countmap = countmap ./ maxcount - - # create new GeoData - Lon3D,Lat3D, Data = LonLatDepthGrid(loncen,latcen,0); - Data[:,:,1] .= countmap - DatasetCountMap = GeoData(Lon3D,Lat3D,Data,(CountMap=Data,)) - - return DatasetCountMap -end - """ Data_R = RotateTranslateScale(Data::Union{ParaviewData, CartData}; Rotate=0, Translate=(0,0,0), Scale=(1.0,1.0,1.0), Xc=(0.0,0.0)) From 90709ab24c8a8d1edb9a1656e79fb801347341da Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 14:46:00 +0100 Subject: [PATCH 16/19] move tests to test_event_counts.jl --- test/test_event_counts.jl | 11 +++++++++++ test/test_utils.jl | 9 +-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/test/test_event_counts.jl b/test/test_event_counts.jl index d8584de5..09654f2f 100644 --- a/test/test_event_counts.jl +++ b/test/test_event_counts.jl @@ -6,6 +6,11 @@ Grid_cart = CartData(XYZGrid(-20:20,-20:.1:20,-30:30)) Lon,Lat,Depth = LonLatDepthGrid(-20:20,-20:.1:20,-30:30); Grid_geo = GeoData(Lon,Lat,Depth,(;Depth)) +# create 2D GeoData struct +Lon,Lat,Depth = LonLatDepthGrid(10:20,30:40,0); +CM = zeros(size(Data1)); CM[1:5,1:5] .= 1.0 +Data_set2D = GeoData(Lon,Lat,Depth,(Count=CM,)) + using StableRNGs rng = StableRNG(123) @@ -41,3 +46,9 @@ Grid_Count = PointData2NearestGrid(pt[:,1],pt[:,2],pt[:,3], Grid_geo; radius_fac # Test in case the EQ data is also specified as GeoData Grid_Count = PointData2NearestGrid(EQ_geo, Grid_geo; radius_factor=2) @test extrema(Grid_Count.fields.Count) == (0, 85) + +# Test CountMap +Data_CountMap = CountMap(Data_set2D,"Count",5,5) +@test Data_CountMap.fields.CountMap[1,1] == 1.0 +@test Data_CountMap.fields.CountMap[2,2] == 0.4444444444444444 +@test Data_CountMap.fields.CountMap[4,4] == 0.0 diff --git a/test/test_utils.jl b/test/test_utils.jl index 88b3ebc6..e2f28e83 100644 --- a/test/test_utils.jl +++ b/test/test_utils.jl @@ -7,8 +7,7 @@ using GeophysicalModelGenerator Lon,Lat,Depth = LonLatDepthGrid(10:20,30:40,-50km); Data1 = Depth*2; # some data Vx1,Vy1,Vz1 = Data1*3,Data1*4,Data1*5 -CM = zeros(size(Data1)); CM[1:5,1:5] .= 1.0 -Data_set2D = GeoData(Lon,Lat,Depth,(Depthdata=Data1,LonData1=Lon, Velocity=(Vx1,Vy1,Vz1),Count=CM)) +Data_set2D = GeoData(Lon,Lat,Depth,(Depthdata=Data1,LonData1=Lon, Velocity=(Vx1,Vy1,Vz1))) @test_throws ErrorException CrossSection(Data_set2D, Depth_level=-10) # Test interpolation of depth to a given cartesian XY-plane @@ -207,12 +206,6 @@ Data_VoteMap = VoteMap([Data_set3D_reverse, Data_set3D], ["Depthdata<-560","LonD @test Data_VoteMap.fields[:VoteMap][9 ,9,1]==1 @test Data_VoteMap.fields[:VoteMap][9 ,9,2]==0 -# Test CountMap -Data_CountMap = CountMap(Data_set2D,"Count",5,5) -@test Data_CountMap.fields.CountMap[1,1] == 1.0 -@test Data_CountMap.fields.CountMap[2,2] == 0.4444444444444444 -@test Data_CountMap.fields.CountMap[4,4] == 0.0 - # Test rotation routines X,Y,Z = LonLatDepthGrid(10:20,30:40,-50:-10); Data_C = ParaviewData(X,Y,Z,(Depth=Z,)) From 7d5986c84bb2188b48c78e193e46e563a04b4cac Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 14:54:21 +0100 Subject: [PATCH 17/19] finished tests --- src/event_counts.jl | 2 +- test/test_event_counts.jl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/event_counts.jl b/src/event_counts.jl index 771ca9ea..5f7b39a5 100644 --- a/src/event_counts.jl +++ b/src/event_counts.jl @@ -1,6 +1,6 @@ using NearestNeighbors -export PointData2NearestGrid +export PointData2NearestGrid, CountMap """ diff --git a/test/test_event_counts.jl b/test/test_event_counts.jl index 09654f2f..d3369fed 100644 --- a/test/test_event_counts.jl +++ b/test/test_event_counts.jl @@ -8,7 +8,7 @@ Grid_geo = GeoData(Lon,Lat,Depth,(;Depth)) # create 2D GeoData struct Lon,Lat,Depth = LonLatDepthGrid(10:20,30:40,0); -CM = zeros(size(Data1)); CM[1:5,1:5] .= 1.0 +CM = zeros(size(Depth)); CM[1:5,1:5] .= 1.0 Data_set2D = GeoData(Lon,Lat,Depth,(Count=CM,)) using StableRNGs From a9b01dfc77858173f393597c0f90d97f6780973c Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 15:02:52 +0100 Subject: [PATCH 18/19] improved function description --- src/event_counts.jl | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/event_counts.jl b/src/event_counts.jl index 5f7b39a5..e25cdeb2 100644 --- a/src/event_counts.jl +++ b/src/event_counts.jl @@ -117,10 +117,9 @@ end """ DatasetCountMap = CountMap(DataSet::GeoData,field::String,stepslon::Int64,stepslat::Int64) -Counts the ones in a 2D GeoData field that is specified by "field" in a control area which is defined by steplon and steplat. -steplon is the number of control areas in lon direction and steplat the number of control areas in lat direction -The counts per control area are normalized by the highest count - +Takes a 2D GeoData struct and counts entries of `field` per predefined control area. `field` should only consist of 1.0s and 0.0s. The control area is defined by `steplon` and `steplat`. +`steplon` is the number of control areas in longitude direction and `steplat` the number of control areas in latitude direction. +The counts per control area are normalized by the highest count. ```julia julia> Data_Faults = GeoData(Lon3D,Lat3D,Faults,(Faults=Faults,)) From f48dda3e709c19bc2870cb4c5e8b93a570ef9241 Mon Sep 17 00:00:00 2001 From: ChristianSchuler Date: Thu, 29 Feb 2024 15:29:21 +0100 Subject: [PATCH 19/19] .pngs instead of .svgs to avoid spellcheck error --- docs/src/assets/img/FaultDensity.png | Bin 0 -> 78841 bytes docs/src/assets/img/FaultDensity.svg | 1082 ------- docs/src/assets/img/WorldMap.png | Bin 0 -> 92594 bytes docs/src/assets/img/WorldMap.svg | 3944 -------------------------- docs/src/man/tutorial_Fault_Map.md | 8 +- tutorials/Fault_Density.jl | 4 +- 6 files changed, 6 insertions(+), 5032 deletions(-) create mode 100644 docs/src/assets/img/FaultDensity.png delete mode 100644 docs/src/assets/img/FaultDensity.svg create mode 100644 docs/src/assets/img/WorldMap.png delete mode 100644 docs/src/assets/img/WorldMap.svg diff --git a/docs/src/assets/img/FaultDensity.png b/docs/src/assets/img/FaultDensity.png new file mode 100644 index 0000000000000000000000000000000000000000..5cbc1daf44245ed713f4181fe20d12b4f9a5705f GIT binary patch literal 78841 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�P>!nHFW1}E!s_}N7hNtNH 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 literal 0 HcmV?d00001 diff --git a/docs/src/assets/img/FaultDensity.svg b/docs/src/assets/img/FaultDensity.svg deleted file mode 100644 index e8dd706f..00000000 --- a/docs/src/assets/img/FaultDensity.svg +++ /dev/null @@ -1,1082 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/src/assets/img/WorldMap.png b/docs/src/assets/img/WorldMap.png new file mode 100644 index 0000000000000000000000000000000000000000..b7c4e6f491d8cfbe38b43fc58bafa17f9d5ceaac GIT binary patch literal 92594 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 alGvoLH1LK>YYqzjxvO|zp;*o$^#20BSSIuU literal 0 HcmV?d00001 diff --git a/docs/src/assets/img/WorldMap.svg b/docs/src/assets/img/WorldMap.svg deleted file mode 100644 index 64a34c82..00000000 --- a/docs/src/assets/img/WorldMap.svg +++ /dev/null @@ -1,3944 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/src/man/tutorial_Fault_Map.md b/docs/src/man/tutorial_Fault_Map.md index 3bf28d30..f0d22c17 100644 --- a/docs/src/man/tutorial_Fault_Map.md +++ b/docs/src/man/tutorial_Fault_Map.md @@ -59,7 +59,7 @@ heatmap(lon.val,lat.val,coastlines',legend=false,colormap=cgrad(:gray1,rev=true) plot!(faults; color=:red,legend = false,title="Fault Map World",ylabel="Lat",xlabel="Lon") ```` -![tutorial_Fault_Map](../assets/img/WorldMap.svg) +![tutorial_Fault_Map](../assets/img/WorldMap.png) Restrict area to Europe @@ -83,8 +83,8 @@ Data_Faults = GeoData(Lon3D,Lat3D,Faults,(Faults=Faults,)) Create a density map of the fault data. This is done with the CountMap function. This function takes a specified field of a 2D GeoData struct and counts the entries in all control areas which are defined by steplon (number of control areas in lon direction) and steplat (number of control areas in lat direction). The field should only consist of 0.0 and 1.0 and the steplength. The final result is normalized by the highest count. ````julia -steplon = 125 -steplat = 70 +steplon = 188 +steplat = 104 countmap = CountMap(Data_Faults,"Faults",steplon,steplat) ```` @@ -99,7 +99,7 @@ heatmap(lon,lat,coastlinesEurope',colormap=cgrad(:gray1,rev=true),alpha=1.0); heatmap!(lon,lat,countmap.fields.CountMap[:,:,1]',colormap=cgrad(:batlowW,rev=true),alpha = 0.8,legend=true,title="Fault Density Map Europe",ylabel="Lat",xlabel="Lon") ```` -![tutorial_Fault_Map](../assets/img/FaultDensity.svg) +![tutorial_Fault_Map](../assets/img/FaultDensity.png) --- diff --git a/tutorials/Fault_Density.jl b/tutorials/Fault_Density.jl index 46b9d4a3..b25104e6 100644 --- a/tutorials/Fault_Density.jl +++ b/tutorials/Fault_Density.jl @@ -36,7 +36,7 @@ coastlines = map(y -> y > 1 ? 1 : y, coastlines) # Plot the fault data heatmap(lon.val,lat.val,coastlines',legend=false,colormap=cgrad(:gray1,rev=true),alpha=0.4); plot!(faults; color=:red,legend = false,title="Fault Map World",ylabel="Lat",xlabel="Lon") -# ![tutorial_Fault_Map](../assets/img/WorldMap.svg) +# ![tutorial_Fault_Map](../assets/img/WorldMap.png) # Restrict area to Europe indlat = findall((lat .> 35) .& (lat .< 60)) @@ -63,4 +63,4 @@ coastlinesEurope = itp[lon,lat] coastlinesEurope = map(y -> y > 1 ? 1 : y, coastlinesEurope) heatmap(lon,lat,coastlinesEurope',colormap=cgrad(:gray1,rev=true),alpha=1.0); heatmap!(lon,lat,countmap.fields.CountMap[:,:,1]',colormap=cgrad(:batlowW,rev=true),alpha = 0.8,legend=true,title="Fault Density Map Europe",ylabel="Lat",xlabel="Lon") -# ![tutorial_Fault_Map](../assets/img/FaultDensity.svg) +# ![tutorial_Fault_Map](../assets/img/FaultDensity.png)