Example #1
0
class Datastream(models.Model):
    """
    Datatsream model type definition. Related fields are defined it related models.
    """
    name = models.TextField("Name")
    description = models.TextField("Description")
    unitOfMeasurement = JSONField(verbose_name="Unit of Measurement")
    observationType = models.TextField(
        verbose_name="Observation Type",
        choices=OBSERVATION_TYPES,
        default=
        "http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Observation")
    observedArea = models.PolygonField(blank=True,
                                       null=True,
                                       verbose_name="Observed Area")
    phenomenonTime = DateTimeRangeField(
        blank=True,
        null=True,
        # validators=[Validators.validate_interval],
        verbose_name="Phenomenon Time")
    resultTime = DateTimeRangeField(
        blank=True,
        null=True,
        # validators=[Validators.validate_interval],
        verbose_name="Result Time")
    Thing = models.ForeignKey(Thing,
                              on_delete=models.CASCADE,
                              related_name="Datastream",
                              verbose_name='Thing')
    Sensor = models.ForeignKey("Sensor",
                               on_delete=models.CASCADE,
                               related_name="Datastream",
                               verbose_name="Sensor")
    ObservedProperty = models.ForeignKey("ObservedProperty",
                                         on_delete=models.CASCADE,
                                         related_name="Datastream",
                                         verbose_name="Observed Property")

    class Meta:
        verbose_name = "Datastream"
        verbose_name_plural = "Datastreams"

    def __str__(self):
        return self.name
Example #2
0
class AsvMataAtlantica(models.Model):

    processo = models.IntegerField(null=True, blank=True)
    uf = models.CharField('Unidade da Federação',
                          max_length=2,
                          null=True,
                          blank=True)
    municipio = models.CharField('Município',
                                 max_length=255,
                                 null=True,
                                 blank=True)
    empreendedor = models.CharField(max_length=255, null=True, blank=True)
    tipo_empreendimento = models.CharField('Tipo de Empreendimento',
                                           max_length=255,
                                           null=True,
                                           blank=True)
    cpfj = models.CharField('CPF ou CNPJ do Empreendedor',
                            max_length=22,
                            null=True,
                            blank=True)
    area_supressao_total = models.FloatField('Área Total de Supressão (ha)',
                                             null=True,
                                             blank=True)
    area_supressao_veg_primaria = models.FloatField(
        """Área de Supressão de Vegetação Primária (ha)""",
        null=True,
        blank=True)
    area_supressao_estagio_medio = models.FloatField(
        """Área de Supressão em Estágio Médio (ha)""", null=True, blank=True)
    area_supressao_estagio_avancado = models.FloatField(
        """Área de Supressão em Estágio Avançado (ha)""",
        null=True,
        blank=True)
    usuario = models.ForeignKey(User, related_name='asvma')
    data_criacao = models.DateTimeField('Data de Criação', auto_now_add=True)
    geom = models.PolygonField(srid=4674)
    objects = models.GeoManager()

    def __str__(self):
        return '%s' % self.processo

    class Meta:
        verbose_name = 'Autorização de Supressão de Vegetação - Mata Atlântica'
        verbose_name_plural = """Autorizações de Supressão de Vegetação -
Example #3
0
class Linea(models.Model):
    nombre = models.CharField(max_length=100)
    slug = models.SlugField(max_length=120, blank=True, null=False)
    descripcion = models.TextField(blank=True, null=True)
    foto = models.CharField(max_length=20, blank=True, null=True)
    img_panorama = models.ImageField(max_length=200,
                                     upload_to='linea',
                                     blank=True,
                                     null=True)
    img_cuadrada = models.ImageField(max_length=200,
                                     upload_to='linea',
                                     blank=True,
                                     null=True)
    color_polilinea = models.CharField(max_length=20, blank=True, null=True)
    info_empresa = models.TextField(blank=True, null=True)
    info_terminal = models.TextField(blank=True, null=True)
    localidad = models.CharField(max_length=50, blank=True, null=True)
    cp = models.CharField(max_length=20, blank=True, null=True)
    telefono = models.CharField(max_length=200, blank=True, null=True)
    envolvente = models.PolygonField(blank=True, null=True)

    def __str__(self):
        return self.nombre

    def save(self, *args, **kwargs):
        self.slug = slugify(self.nombre)
        super(Linea, self).save(*args, **kwargs)

    def get_absolute_url(self, ciudad_slug=None):
        # chequear si la linea está en esta ciudad, sino tirar excepcion
        if ciudad_slug is None:
            try:
                ciudad_slug = self.ciudades.all().only('slug')[0].slug
            except Exception as e:
                print(e)
                print(self)
                return ""
        else:
            get_object_or_404(Ciudad, slug=ciudad_slug, lineas=self)
        return reverse('ver_linea',
                       kwargs={
                           'nombre_ciudad': ciudad_slug,
                           'nombre_linea': self.slug
                       })
Example #4
0
class GeoUnidad(models.Model):
    nombre = models.CharField(max_length=255)
    descripcion = models.CharField(max_length=255, null=True, blank=True)
    area = models.FloatField(default=0)
    indiceAmenaza = models.FloatField(default=0)
    indiceVulnerabilidad = models.FloatField(default=0)
    indiceRiesgo = models.FloatField(default=0)
    fuente = models.CharField(max_length=255, null=True)
    anyo = models.IntegerField(default=1900)
    geom = models.PolygonField()
    status = models.CharField(max_length=20, null=True, blank=True)
    territorio = models.ForeignKey(Territorio,
                                   on_delete=models.CASCADE,
                                   related_name='geounidades')

    @property
    def eliminable(self):
        return not (self.comunidades.all().exists()
                    or self.riesgos.all().exists())
Example #5
0
class ElectoralWard(models.Model):
    """Electoral Ward Database"""
    administrative_ward = models.ForeignKey(AdministrativeWard, blank=True, null=True)
    name = models.CharField(max_length=2048, default="")
    shape = models.PolygonField(srid=4326, default="")
    ward_no = models.CharField(max_length=2048, default="")
    ward_code = models.TextField(max_length=2048, default="")
    extra_info = models.CharField(max_length=2048,blank=True,null=True)
    border_color = ColorField(default='#FFEFA1')
    background_color = ColorField(default='#FFEFA1')

    def __unicode__(self):
        """Returns string representation of object"""
        return self.name

    class Meta:
        """Metadata for class ElectoralWard"""
        verbose_name = 'Electoral Ward'
        verbose_name_plural = 'Electoral Wards'
Example #6
0
class AdministrativeWard(models.Model):
    """Administrative Ward Database"""
    city = models.ForeignKey(City)
    name = models.CharField(max_length=2048, default="")
    shape = models.PolygonField(srid=4326, default="")
    ward_no = models.CharField(max_length=2048, default="")
    description = models.TextField(max_length=2048,blank=True,null=True)
    office_address = models.CharField(max_length=2048,blank=True,null=True)
    border_color = ColorField(default='#BFFFD0')
    background_color = ColorField(default='#BFFFD0')

    def __unicode__(self):
        """Returns string representation of object"""
        return self.name

    class Meta:
        """Metadata for class Administrative Ward"""
        verbose_name = 'Administrative Ward'
        verbose_name_plural = 'Administrative Wards'
Example #7
0
class Mission(models.Model):
    id = models.TextField(primary_key=True)
    title = models.TextField()
    type = models.TextField()
    description = models.TextField()
    area = models.PolygonField(default='POLYGON EMPTY')
    created_at = models.DateTimeField(default=timezone.now)
    starts_at = models.DateTimeField()
    ends_at = models.DateTimeField()
    clearance = models.ForeignKey(Clearance,
                                  on_delete=models.SET_NULL,
                                  blank=True,
                                  null=True)
    created_by = models.ForeignKey(User, on_delete=models.CASCADE)

    # clearance

    def as_geojson(self):
        return {
            "type":
            "FeatureCollection",
            "features": [{
                "geometry": {
                    "coordinates": self.area[0].coords,
                    "type": "Polygon"
                }
            }]
        }

    def as_dict(self):
        return {
            "id": self.id,
            "title": self.title,
            "created_at": self.created_at.isoformat(),
            "area": self.as_geojson(),
            "starts_at": self.starts_at.isoformat(),
            "ends_at": self.ends_at.isoformat(),
            "created_by": self.created_by.id,
            "description": self.description,
            "commander_id": self.created_by.username,
            "clearance": self.clearance.as_dict(),
            "type": self.type
        }
Example #8
0
class Pixel(models.Model):
    state = models.CharField(max_length=100, null=True, blank=True)
    latitude = models.FloatField()
    longitude = models.FloatField()
    geom = models.PolygonField(null=True)
    resolution = models.FloatField(default=0.05)

    def __str__(self):
        return f'{ self.latitude }, { self.longitude }, res = { self.resolution }º'

    @property
    def popup_content(self):
        # popup = "<span>ID: </span>{}<br>".format(self.id)
        # popup += "<span>Cidade: </span>{}<br>".format(self.city)
        # popup += "<span>Estado: </span>{}<br>".format(self.state)
        popup = "<span>Latitude: </span>{}<br>".format(self.latitude)
        popup += "<span>Longitude: </span>{}<br>".format(self.longitude)

        return popup
Example #9
0
class Way(models.Model):
    changeset = models.ForeignKey(Changeset, related_name="ways")
    nodes = models.ManyToManyField(Node, through='WayNodes')
    timestamp = models.DateTimeField(auto_now=True)
    geom = models.PolygonField(blank=True, null=True)
    parent_id = models.IntegerField(blank=True, null=True)

    def update_geom(self):
        li_coords = []
        for waynode in self.waynodes.all():
            coord = waynode.node.geom.coords
            li_coords.append(coord)

        tpl_coords = tuple(li_coords)
        poly = Polygon(tpl_coords)
        self.geom = poly
        self.save()

    objects = models.GeoManager()
Example #10
0
class Site(models.Model):
    id = models.CharField(max_length=30, primary_key=True)
    short_id = models.IntegerField(unique=True, null=True)
    buurt_code = models.CharField(max_length=20, null=True)
    stadsdeel = models.CharField(max_length=1, null=True)
    stadsdeel_naam = models.CharField(max_length=20, null=True)
    straatnaam = models.CharField(max_length=40, null=True)
    huisnummer = models.IntegerField(null=True)
    # distance to address
    distance = models.IntegerField(null=True)
    bgt_based = models.NullBooleanField()
    centroid = models.PointField(name='centroid', srid=4326)
    geometrie = models.PolygonField(name='geometrie', srid=28992)
    extra_attributes = JSONField(null=True, default=dict)
    # helper field during cleanup. do not publish.
    active = models.IntegerField(null=True)

    def __str__(self):
        return f"{self.id}-{self.straatnaam} {self.huisnummer}"
Example #11
0
class Topo50grid(models.Model):
    """Contains the Topo50 mapping grid without map sheet overlays.

    Used in the NZAA application for predicting the site identifier.

    This grid can be generated using code in the nzaa.utils module. It
    depends on having the Topo50_islands table populated before
    running the code.

    """

    identifier = models.CharField(max_length=4, primary_key=True)
    sheet_name = models.TextField(blank=True, null=True)
    geom = models.PolygonField(srid=2193)

    nzms_xmax = models.IntegerField()
    nzms_xmin = models.IntegerField()
    nzms_ymax = models.IntegerField()
    nzms_ymin = models.IntegerField()
Example #12
0
class Changeset(models.Model):

    user = models.CharField(max_length=1000)
    uid = models.CharField(_('User ID'), max_length=255)
    editor = models.CharField(max_length=255)
    powerfull_editor = models.BooleanField(_('Powerfull Editor'),
                                           default=False)
    comment = models.CharField(max_length=1000, blank=True)
    source = models.CharField(max_length=1000, blank=True)
    imagery_used = models.CharField(max_length=1000, blank=True)
    date = models.DateTimeField()
    reasons = models.ManyToManyField(SuspicionReasons,
                                     related_name='changesets')
    create = models.IntegerField()
    modify = models.IntegerField()
    delete = models.IntegerField()
    bbox = models.PolygonField()
    is_suspect = models.BooleanField()
    harmful = models.NullBooleanField()
    checked = models.BooleanField(default=False)
    check_user = models.ForeignKey(User, blank=True, null=True)
    check_date = models.DateTimeField(null=True, blank=True)
    objects = models.GeoManager()

    def __str__(self):
        return '%s' % self.id

    def osm_link(self):
        """Return the link to the changeset page on OSM website."""
        return 'http://www.openstreetmap.org/changeset/%s' % self.id

    def achavi_link(self):
        """Return the link to the changeset page on ACHAVI."""
        return 'https://overpass-api.de/achavi/?changeset=%s' % self.id

    def josm_link(self):
        """Return link to open changeset in JOSM."""
        josm_base = "http://127.0.0.1:8111/import?url="
        changeset_url = "http://www.openstreetmap.org/api/0.6/changeset/%s/download" % self.id
        return "%s%s" % (
            josm_base,
            changeset_url,
        )
Example #13
0
class CouncilDistrict(TimestampedModelMixin, models.Model):
    key = models.AutoField(primary_key=True)
    id = models.IntegerField()
    shape = models.PolygonField()
    plan = models.ForeignKey('CouncilDistrictPlan', related_name='districts')

    objects = models.GeoManager()

    @property
    def representative(self):
        # Sort the tenures here instead of in a query, as there shouldn't be
        # very many, and this allows us to use prefetched tenures, if they
        # exist.
        tenures = sorted(self.tenures.all(), key=lambda t: t.begin)
        if tenures:
            return tenures[-1].councilmember

    def __unicode__(self):
        return u'District {d}'.format(d=self.id)
Example #14
0
class SimpleRupture(models.Model):
    '''
    Simple rupture view, needed for GeoNode integration
    '''
    owner_id = models.IntegerField()
    input_id = models.IntegerField()
    gid = models.TextField()
    name = models.TextField()
    description = models.TextField()
    si_type = models.TextField()
    tectonic_region = models.TextField()
    rake = models.FloatField()
    magnitude = models.FloatField()
    magnitude_type = models.CharField(max_length=2)
    edge = models.LineStringField(srid=4326)
    fault_outline = models.PolygonField(srid=4326)

    class Meta:  # pylint: disable=C0111,W0232
        db_table = 'hzrdi\".\"simple_rupture'
Example #15
0
class KiambuSublocation(models.Model):
    id_0 = models.IntegerField()
    iso = models.CharField(max_length=254)
    name_0 = models.CharField(max_length=254)
    id_1 = models.IntegerField()
    name_1 = models.CharField(max_length=254)
    id_2 = models.IntegerField()
    name_2 = models.CharField(max_length=254)
    id_3 = models.IntegerField()
    name_3 = models.CharField(max_length=254)
    id_4 = models.IntegerField()
    name_4 = models.CharField(max_length=254)
    id_5 = models.IntegerField()
    name_5 = models.CharField(max_length=254)
    type_5 = models.CharField(max_length=254)
    engtype_5 = models.CharField(max_length=254)
    shape_leng = models.FloatField()
    shape_area = models.FloatField()
    geom = models.PolygonField(srid=4326)
Example #16
0
class IncorporatedPlace(USGSBase):
    service_id = 14
    incorporatedplace_fcode = [(61400, u'Incorporated Place'),
                               (61401, u'Borough'), (61403, u'City'),
                               (61404, u'City and Borough'),
                               (61405, u'Communidad'),
                               (61407, u'Consolidated City'),
                               (61410, u'Independent City'),
                               (61412, u'Municipality'), (61414, u'Town'),
                               (61415, u'Village'), (61416, u'Zona Urbana')]
    yesno_domain = [(1, u'Yes'), (2, u'No'), (0, u'Unknown')]
    objectid = models.IntegerField(null=True, blank=True, unique=True)
    fcode = models.IntegerField(choices=incorporatedplace_fcode,
                                null=True,
                                blank=True)
    state_name = models.CharField(max_length=120, null=True, blank=True)
    place_fipscode = models.CharField(max_length=5,
                                      null=True,
                                      blank=True,
                                      verbose_name='FIPS Code')
    place_name = models.CharField(max_length=120, null=True, blank=True)
    population = models.IntegerField(null=True, blank=True)
    iscapitalcity = models.IntegerField(choices=yesno_domain,
                                        null=True,
                                        blank=True)
    iscountyseat = models.IntegerField(choices=yesno_domain,
                                       null=True,
                                       blank=True)
    geom = models.PolygonField()

    @property
    def fips(self):
        return self.place_fipscode

    @property
    def name(self):
        return self.place_name

    class Meta:
        ordering = (
            'state_name',
            'place_name',
        )
Example #17
0
class Fire(CommonModel):
    """
    Burning area of the wildfire.

    On each step fires polygons recalculates, then checks for intersection.
    Intersected fires merges into new fire.
    """
    map = models.ForeignKey(Map, related_name='fires')
    step = models.ForeignKey(Step, related_name='fires', blank=True, null=True)
    burnout = models.ForeignKey(Burnout, related_name='fires')
    name = models.CharField(_('burnout name'), max_length=32, blank=True)
    child = models.ForeignKey('self',
                              related_name='parents',
                              blank=True,
                              null=True)
    polygon = models.PolygonField(_('polygon'))

    def __unicode__(self):
        return '%s on % map' % (self.name, self.map.name)
Example #18
0
class Zipcode(models.Model):
    code = models.CharField(
        _('Zipcode'),
        max_length=5,
        help_text=_('Zipcode.')
    )
    poly = models.PolygonField(
        _('Poly'),
        help_text=_('Poly.')
    )

    objects = GeoManager()

    class Meta:
        verbose_name = _('Zipcode')
        verbose_name_plural = _('Zipcodes')

    def __str__(self):
        return '{}'.format(self.code)
Example #19
0
class OracleSpatialRefSys(models.Model, SpatialRefSysMixin):
    "Maps to the Oracle MDSYS.CS_SRS table."
    cs_name = models.CharField(max_length=68)
    srid = models.IntegerField(primary_key=True)
    auth_srid = models.IntegerField()
    auth_name = models.CharField(max_length=256)
    wktext = models.CharField(max_length=2046)
    # Optional geometry representing the bounds of this coordinate
    # system.  By default, all are NULL in the table.
    cs_bounds = models.PolygonField(null=True)

    class Meta:
        app_label = "gis"
        db_table = "CS_SRS"
        managed = False

    @property
    def wkt(self):
        return self.wktext
Example #20
0
class SimpleFault(djm.Model):
    '''
    Simple fault geometry
    '''
    owner = djm.ForeignKey('OqUser')
    gid = djm.TextField()
    name = djm.TextField(null=True)
    description = djm.TextField(null=True)
    dip = djm.FloatField()
    upper_depth = djm.FloatField()
    lower_depth = djm.FloatField()
    mfd_tgr = djm.ForeignKey('MfdTgr')
    mfd_evd = djm.ForeignKey('MfdEvd')
    last_update = djm.DateTimeField(editable=False, default=datetime.utcnow)
    edge = djm.LineStringField(srid=4326)
    outline = djm.PolygonField(srid=4326)

    class Meta:
        db_table = 'hzrdi\".\"simple_fault'
Example #21
0
class Shop(models.Model):
    # provides location for providers
    location = models.PointField()
    poly = models.PolygonField(blank=True, null=True)

    county = models.CharField(max_length=60, null=True, blank=True)
    address = models.CharField(max_length=100)
    city = models.CharField(max_length=50)
    zip_code = models.ForeignKey(ZipCode,
                                 on_delete=models.SET_NULL,
                                 null=True,
                                 blank=True)
    elevation = models.ForeignKey(Elevation,
                                  on_delete=models.SET_NULL,
                                  null=True,
                                  blank=True)

    def __str__(self):
        return str(self.address)
Example #22
0
class Person(models.Model):
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
    happy = models.BooleanField(default=True)
    unhappy = models.BooleanField(default=False)
    bipolar = models.BooleanField(default=False)
    name = models.CharField(max_length=30)
    nickname = models.SlugField(max_length=36)
    age = models.IntegerField()
    bio = models.TextField()
    birthday = models.DateField()
    birth_time = models.TimeField()
    appointment = models.DateTimeField()
    blog = models.URLField()
    occupation = models.CharField(max_length=10, choices=OCCUPATION_CHOICES)
    uuid = models.UUIDField(primary_key=False)
    name_hash = models.BinaryField(max_length=16)
    wanted_games_qtd = models.BigIntegerField()
    duration_of_sleep = models.DurationField()
    email = models.EmailField()

    try:
        from django.contrib.postgres.fields import ArrayField, HStoreField, JSONField
        from django.contrib.postgres.fields.citext import CICharField, CIEmailField, CITextField
        acquaintances = ArrayField(models.IntegerField())
        data = JSONField()
        hstore_data = HStoreField()
        ci_char = CICharField(max_length=30)
        ci_email = CIEmailField()
        ci_text = CITextField()
    except ImportError:
        # Skip PostgreSQL-related fields
        pass

    if MOMMY_GIS:
        geom = models.GeometryField()
        point = models.PointField()
        line_string = models.LineStringField()
        polygon = models.PolygonField()
        multi_point = models.MultiPointField()
        multi_line_string = models.MultiLineStringField()
        multi_polygon = models.MultiPolygonField()
        geom_collection = models.GeometryCollectionField()
Example #23
0
class Districts(models.Model):
    ogc_fid = models.AutoField(primary_key=True)
    objectid = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    dname2014 = models.CharField(max_length=80, blank=True, null=True)
    subregion = models.CharField(max_length=80, blank=True, null=True)
    region = models.CharField(max_length=80, blank=True, null=True)
    hh2014 = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    hhsize2014 = models.DecimalField(max_digits=19, decimal_places=11, blank=True, null=True)
    males2014 = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    female2014 = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    pop_2014 = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    pop_urban = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    pop_rural = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    pop2013 = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    pop2010 = models.DecimalField(max_digits=19, decimal_places=11, blank=True, null=True)
    hh2010 = models.DecimalField(max_digits=19, decimal_places=11, blank=True, null=True)
    pop2002 = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    hh2002 = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    f1991_2002 = models.DecimalField(max_digits=19, decimal_places=11, blank=True, null=True)
    f2002_2014 = models.DecimalField(max_digits=19, decimal_places=11, blank=True, null=True)
    f1969_2014 = models.DecimalField(max_digits=19, decimal_places=11, blank=True, null=True)
    totcon2011 = models.DecimalField(max_digits=19, decimal_places=11, blank=True, null=True)
    accs_ele_h = models.DecimalField(max_digits=19, decimal_places=11, blank=True, null=True)
    status = models.CharField(max_length=80, blank=True, null=True)
    globalid = models.CharField(max_length=80, blank=True, null=True)
    creationda = models.DateField(blank=True, null=True)
    creator = models.CharField(max_length=80, blank=True, null=True)
    editdate = models.DateField(blank=True, null=True)
    editor = models.CharField(max_length=80, blank=True, null=True)
    rai = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    rai_urb = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    rai_ub_pop = models.DecimalField(max_digits=13, decimal_places=11, blank=True, null=True)
    new_rai = models.DecimalField(max_digits=13, decimal_places=11, blank=True, null=True)
    wkb_geometry = geomodels.PolygonField(srid=4326,blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'districts'
        verbose_name_plural = "District"
    
    def __str__(self):
        return self.dname2014
Example #24
0
class Department(models.Model):
    owner = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
    airbosses = models.ManyToManyField(User, related_name="airboss_profile")
    watchCommanders = models.ManyToManyField(User,
                                             related_name="watchcom_profile")
    area = models.PolygonField(default='POLYGON EMPTY')
    name = models.TextField(unique=True)

    # clearance

    def as_geojson(self):
        coords = [[x[0], x[1]] for x in self.area[0].coords]
        return {
            "type":
            "FeatureCollection",
            "features": [{
                "type": "Feature",
                "properties": {
                    "name": self.name
                },
                "geometry": {
                    "coordinates": [coords],
                    "type": "Polygon"
                }
            }]
        }

    def get_airbosses(self):
        return [x.as_dict() for x in self.airbosses.all()]

    def get_watch_commanders(self):
        return [x.as_dict() for x in self.watchCommanders.all()]

    def as_dict(self):
        return {
            "id": self.id,
            "owner": self.owner.as_dict(),
            "name": self.name,
            "area": self.as_geojson(),
            "airbosses": self.get_airbosses(),
            "watch_commanders": self.get_watch_commanders()
        }
Example #25
0
class Country(models.Model):
    """ Countries """
    id = models.AutoField(primary_key=True)
    code = models.CharField(max_length=5, unique=True)
    name = models.CharField(max_length=100, unique=True)
    name_iso_country = models.CharField(max_length=100,
                                        unique=True,
                                        blank=True,
                                        null=True)
    code_iso3_country = models.CharField(max_length=3,
                                         unique=True,
                                         blank=True,
                                         null=True)

    wikidata = models.JSONField(blank=True, null=True)
    wikipedia = models.TextField(blank=True, null=True)

    pop_est = models.IntegerField(blank=True, null=True)
    gdp_md_est = models.IntegerField(blank=True, null=True)
    economy = models.CharField(max_length=100, blank=True, null=True)
    income_grp = models.CharField(max_length=100, blank=True, null=True)
    continent = models.CharField(max_length=100, blank=True, null=True)
    region_un = models.CharField(max_length=100, blank=True, null=True)
    subregion = models.CharField(max_length=100, blank=True, null=True)
    region_wb = models.CharField(max_length=100, blank=True, null=True)

    border = models.MultiPolygonField(blank=True, null=True)
    bbox = models.PolygonField(blank=True, null=True)

    colour = models.ForeignKey(CatalogColour,
                               models.PROTECT,
                               blank=True,
                               null=True)

    history = HistoricalRecords(table_name=f'historic_countries')

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'country'
        verbose_name_plural = 'Countries'
Example #26
0
class KiambuCounty(models.Model):
    id_0 = models.IntegerField()
    iso = models.CharField(max_length=254)
    name_0 = models.CharField(max_length=254)
    id_1 = models.IntegerField()
    name_1 = models.CharField(max_length=254)
    id_2 = models.IntegerField()
    name_2 = models.CharField(max_length=254)
    varname_2 = models.CharField(max_length=254, null=True)
    nl_name_2 = models.CharField(max_length=254, null=True)
    hasc_2 = models.CharField(max_length=254, null=True)
    cc_2 = models.CharField(max_length=254, null=True)
    type_2 = models.CharField(max_length=254, null=True)
    engtype_2 = models.CharField(max_length=254, null=True)
    validfr_2 = models.CharField(max_length=254)
    validto_2 = models.CharField(max_length=254)
    remarks_2 = models.CharField(max_length=254, null=True)
    shape_leng = models.FloatField()
    shape_area = models.FloatField()
    geom = models.PolygonField(srid=4326)
Example #27
0
class StateorTerritoryHigh(USGSBase):
    service_id = 18
    stateorterritory_fcode = [(61100, u'State'), (61101, u'Territory'),
                              (61102, u'Province')]
    objectid = models.IntegerField(null=True, blank=True, unique=True)
    fcode = models.IntegerField(choices=stateorterritory_fcode,
                                null=True,
                                blank=True)
    state_fipscode = models.CharField(max_length=2, null=True, blank=True)
    state_name = models.CharField(max_length=120, null=True, blank=True)
    population = models.IntegerField(null=True, blank=True)
    geom = models.PolygonField()

    @property
    def fips(self):
        return self.state_fipscode

    @property
    def name(self):
        return self.state_name
Example #28
0
class Location(models.Model):
    """Class for the location which couple with the User.
    If you curious about the SRID read here: 
    https://secure.wikimedia.org/wikipedia/en/wiki/SRID
    Of you want to know why 4326 and not 42 read here: 
        https://secure.wikimedia.org/wikipedia/en/wiki/WGS84
    """

    user = models.ForeignKey(User, related_name='location_set')
    name = models.CharField(max_length=32)
    marker = models.PointField(srid=4326)  # the marker
    area = models.PolygonField(srid=4326, blank=True,
                               null=True)  #the area of delivery
    objects = models.GeoManager()

    def __unicode__(self):
        return self.name

    class Meta:
        unique_together = ("user", "name")
Example #29
0
class SurfaceShape(models.Model):
    name = models.CharField(max_length=100)
    airport = models.ForeignKey(Airport,
                                related_name="surfaces",
                                on_delete=models.CASCADE)
    surface_type = models.ForeignKey(SurfaceType,
                                     related_name="shapes",
                                     on_delete=models.CASCADE)
    geometry = models.PolygonField()

    def clean(self):
        if self.airport.id != self.surface_type.airport.id:
            raise ValidationError(
                'The surface and its type must belong to the same Airport.')

    class Meta:
        verbose_name_plural = 'Surface Shapes'

    def __str__(self):
        return "{} ({})".format(self.name, self.airport.code)
Example #30
0
class Place(models.Model):
    source = models.ForeignKey(DataSource, models.CASCADE)
    code = models.CharField(max_length=255)
    name = models.CharField(max_length=255)
    latlong = models.PointField(null=True, blank=True)
    polygon = models.PolygonField(null=True, blank=True)
    parent = models.ForeignKey('Place',
                               models.SET_NULL,
                               null=True,
                               editable=False)
    search_vector = SearchVectorField(null=True, blank=True)

    class Meta():
        unique_together = ('source', 'code')

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('place_detail', args=(self.pk, ))