# Tag Info

8

Think of the geometry. The incidence angle refers to the angle from nadir, or directly beneath the satellite, which would be 0°. As the sensor looks out to the sides from this nadir, the angle of incidence increases as does the fov (field of view). This is why the resolution decreases with increase in incidence angle. This illustration from the Sentinel ...

5

Here's a very simple approach that offloads all the processing into the Sort GP tool. Since you have access to an Advanced license, sorting by shape and starting at the lower left corner gives quick results. import os, arcpy arcpy.env.overwriteOutput = True inFC = r'<path>' outFC = r'<path>' # create output FC to hold points and field to link ...

5

Since Landsat satellites are not placed a true polar orbit -- they are in a "near polar" orbit -- their heading (azimuth) is never zero. See NASA's Landsat Handbook and Landsat Science. It is closest to zero at the equator (8.2°) but deviates from this the closer it gets to the poles. Thus, yes, knowing the center coordinates (latitude, actually) of the ...

5

For accurate calculations, convert (lat, lon, elevation) directly to earth-centered (x,y,z). (If you don't do this, you need to retain additional information about the local normal ["up"] directions in order to compute angles accurately at nonzero elevations.) Elevation Given two points (x,y,z) and (x',y',z') in an earth-centered coordinate system, the ...

4

For anyone needing this: function computeAngle(pointA, pointB){ var dLon = (pointB.x - pointA.x) * Math.PI / 180; var lat1 = pointA.y * Math.PI / 180; var lat2 = pointB.y * Math.PI / 180; var y = Math.sin(dLon) * Math.cos(lat2); var x = Math.cos(lat1)*Math.sin(lat2) - Math.sin(...

4

Bearing Distance To Line (Data Management) Creates a new feature class containing geodetic line features constructed based on the values in an x-coordinate field, y-coordinate field, bearing field, and distance field of a table. bearing_units (Optional) The units of the values in the Bearing Field. DEGREES —Values in decimal degrees; this ...

4

Given the examples of the rectangles and parallelograms, and if I'm understanding your formulation of "lower-left" (i.e., "the most south-west") correctly, a naive solution: You could sort the four vertices in order of ascending latitude(i.e., the south-most is first, north-most is last). If two are equal in latitude, their sequence doesn't matter. Then, ...

3

As Vince said initially, the default XY tolerance for a new UTM based feature class is 0.001. That means any points closer than that would be considered the same point. Rotating by 1.3 degrees is a fairly small amount, so the coordinates of your grid corners are probably going to fall on values that would be more precise than 0.001 units. That, combined with ...

3

I've used Richie Carmichael's code from his blog post. In a later post he said he fixed some memory leaks and uploaded to arcscripts, however that link is broken. I'll look for the code - I think I downloaded it years ago. Anyway, here is the code from his first post. Take a look at the azimuth outputs. The code uses the "projection engine" dll. I've ...

3

If the data you will be using is on the scale of the given example, you can treat the problem and Earth as flat without significant accuracy loss. If that does not violate your use case, then calculate the metric shift for both dimensions like you had a triangle and convert it back to degrees. The only tricky part is that the longitude degrees are not of ...

3

The Generate Near Table tool (under Analysis Tools > Proximity) will get you started. You can give the tool a search radius around your reference points and tell it to find the 4 nearest other points, it will calculate the distance and angle to each of the 4 points from the reference point. Make sure the Angle box is checked, Find Only Closest Feature is ...

2

I have attached a simple ArcGIS model that converts 1) source point coordinates 2) a bearing distance (angle) and 3) distance to a point shapefile. The only input is a .dbf or .csv file of your source point coordinates, bearing and distance. The output should be exactly what you are looking for. Best of luck!

2

Eventually, I came up with a good result. This is the procedure I followed to estimate Landsat azimuth at my location. I drew two segments in a GIS, one for each side of my scene (left and right, see figure 1), and added four ("real") corner points on the end of them (green points). This is done in the Reference System of the specific scene (in my case is ...

2

This function will give you an angle (courtesy of Curtis Price): def get_angle(xy1, xy2): arcpy.AddMessage(xy1) """Calculate azimuth angle from two points. (Zero is north.)""" try: # ArcPy point objects x1, y1, x2, y2 = xy1.X, xy1.Y, xy2.X, xy2.Y except: # xy strings, e.g. "0 0" if isinstance(xy1, basestring) ...

2

Ok, I've figured this out. Steps are as follows: Use a PolylineAnalyzer and output segments only (this method is better, but slower than just using a Chopper transformer as it outputs angles of segments). Intersect the segments using an Intersector transformer and output nodes. Store incoming segments in a list. Ensure the intersection nodes are not ...

2

PolylineAnalyzer (from the FME Store) you can type 'PolylineAnalyzer' on the workbench worksheet and download from there. Takes polylines and polygons and analyzes relationships between their components - vertices and segments. FME Store link https://store.safe.com/transformers/polylineanalyzer usage: You can work the angle out and then use a ...

2

http://anitagraser.com/2015/05/24/how-to-create-illuminated-contours-tanaka-style/ contains some way to do this: First you split the lines/polygons into their atomic segments with v.split. Then you calculate the azimuth for each of those features, see eg How to add Direction and Distance to attribute table? for the formula. I don't know a better way but ...

2

there is no "null" field with shapefile because it uses dbf table. see here Apart from that, you could adapt your code for horizontal lines import math def GetOrientation(shape): if (shape.lastpoint.y == shape.firstpoint.y): degree = 90 else: radian = math.atan((shape.lastpoint.x - shape.firstpoint.x)/(shape.lastpoint.y - ...

2

To avoid a divide by zero error I would try changing: import math def GetAzimuthPolyline(shape): radian = math.atan((shape.lastpoint.x - shape.firstpoint.x)/(shape.lastpoint.y - shape.firstpoint.y)) degrees = radian * 180 / math.pi return degrees to: import math def GetAzimuthPolyline(shape): if shape.lastpoint.y - shape.firstpoint.y != ...

2

The transverse Mercator Projection is conformal and preserves angles. So the square should still be a square. Area will change though.

1

See the examples on las2las README. The correct way to express this parameter is: -keep_scan_angle -15 15 The full code would be: las2las -i input.las -o output.las -keep_scan_angle -15 15 For filtering LiDAR data by scan angle with other software, refer to: How to filter LiDAR data by scan angle?

1

In order to calculate the angle P1-InterPoint-P2: Calculate the difference of the azimuths InterPoint-P1 and Interpoint-P2. Mind you that you have to investigate the azimuth according to the quadrant that it lies, so: if dx>0 & dy>0 : final azimith=azimuth if dx<0 & dy>0 : final azimuth=180-azimuth if dx<0 & dy<0: final ...

1

Yes, they will be square in both projections! Breaking it down: UTM stands for Universal Transverse Mercator. From the Wikipedia article: The Universal Transverse Mercator (UTM) conformal projection ... i.e. UTM is "conformal." As for what "conformal" means, again from Wikipedia: Conformal, or orthomorphic, map projections preserve angles ...

1

There's a reason UTM projections don't extend to infinitive and engulf the whole globe. As you move further away from the UTM's central meridian the distortion becomes more and more apparent. In the case of a transverse Mercator projection the distortion, as its a conformal projection, is applied equally both in the X and Y axis, therefore your angles ...

1

That does the trick. Must have been blind when reading my transformer reference guide...

1

In ArcMap, create the first point of your triangle, then right click the mouse and select distance and direction. Since you know three pieces of the triangle (side lengths and angles) you can use the Law of Sines or the Law of Cosines to solve all the angles and side lengths. Better still use an online triangle solver.

1

One short comments regarding your other questions: Why is azimuth resolution worse than range resolution in Sentinel1 (SAR) You are absolutely right that sentinel TOPS have a worse azimuth resolution comparing with other data. This exactly the unique characteristic of TOPS. The working mode of TOPS (also including ScanSAR) is designed to sacrifice azimuth ...

1

If the LineOnLineOverlayer (According to the help files) does indeed give a list of the lines associated with the intersection. You could get the line start and end vertices for each line (CoordinateExtractor) perhaps after clipping to a small area around the intersection. Then it's into the 'ExpressionEvaluator' for some back to basics trigonometry to get ...

1

The problem was that I was calculating the angle for the marker symbol variable, rather than each instance of the symbol added to the graphics array. I changed the loop where the graphics are added, so that each new addition created a new instance of the marker symbol with its own angle calculated. Now the orientation of the symbol stays consistent.

1

Is the GNSS receiver providing NMEA data? If so, is the GSV sentence provided? If so, the elevation in degrees is provided in that specific sentence. http://aprs.gids.nl/nmea/#gsv

Only top voted, non community-wiki answers of a minimum length are eligible