Instead of using Photoshop, you can fix the problem directly on QGIS.
Hillshade rendering (or any other raster rendering) happens individual layer by layer, as each layer know nothing about their neighbours.
You can bundle the all 9 rasters in a single layer by creating a virtual raster. You have a tool to create the virtual raster in the processing toolbox.
If I understand correctly:
You loaded the DEMs into QGIS, you were happy with the styling
You weren't happy with the artefacts, so you did some polishing in Photoshop
When loading the polished-up rasters, the styling in QGIS is different from what it was originally.
If that's the case, you should be able to apply the styling of your "old" layers ...
Thank you @nmtoken. This tip made it for me.
I'm using a WMS with elevation-raster provided from HEXAGON AB by their Danish content programme. The service has 4 layers in it providing different data sources. Each with 12 alternaive styling formats besides "Default". If you just throw in the standard WMS URL into QGIS it will show the Default style, ...
Had a similar problem after upgrading from QGIS 3.10 to 3.16.3
When clicking on "Style > Load Styles > From database (postgres)" for a vector layer none of the existing styles appeared, only showing "no styles found in database"
Checking the Postgresql log file showed QGIS 3.16 was looking for a column called 'type' that contains a ...
Building on the other answers based on a comparison with a stored original location, you can make QGIS do more of the work for you:
In Layer properties / Fields use the field calculator (abacus icon) to create a new field, say called OrigLocation, type text, with the expression geom_to_wkt($geometry). This encodes the current location as a string including ...
Maybe there are more straightforward ways, but this is working.
Create 2 datetime fields in your vector layer (ts and ts2) in the example. Update the values so that each field contains the same timestamp (using the now() function):
update the ts columns so that it has the same exact values of the ts2 field:
in the attribute form, set the Default value of ...
You can create two new attributes: initial_coordinate (normal field) and current_coordinate (virtual field). Than set a Rule based style, the rule comparing if the two coordinates are equal or not.
Before moving, create a new attribute field with field calculator for the coordinates, using the expression $x / $y for x and y ...
Before moving your points create a field each for the x and y coordinates using the $x and $y functions called something like "original_x" and "original_y"
Then in the layer symbology create a rule based symbology and add a feature with this rule:
("original_x" || "original_y" <> $x || $y)
Then also add a second ...
One possibility: Hardcode the current coordinates into the attribute table as integer fields using $x and $y. Then set the data defined override of the fill colour of the points to if((round($x) NOT LIKE "column with your old x-coordinate" OR round($y) NOT LIKE "column with your old y-coordinate"),'green','red')
If the point has been ...