Back to Nutria ¦ Start Page

Convert Multiple SDC Via Nutria Function

HydroVish.inc


 

	#
	# Define a gmake function to encode paths in URL format
	#
	space=${} # defining a space
	encode=$(subst $(space),+,$(subst :,%3A,$(subst \,%2F,$(subst /,%2F,$(1)))))

	#
	# Specify path to HydroVish.exe here.
	#
	HydroVish.exe=C:/Users/$(USERNAME)/AirborneHydroMapping/HydroVish/bin/win64/HydroVish.exe

	HydroVish=QUERY_STRING="$(call encode,$1&Action=Process)" $(HydroVish.exe)

	#
	# Use this output folder to determine the directory from the make target $@
	#
	OutputFolder=$(abspath $(dir $@))

	#
	# Defining a make function to convert SDC files to F5
	# Parameters:
	#     $1 .... gridname
	#
	SDCtoF5=$(call HydroVish,InputFiles=$<&Nutrition::gridname=$1&Output Folder=$(OutputFolder)&Nutrition=SDC to F5)

	#
	# Parameters:
	#
	#    $1...coordinate system
	#
	$(warning TODO: Support remaining parameters)
	#
	ScannerToWorldCoordinates=$(call HydroVish,InputFiles=$<&Nutrition::coordinate system of trajectory=$1&Output Folder=$(OutputFolder)&Nutrition=Scanner Coordinates to World Coordinates)


	#
	# Parameters:
	#
	#   $1 ... list of files to refragment
	#
	#
	$(warning TODO: Support remaining parameters)
	#
	Refragment=$(call HydroVish,InputFiles=$1&Output Folder=$(OutputFolder)&Nutrition=Refragment a point cloud)

	export REQUEST_METHOD=GET

	

HydroVish.rules



	#
	# Pattern Rules to convert each SDC file, setting the QUERY_STRING environment variable as part of the rule
	#
	%.f5: $(InputDir)/%.sdc | $(HydroVish.exe)
		$(call SDCtoF5,$(gridname))

	%.f5.world: %.f5
		$(call ScannerToWorldCoordinates,$(CoordinateSystem))
		@touch $@



	clean:
		$(RM) *.f5 *.world

	define  NoHydroVishInstalled.message


	*** ERROR ***
	HydroVish was not installed in its default path $(HydroVish.exe) .

	Please re-install HydroVish using the default settings or edit HydroVish.inc .
	Alternatively, you may also specify the path on the makefile command line, for instance:

	$(MAKE) -j HydroVish.exe=$HOME/vish/bin/arch-x86_64-w64-mingw32-Optimize/HydroVish.exe


	endef

	$(HydroVish.exe):
		$(error $(NoHydroVishInstalled.message))
	

Makefile


 
	InputDir=C:/Users/$(USER)/AirborneHydroMapping/HydroVish/data/SampleData/FWF

	gridname=TestData
	CoordinateSystem=UTM North


	#
	# Generate the list of output files from all SDC files in the input directory.
	# The only parameter to specify is the InputDir and the (optional) gridname
	#
	FilesConvertedFromSDC=$(subst .sdc,.f5,$(notdir $(wildcard $(InputDir)/*.sdc)))

	FilesInWorldCoordinates=$(subst .f5,.f5.world,$(FilesConvertedFromSDC))

	Result: $(gridname).f5

	$(gridname).f5: $(FilesInWorldCoordinates)
		$(call Refragment,$(subst .world,,($<)))
		mv Merged_Frag.f5 $@

	#
	# https://www.thinkplexx.com/learn/howto/build-chain/make-based/prevent-gnu-make-from-always-removing-files-it-says-things-like-rm-or-removing-intermediate-files
	#
	.SECONDARY: $(FilesConvertedFromSDC)


	#
	# Placing function definitions in its own include file
	#
	include HydroVish.inc

	#
	# Also placing rules in its own include file,
	# all of those rules are project-independent
	#
	include HydroVish.rules

	


Back to Nutria ¦ Start Page