def testCalculateSourceDest(self): context = QgsCoordinateTransformContext() #empty context self.assertEqual( context.calculateDatumTransforms( QgsCoordinateReferenceSystem('EPSG:3111'), QgsCoordinateReferenceSystem('EPSG:4283')), QgsDatumTransform.TransformPair(-1, -1)) #add specific source/dest pair - should take precedence context.addSourceDestinationDatumTransform( QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:4283'), 3, 4) self.assertEqual( context.calculateDatumTransforms( QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:4283')), QgsDatumTransform.TransformPair(3, 4)) self.assertEqual( context.calculateDatumTransforms( QgsCoordinateReferenceSystem('EPSG:3111'), QgsCoordinateReferenceSystem('EPSG:4283')), QgsDatumTransform.TransformPair(-1, -1)) self.assertEqual( context.calculateDatumTransforms( QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:3111')), QgsDatumTransform.TransformPair(-1, -1)) # check that reverse transforms are automatically supported self.assertEqual( context.calculateDatumTransforms( QgsCoordinateReferenceSystem('EPSG:4283'), QgsCoordinateReferenceSystem('EPSG:28356')), QgsDatumTransform.TransformPair(4, 3))
def testCalculateSourceDest(self): context = QgsCoordinateTransformContext() #empty context self.assertEqual(context.calculateDatumTransforms(QgsCoordinateReferenceSystem('EPSG:3111'), QgsCoordinateReferenceSystem('EPSG:4283')), QgsDatumTransform.TransformPair(-1, -1)) #add specific source/dest pair - should take precedence context.addSourceDestinationDatumTransform(QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:4283'), 3, 4) self.assertEqual(context.calculateDatumTransforms(QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:4283')), QgsDatumTransform.TransformPair(3, 4)) self.assertEqual(context.calculateDatumTransforms(QgsCoordinateReferenceSystem('EPSG:3111'), QgsCoordinateReferenceSystem('EPSG:4283')), QgsDatumTransform.TransformPair(-1, -1)) self.assertEqual(context.calculateDatumTransforms(QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:3111')), QgsDatumTransform.TransformPair(-1, -1)) # check that reverse transforms are automatically supported self.assertEqual(context.calculateDatumTransforms(QgsCoordinateReferenceSystem('EPSG:4283'), QgsCoordinateReferenceSystem('EPSG:28356')), QgsDatumTransform.TransformPair(4, 3))
def testCalculate(self): context = QgsCoordinateTransformContext() #empty context self.assertEqual( context.calculateDatumTransforms( QgsCoordinateReferenceSystem('EPSG:3111'), QgsCoordinateReferenceSystem('EPSG:4283')), (-1, -1)) #add src transform context.addSourceDatumTransform( QgsCoordinateReferenceSystem('EPSG:28356'), 1) self.assertEqual( context.calculateDatumTransforms( QgsCoordinateReferenceSystem('EPSG:3111'), QgsCoordinateReferenceSystem('EPSG:4283')), (-1, -1)) self.assertEqual( context.calculateDatumTransforms( QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:4283')), (1, -1)) self.assertEqual( context.calculateDatumTransforms( QgsCoordinateReferenceSystem('EPSG:4283'), QgsCoordinateReferenceSystem('EPSG:28356')), (-1, -1)) #add dest transform context.addDestinationDatumTransform( QgsCoordinateReferenceSystem('EPSG:4283'), 2) self.assertEqual( context.calculateDatumTransforms( QgsCoordinateReferenceSystem('EPSG:3111'), QgsCoordinateReferenceSystem('EPSG:4326')), (-1, -1)) self.assertEqual( context.calculateDatumTransforms( QgsCoordinateReferenceSystem('EPSG:3111'), QgsCoordinateReferenceSystem('EPSG:4283')), (-1, 2)) self.assertEqual( context.calculateDatumTransforms( QgsCoordinateReferenceSystem('EPSG:4283'), QgsCoordinateReferenceSystem('EPSG:3111')), (-1, -1)) #add specific source/dest pair - should take precedence context.addSourceDestinationDatumTransform( QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:4283'), 3, 4) self.assertEqual( context.calculateDatumTransforms( QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:4283')), (3, 4)) self.assertEqual( context.calculateDatumTransforms( QgsCoordinateReferenceSystem('EPSG:3111'), QgsCoordinateReferenceSystem('EPSG:4283')), (-1, 2)) self.assertEqual( context.calculateDatumTransforms( QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:3111')), (1, -1))
def L(data): """Get the pipe length from QGIS""" if data.L is None: distance = qgis.core.QgsDistanceArea() layer = qgis.utils.plugins["XPSS"].params.pipes_vlay lyr_crs = layer.crs() elps = QgsProject.instance().ellipsoid() elps_crs = QgsCoordinateReferenceSystem() elps_crs.createFromUserInput(elps) logger.debugger("Map Ellipsoid: " + str(elps)) #transform = iface.mapCanvas().mapSettings().transformContext() trans_context = QgsCoordinateTransformContext() trans_context.calculateDatumTransforms(lyr_crs, elps_crs) distance.setEllipsoid(elps) distance.setSourceCrs(lyr_crs, trans_context) units = qgis.core.QgsUnitTypes logger.debugger("units: " + str(units)) #get_lst is the qepanet parameter field name for the attribute #sort_lst = map(str, sort_lst) #convert the array of ints to an array of strings #df = self.pipe_fts.filter(get_lst, axis=1) #extract columns from qepanet data len_ = [] features = layer.getFeatures() #logger.debugger("Converting from "+units.toString(units.DistanceMeters)+" to "+units.toString(calc_units)+".") #factor = QgsUnitTypes.fromUnitToUnitFactor(units.DistanceMeters, calc_units) ## TODO: Soft code #logger.debugger("Conversion factor: "+str(factor)) for feature in features: #l_calc = distance.measureLength(feature.geometry())*factor #TODO: Soft code units l_calc = distance.measureLength(feature.geometry()) len_.append(l_calc) #extract length from the QgsFeature logger.debugger(feature['id'] + ": " + str(l_calc)) data.L = np.array(len_) * LengthUnits['m'] logger.debugger("L: " + str(data.L)) return data.L.reshape((-1, 1))
def testCalculate(self): context = QgsCoordinateTransformContext() #empty context self.assertEqual(context.calculateDatumTransforms(QgsCoordinateReferenceSystem('EPSG:3111'), QgsCoordinateReferenceSystem('EPSG:4283')), (-1, -1)) #add src transform context.addSourceDatumTransform(QgsCoordinateReferenceSystem('EPSG:28356'), 1) self.assertEqual(context.calculateDatumTransforms(QgsCoordinateReferenceSystem('EPSG:3111'), QgsCoordinateReferenceSystem('EPSG:4283')), (-1, -1)) self.assertEqual(context.calculateDatumTransforms(QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:4283')), (1, -1)) self.assertEqual(context.calculateDatumTransforms(QgsCoordinateReferenceSystem('EPSG:4283'), QgsCoordinateReferenceSystem('EPSG:28356')), (-1, -1)) #add dest transform context.addDestinationDatumTransform(QgsCoordinateReferenceSystem('EPSG:4283'), 2) self.assertEqual(context.calculateDatumTransforms(QgsCoordinateReferenceSystem('EPSG:3111'), QgsCoordinateReferenceSystem('EPSG:4326')), (-1, -1)) self.assertEqual(context.calculateDatumTransforms(QgsCoordinateReferenceSystem('EPSG:3111'), QgsCoordinateReferenceSystem('EPSG:4283')), (-1, 2)) self.assertEqual(context.calculateDatumTransforms(QgsCoordinateReferenceSystem('EPSG:4283'), QgsCoordinateReferenceSystem('EPSG:3111')), (-1, -1)) #add specific source/dest pair - should take precedence context.addSourceDestinationDatumTransform(QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:4283'), 3, 4) self.assertEqual(context.calculateDatumTransforms(QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:4283')), (3, 4)) self.assertEqual(context.calculateDatumTransforms(QgsCoordinateReferenceSystem('EPSG:3111'), QgsCoordinateReferenceSystem('EPSG:4283')), (-1, 2)) self.assertEqual(context.calculateDatumTransforms(QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:3111')), (1, -1))