def test_int(self): name = "_int" utils.add_field_with_value(self.shapefile, name, field_value=5) nt.assert_true(name in [f.name for f in arcpy.ListFields(self.shapefile)]) newfield = arcpy.ListFields(self.shapefile, name)[0] nt.assert_equal(newfield.type, u'Integer')
def test_float(self): name = "_float" utils.add_field_with_value(self.shapefile, name, field_value=5.0) nt.assert_true( name in [f.name for f in arcpy.ListFields(self.shapefile)]) newfield = arcpy.ListFields(self.shapefile, name)[0] nt.assert_equal(newfield.type, u'Double')
def test_int(self): name = "_int" utils.add_field_with_value(self.shapefile, name, field_value=5) nt.assert_true( name in [f.name for f in arcpy.ListFields(self.shapefile)]) newfield = arcpy.ListFields(self.shapefile, name)[0] nt.assert_equal(newfield.type, u'Integer')
def test_float(self): name = "_float" utils.add_field_with_value(self.shapefile, name, field_value=5.0) nt.assert_true(name in [f.name for f in arcpy.ListFields(self.shapefile)]) newfield = arcpy.ListFields(self.shapefile, name)[0] nt.assert_equal(newfield.type, u'Double')
def test_no_value_number(self): name = "_no_valnum" utils.add_field_with_value(self.shapefile, name, field_type='DOUBLE') nt.assert_true( name in [f.name for f in arcpy.ListFields(self.shapefile)]) newfield = arcpy.ListFields(self.shapefile, name)[0] nt.assert_equal(newfield.type, u'Double')
def test_no_value_number(self): name = "_no_valnum" utils.add_field_with_value(self.shapefile, name, field_type='DOUBLE') nt.assert_true(name in [f.name for f in arcpy.ListFields(self.shapefile)]) newfield = arcpy.ListFields(self.shapefile, name)[0] nt.assert_equal(newfield.type, u'Double')
def test_with_general_function(self): utils.add_field_with_value(self.shapefile, self.field_added, field_type="LONG") utils.populate_field(self.shapefile, lambda row: row[0]**2, self.field_added, "FID") with arcpy.da.SearchCursor(self.shapefile, [self.field_added, "FID"]) as cur: for row in cur: nt.assert_equal(row[0], row[1]**2)
def test_no_value_string(self): name = "_no_valstr" utils.add_field_with_value(self.shapefile, name, field_type='TEXT', field_length=15) nt.assert_true(name in [f.name for f in arcpy.ListFields(self.shapefile)]) newfield = arcpy.ListFields(self.shapefile, name)[0] nt.assert_equal(newfield.type, u'String') nt.assert_true(newfield.length, 15)
def test_unicode(self): name = "_unicode" utils.add_field_with_value(self.shapefile, name, field_value=u"example_value", field_length=15) nt.assert_true(name in [f.name for f in arcpy.ListFields(self.shapefile)]) newfield = arcpy.ListFields(self.shapefile, name)[0] nt.assert_equal(newfield.type, u'String') nt.assert_true(newfield.length, 15)
def test_with_general_function(self): utils.add_field_with_value(self.shapefile, self.field_added, field_type="LONG") utils.populate_field( self.shapefile, lambda row: row[0]**2, self.field_added, "FID" ) with arcpy.da.SearchCursor(self.shapefile, [self.field_added, "FID"]) as cur: for row in cur: nt.assert_equal(row[0], row[1] ** 2)
def test_unicode(self): name = "_unicode" utils.add_field_with_value(self.shapefile, name, field_value=u"example_value", field_length=15) nt.assert_true( name in [f.name for f in arcpy.ListFields(self.shapefile)]) newfield = arcpy.ListFields(self.shapefile, name)[0] nt.assert_equal(newfield.type, u'String') nt.assert_true(newfield.length, 15)
def test_no_value_string(self): name = "_no_valstr" utils.add_field_with_value(self.shapefile, name, field_type='TEXT', field_length=15) nt.assert_true( name in [f.name for f in arcpy.ListFields(self.shapefile)]) newfield = arcpy.ListFields(self.shapefile, name)[0] nt.assert_equal(newfield.type, u'String') nt.assert_true(newfield.length, 15)
def test_with_dictionary(self): value_dict = {n: n for n in range(7)} value_fxn = lambda row: value_dict.get(row[0], -1) utils.add_field_with_value(self.shapefile, self.field_added, field_type="LONG") utils.populate_field(self.shapefile, lambda row: value_dict.get(row[0], -1), self.field_added, "FID") with arcpy.da.SearchCursor(self.shapefile, [self.field_added, "FID"]) as cur: for row in cur: nt.assert_equal(row[0], row[1])
def test_with_dictionary(self): value_dict = {n: n for n in range(7)} value_fxn = lambda row: value_dict.get(row[0], -1) utils.add_field_with_value(self.shapefile, self.field_added, field_type="LONG") utils.populate_field( self.shapefile, lambda row: value_dict.get(row[0], -1), self.field_added, "FID" ) with arcpy.da.SearchCursor(self.shapefile, [self.field_added, "FID"]) as cur: for row in cur: nt.assert_equal(row[0], row[1])
def _add_scenario_columns(layer, elev=None, surge=None, slr=None): """ Adds scenario information to a shapefile/layer Parameters ---------- layer : str or arcpy.mapping.Layer The path to the layer, or the actual layer object that will be modified in-place. elev, slr : float, optional Final elevation and sea level rise associated with the scenario. surge : str, optional The name of the storm surge associated with the scenario (e.g., MHHW, 100yr). Returns ------- None """ if elev is not None: utils.add_field_with_value( table=layer, field_name="flood_elev", field_value=float(elev), msg="Adding 'flood_elev' field to ouput", verbose=True, asMessage=True ) if surge is not None: utils.add_field_with_value( table=layer, field_name="surge", field_value=str(surge), field_length=10, msg="Adding storm surge field to ouput", verbose=True, asMessage=True ) if slr is not None: utils.add_field_with_value( table=layer, field_name="slr", field_value=int(slr), msg="Adding sea level rise field to ouput", verbose=True, asMessage=True )
def test_overwrite_existing_yes(self): utils.add_field_with_value(self.shapefile, "existing", overwrite=True, field_type="LONG")
def test_overwrite_existing_no(self): utils.add_field_with_value(self.shapefile, "existing")
def test_no_value_no_field_type(self): utils.add_field_with_value(self.shapefile, "_willfail")