Skip to content
Commits on Source (6)
......@@ -314,6 +314,6 @@ https://trac.osgeo.org/grass/wiki/Submitting
https://grass.osgeo.org/documentation/first-time-users/
------------------
(C) 1999-2018 by The GRASS Development Team
(C) 1999-2019 by The GRASS Development Team
Last changed: $Date: 2018-08-31 17:01:15 +0200 (Fri, 31 Aug 2018) $
Last changed: $Date: 2019-01-01 19:22:26 +0100 (Tue, 01 Jan 2019) $
......@@ -212,11 +212,11 @@ MacOSX users may go here to download precompiled libraries etc.:
<p>
<hr width="100%">
<i>&copy; GRASS Development Team 1997-2018</i>
<i>&copy; GRASS Development Team 1997-2019</i>
<p>Please report bugs here:
<br><a href="https://grass.osgeo.org/development/bug-tracking/">https://grass.osgeo.org/development/bug-tracking/</a>
<p>
<i>Last changed: $Date: 2018-03-25 15:24:28 +0200 (Sun, 25 Mar 2018) $</i>
<i>Last changed: $Date: 2019-01-01 19:22:26 +0100 (Tue, 01 Jan 2019) $</i>
</body>
</html>
grass (7.6.0~rc1-1~exp2) UNRELEASED; urgency=medium
grass (7.6.0-1~exp1) experimental; urgency=medium
* New upstream release.
* Use grass-gui.maintscript for dpkg-maintscript-helper commands.
* Update copyright years for GRASS Development Team & Markus Neteler.
* Drop spelling-errors.patch, applied upstream.
-- Bas Couwenberg <sebastic@debian.org> Tue, 15 Jan 2019 19:01:01 +0100
-- Bas Couwenberg <sebastic@debian.org> Thu, 17 Jan 2019 10:25:55 +0100
grass (7.6.0~rc1-1~exp1) experimental; urgency=medium
......
......@@ -4,8 +4,8 @@ Upstream-Contact: GRASS Development Team <grass-dev@lists.osgeo.org>
Source: http://grass.osgeo.org/
Files: *
Copyright: 1989-2018, GRASS Development Team
2003-2018, Markus Neteler
Copyright: 1989-2019, GRASS Development Team
2003-2019, Markus Neteler
2011-2018, Vaclav Petras
2014-2018, Tereza Fiedlerova
2018, Supreet Singh
......
......@@ -2,4 +2,3 @@ pager
instdir
no-fail-html.patch
jquery.patch
spelling-errors.patch
Description: Fix spelling errors.
* ouput -> output
* acounts -> accounts
Author: Bas Couwenberg <sebastic@debian.org>
Forwarded: https://trac.osgeo.org/grass/ticket/3717
Applied-Upstream: https://trac.osgeo.org/grass/changeset/73863
--- a/raster/r.buildvrt/r.buildvrt.html
+++ b/raster/r.buildvrt/r.buildvrt.html
@@ -8,7 +8,7 @@ read requests.
<h2>NOTES</h2>
<em>r.buildvrt</em> creates a list of raster maps that can be
-located in different mapsets. The ouput is a read-only link to
+located in different mapsets. The output is a read-only link to
the original raster maps which is only valid if the original raster
maps remain in the originally indicated mapset. A VRT can also be built
from raster maps registered with <em>r.external</em>.
--- a/scripts/r.drain/r.drain.html
+++ b/scripts/r.drain/r.drain.html
@@ -33,7 +33,7 @@ incompatible.
<p>For an elevation surface, the path is calculated by choosing the
steeper "slope" between adjacent cells. The slope calculation
-accurately acounts for the variable scale in lat-lon projections. For
+accurately accounts for the variable scale in lat-lon projections. For
a cost surface, the path is calculated by following the movement
direction surface back to the start point given
in <em><a href="r.walk.html">r.walk</a></em> or
How to release GRASS GIS binaries and source code
$Date: 2018-12-05 12:05:09 +0100 (Wed, 05 Dec 2018) $
$Date: 2018-12-26 13:19:54 +0100 (Wed, 26 Dec 2018) $
Note: This text contains *some* rules only applicable to the
development coordinator (currently Markus Neteler, PSC Chair).
......@@ -85,7 +85,7 @@ vim include/VERSION
#example:
7
4
6
1RC1
2018
......@@ -124,7 +124,7 @@ RELEASETAG=release_${TODAY}_grass_${MAJOR}_${MINOR}_${RELEASE}
echo $RELEASETAG
URL=https://svn.osgeo.org/grass
svn copy $URL/grass/branches/releasebranch_7_4 \
svn copy $URL/grass/branches/releasebranch_7_6 \
$URL/grass/tags/$RELEASETAG \
-m "Tagging release grass_${MAJOR}_${MINOR}_${RELEASE}"
......@@ -147,7 +147,7 @@ vim include/VERSION
#example
7
4
6
1svn
2018
......@@ -222,7 +222,7 @@ vim grass-addons/tools/wingrass-packager/grass_copy_wwwroot.sh
- Update grass_packager_release.bat, eg.
set MAJOR=7
set MINOR=4
set MINOR=6
set PATCH=1RC1
- Update addons (grass_addons.sh) rules, eg.
......
/*! \mainpage GRASS GIS 7 Programmer's Manual
<!-- * doxygenized from "GRASS 5 Programmer's Manual"
by M. Neteler 2/2004
* updated 8/2005, 2006-2008, 2010-2011, 2017, 2018
* updated 8/2005, 2006-2008, 2010-2011, 2017, 2018, 2019
-->
<a href="https://grass.osgeo.org">GRASS GIS</a> (<b>Geographic
......@@ -23,7 +23,7 @@ Team</a>, an international team of programmers, GRASS module authors
are cited within their module's source code and the contributed manual
pages.
&copy; 2000-2018 by the GRASS Development Team
&copy; 2000-2019 by the GRASS Development Team
This manual is published under <a
href="http://www.fsf.org/copyleft/fdl.html">GNU Free Documentation
......
......@@ -1009,16 +1009,7 @@ class BufferedMapWindow(MapWindowBase, Window):
if self._properties.showRegion:
compReg = self.Map.GetRegion()
dispReg = self.Map.GetCurrentRegion()
reg = None
if utils.isInRegion(dispReg, compReg):
self.polypen = wx.Pen(
colour=wx.Colour(0, 0, 255, 128),
width=3, style=wx.SOLID)
reg = dispReg
else:
self.polypen = wx.Pen(colour=wx.Colour(255, 0, 0, 128),
width=3, style=wx.SOLID)
reg = compReg
reg = dispReg if utils.isInRegion(dispReg, compReg) else compReg
regionCoords = []
regionCoords.append((reg['w'], reg['n']))
......@@ -1026,7 +1017,10 @@ class BufferedMapWindow(MapWindowBase, Window):
regionCoords.append((reg['e'], reg['s']))
regionCoords.append((reg['w'], reg['s']))
regionCoords.append((reg['w'], reg['n']))
# draw region extent
self.polypen = wx.Pen(colour=wx.Colour(255, 0, 0, 128),
width=3, style=wx.SOLID)
self.DrawLines(pdc=self.pdcTransparent, polycoords=regionCoords)
def EraseMap(self):
......
......@@ -53,14 +53,14 @@ class InstallExtensionWindow(wx.Frame):
self.panel = wx.Panel(parent=self, id=wx.ID_ANY)
self.repoBox = wx.StaticBox(
parent=self.panel, id=wx.ID_ANY, label=" %s " %
_("Repository (leave empty to use the official one)"))
# self.repoBox = wx.StaticBox(
# parent=self.panel, id=wx.ID_ANY, label=" %s " %
# _("Repository (leave empty to use the official one)"))
self.treeBox = wx.StaticBox(
parent=self.panel, id=wx.ID_ANY, label=" %s " %
_("List of extensions - double-click to install"))
self.repo = wx.TextCtrl(parent=self.panel, id=wx.ID_ANY)
# self.repo = wx.TextCtrl(parent=self.panel, id=wx.ID_ANY)
# modelBuilder loads data into tree model
self.modelBuilder = ExtensionTreeModelBuilder()
......@@ -100,19 +100,19 @@ class InstallExtensionWindow(wx.Frame):
continue
self.options[name] = wx.CheckBox(parent=self.panel, id=wx.ID_ANY,
label=desc)
defaultUrl = '' # default/official one will be used when option empty
self.repo.SetValue(
task.get_param(
value='url').get(
'default',
defaultUrl))
# defaultUrl = '' # default/official one will be used when option empty
# self.repo.SetValue(
# task.get_param(
# value='url').get(
# 'default',
# defaultUrl))
self.statusbar = self.CreateStatusBar(number=1)
self.btnFetch = wx.Button(parent=self.panel, id=wx.ID_ANY,
label=_("&Fetch"))
self.btnFetch.SetToolTipString(_("Fetch list of available modules "
"from GRASS Addons SVN repository"))
# self.btnFetch = wx.Button(parent=self.panel, id=wx.ID_ANY,
# label=_("&Fetch"))
# self.btnFetch.SetToolTipString(_("Fetch list of available modules "
# "from GRASS Addons SVN repository"))
self.btnClose = wx.Button(parent=self.panel, id=wx.ID_CLOSE)
self.btnInstall = wx.Button(parent=self.panel, id=wx.ID_ANY,
label=_("&Install"))
......@@ -123,7 +123,7 @@ class InstallExtensionWindow(wx.Frame):
self.btnHelp.SetToolTipString(_("Show g.extension manual page"))
self.btnClose.Bind(wx.EVT_BUTTON, lambda evt: self.Close())
self.btnFetch.Bind(wx.EVT_BUTTON, self.OnFetch)
# self.btnFetch.Bind(wx.EVT_BUTTON, self.OnFetch)
self.btnInstall.Bind(wx.EVT_BUTTON, self.OnInstall)
self.btnHelp.Bind(wx.EVT_BUTTON, self.OnHelp)
self.tree.selectionChanged.connect(self.OnItemSelected)
......@@ -137,14 +137,14 @@ class InstallExtensionWindow(wx.Frame):
def _layout(self):
"""Do layout"""
sizer = wx.BoxSizer(wx.VERTICAL)
repoSizer = wx.StaticBoxSizer(self.repoBox, wx.VERTICAL)
repo1Sizer = wx.BoxSizer(wx.HORIZONTAL)
repo1Sizer.Add(self.repo, proportion=1,
flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL, border=1)
repo1Sizer.Add(self.btnFetch, proportion=0,
flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL, border=1)
repoSizer.Add(repo1Sizer,
flag=wx.EXPAND)
# repoSizer = wx.StaticBoxSizer(self.repoBox, wx.VERTICAL)
# repo1Sizer = wx.BoxSizer(wx.HORIZONTAL)
# repo1Sizer.Add(self.repo, proportion=1,
# flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL, border=1)
# repo1Sizer.Add(self.btnFetch, proportion=0,
# flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL, border=1)
# repoSizer.Add(repo1Sizer,
# flag=wx.EXPAND)
findSizer = wx.BoxSizer(wx.HORIZONTAL)
findSizer.Add(self.search, proportion=1)
......@@ -165,10 +165,10 @@ class InstallExtensionWindow(wx.Frame):
flag=wx.RIGHT, border=5)
btnSizer.Add(self.btnInstall, proportion=0)
sizer.Add(repoSizer, proportion=0,
flag=wx.ALL | wx.EXPAND, border=3)
# sizer.Add(repoSizer, proportion=0,
# flag=wx.ALL | wx.EXPAND, border=3)
sizer.Add(findSizer, proportion=0,
flag=wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.EXPAND, border=3)
flag=wx.ALL | wx.EXPAND, border=3)
sizer.Add(treeSizer, proportion=1,
flag=wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.EXPAND, border=3)
sizer.Add(optionSizer, proportion=0,
......@@ -197,8 +197,8 @@ class InstallExtensionWindow(wx.Frame):
else:
flags.append('--%s' % key)
return ['g.extension'] + flags + ['extension=' + name,
'url=' + self.repo.GetValue().strip()]
# 'url=' + self.repo.GetValue().strip()]
return ['g.extension'] + flags + ['extension={}'.format(name) ]
def OnFetch(self, event):
"""Fetch list of available extensions"""
......@@ -212,7 +212,7 @@ class InstallExtensionWindow(wx.Frame):
try:
self.thread.Run(
callable=self.modelBuilder.Load,
url=self.repo.GetValue().strip(),
url='', # self.repo.GetValue().strip(),
ondone=lambda event: self._fetchDone())
except GException as e:
self._fetchDone()
......
......@@ -99,6 +99,8 @@ class ProfileFrame(BasePlotFrame):
# Bind events
self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
self.SetGraphStyle()
def _initOpts(self):
"""Initialize plot options
"""
......
......@@ -70,7 +70,7 @@
<module-item name="r.mask">
<label>Mask</label>
</module-item>
<wxgui-item name="RasterMapCalculator"/>
<subtoolbox name="RasterMapCalculator"/>
<subtoolbox name="NeighborhoodAnalysis"/>
<subtoolbox name="OverlayRasters"/>
<subtoolbox name="SolarRadianceAndShadows"/>
......@@ -575,6 +575,18 @@
</module-item>
</items>
</toolbox>
<toolbox name="RasterMapCalculator">
<label>Raster map calculator</label>
<items>
<module-item name="r.mapcalc.simple">
<label>Simplified raster map calculator</label>
</module-item>
<module-item name="r.mapcalc">
<label>Raster map calculator</label>
<handler>OnMapCalculator</handler>
</module-item>
</items>
</toolbox>
<toolbox name="GRASSWorkingEnvironment">
<label>GRASS working environment</label>
<items>
......
......@@ -85,13 +85,6 @@
<description>User GUI preferences (display font, commands, digitizer, etc.)</description>
<wx-id>ID_PREFERENCES</wx-id>
</wxgui-item>
<wxgui-item name="RasterMapCalculator">
<label>Raster map calculator</label>
<handler>OnMapCalculator</handler>
<related-module>r.mapcalc</related-module>
<description>Raster map calculator</description>
<keywords>raster,algebra</keywords>
</wxgui-item>
<wxgui-item name="Histogram">
<label>Histogram</label>
<handler>OnHistogram</handler>
......
......@@ -241,7 +241,7 @@ the ascendant node at equator</td>
</tr>
<tr>
<td>28</td>
<td>29</td>
<td><b>PlanetScope 0f 10</b></td>
<td>enter month,day,hh.ddd,long.,lat. *</td>
</tr>
......@@ -1122,5 +1122,5 @@ land imager: spectral response and spectral uniformity., Proc. SPIE 8153,
<br>Stefan Blumentrath, Zofie Cimburova, Norwegian Institute for Nature Research, NINA, Oslo, Norway
<p>
<i>Last changed: $Date: 2018-08-24 15:55:21 +0200 (Fri, 24 Aug 2018) $</i>
<i>Last changed: $Date: 2018-12-27 18:44:04 +0100 (Thu, 27 Dec 2018) $</i>
......@@ -4,7 +4,7 @@
<!--
extracted form gislib.dox and improved by Vaclav Petras, 2013
Copyright 2004-2018 by the GRASS Development Team
Copyright 2004-2019 by the GRASS Development Team
Published under GNU Free Documentation License
-->
......
......@@ -18,7 +18,7 @@
# command line options for setting the GISDBASE, LOCATION,
# and/or MAPSET. Finally it starts GRASS with the appropriate
# user interface and cleans up after it is finished.
# COPYRIGHT: (C) 2000-2018 by the GRASS Development Team
# COPYRIGHT: (C) 2000-2019 by the GRASS Development Team
#
# This program is free software under the GNU General
# Public License (>=v2). Read the file COPYING that
......@@ -347,7 +347,7 @@ Geographic Resources Analysis Support System (GRASS GIS).
gui=_("use $DEFAULT_GUI graphical user interface"),
gui_detail=_("and set as default"),
config=_("print GRASS configuration parameters"),
config_detail=_("options: arch,build,compiler,path,revision,version"),
config_detail=_("options: arch,build,compiler,path,revision,svn_revision,version"),
params=_("Parameters"),
gisdbase=_("initial GRASS GIS database directory"),
gisdbase_detail=_("directory containing Locations"),
......@@ -1842,6 +1842,15 @@ def print_params():
filerev.close()
sys.stdout.write(
"%s\n" % val[0].split(':')[1].rstrip('$"\n').strip())
elif arg == 'svn_revision':
filerev = open(gpath('etc', 'VERSIONNUMBER'))
linerev = filerev.readline().rstrip('\n')
filerev.close()
try:
revision = linerev.split(' ')[1]
sys.stdout.write("%s\n" % revision[1:])
except:
sys.stdout.write("No SVN revision defined\n")
elif arg == 'version':
sys.stdout.write("%s\n" % grass_version)
else:
......
......@@ -115,6 +115,7 @@ int Vect_segment_intersection(double ax1, double ay1, double az1, double ax2,
static int first_3d = 1;
double d, d1, d2, r1, dtol, t;
int switched;
int end_points;
/* TODO: Works for points ? */
......@@ -128,6 +129,13 @@ int Vect_segment_intersection(double ax1, double ay1, double az1, double ax2,
first_3d = 0;
}
*x1 = 0;
*y1 = 0;
*z1 = 0;
*x2 = 0;
*y2 = 0;
*z2 = 0;
/* 'Sort' each segment by x, y
* MUST happen before D, D1, D2 are calculated */
switched = 0;
......@@ -230,6 +238,28 @@ int Vect_segment_intersection(double ax1, double ay1, double az1, double ax2,
G_debug(2, "Vect_segment_intersection(): d = %f, d1 = %f, d2 = %f", d, d1,
d2);
end_points = 0;
if (ax1 == bx1 && ay1 == by1) {
end_points = 1;
*x1 = ax1;
*y1 = ay1;
}
if (ax1 == bx2 && ay1 == by2) {
end_points = 1;
*x1 = ax1;
*y1 = ay1;
}
if (ax2 == bx1 && ay2 == by1) {
end_points = 2;
*x1 = ax2;
*y1 = ay2;
}
if (ax2 == bx2 && ay2 == by2) {
end_points = 2;
*x1 = ax2;
*y1 = ay2;
}
/* TODO: dtol was originally set to 1.0e-10, which was usually working but not always.
* Can it be a problem to set the tolerance to 0.0 ? */
dtol = 0.0;
......@@ -238,16 +268,32 @@ int Vect_segment_intersection(double ax1, double ay1, double az1, double ax2,
G_debug(2, " -> not parallel/collinear: d1 = %f, d2 = %f", d1, d2);
if (d > 0) {
if (d1 < 0 || d1 > d || d2 < 0 || d2 > d) {
if (end_points) {
G_debug(2, " -> fp error, but intersection at end points %f, %f", *x1, *y1);
return 1;
}
else {
G_debug(2, " -> no intersection");
return 0;
}
}
}
else {
if (d1 < d || d1 > 0 || d2 < d || d2 > 0) {
if (end_points) {
G_debug(2, " -> fp error, but intersection at end points %f, %f", *x1, *y1);
return 1;
}
else {
G_debug(2, " -> no intersection");
return 0;
}
}
}
r1 = d1 / d;
......@@ -264,6 +310,9 @@ int Vect_segment_intersection(double ax1, double ay1, double az1, double ax2,
if (d1 || d2) { /* lines are parallel */
G_debug(2, " -> parallel");
if (end_points)
G_debug(2, "Segments are apparently parallel, but connected at end points -> collinear");
else
return 0;
}
......